File: model/module/store.rb

Overview
Module Structure
Class Hierarchy
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: TmDoc#12
  module: Model
  module: Module#14
  class: Store#16
inherits from
  Store ( TmDoc::Model::Abstraction )
has properties
attribute: files [R] #17
attribute: a_toplevel_module [R] #18
attribute: an_unknown_module [R] #19
attribute: a_builtin_module [R] #20
attribute: an_object_class [R] #21
method: initialize / 5 #24
method: file_names #45
method: print #52

Code

   1  # $Id: store.rb,v 1.3 2011/11/30 19:26:34 machan Exp $
   2 
   3  require 'stringio'
   4 
   5  require 'tmdoc/tmstd'
   6  require 'tmdoc/tmstd/treeable'
   7  require 'tmdoc/model/module/physical'
   8  require 'tmdoc/model/module/logical'
   9  require 'tmdoc/constant'
  10 
  11 
  12  module TmDoc
  13 
  14  module Model::Module
  15 
  16  class Store < Model::Abstraction::Store
  17      attr_reader :files,
  18                  :a_toplevel_module,
  19                  :an_unknown_module,
  20                  :a_builtin_module,
  21                  :an_object_class
  22 
  23 
  24      def initialize(
  25          files,
  26          a_toplevel_module,
  27          an_unknown_module,
  28          a_builtin_module,
  29          an_object_class
  30      )
  31          ASSERT.kind_of files,               MMP::SetOfFile
  32          ASSERT.kind_of a_toplevel_module,   MMLA::RootModule
  33          ASSERT.kind_of an_unknown_module,   MMLA::RootModule
  34          ASSERT.kind_of a_builtin_module,    MMLA::RootModule
  35          ASSERT.kind_of an_object_class,     MMLN::Object
  36 
  37          @files              = files
  38          @a_toplevel_module  = a_toplevel_module
  39          @an_unknown_module  = an_unknown_module
  40          @a_builtin_module   = a_builtin_module
  41          @an_object_class    = an_object_class
  42      end
  43 
  44 
  45      def file_names
  46          names = @files.map { |file| file.name }
  47 
  48          ASSERT.kind_of names, Array
  49      end
  50 
  51 
  52      def print
  53          LOG::Debug.log "======== Module Model ========"
  54          LOG::Debug.log "---- Overview ----"
  55          str_io = StringIO.new
  56          self.a_toplevel_module.print_tree(str_io)
  57          LOG::Debug.log str_io.string
  58          LOG::Debug.log
  59 
  60          LOG::Debug.log "---- Sources ----"
  61          for file in self.files.sort
  62              file.print 1
  63              LOG::Debug.log
  64          end
  65          LOG::Debug.log
  66 
  67          LOG::Debug.log "---- Modules ----"
  68          self.a_toplevel_module.print 1
  69          LOG::Debug.log
  70          for a_module in self.a_toplevel_module.descendants
  71              a_module.print 1
  72              LOG::Debug.log
  73          end
  74 
  75          nil
  76      end
  77  end
  78 
  79  end # TmDoc::Model::Module
  80 
  81  end # TmDoc