Class: Archruby::Architecture::Parser
- Inherits:
-
Object
- Object
- Archruby::Architecture::Parser
- Defined in:
- lib/archruby/architecture/parser.rb
Instance Attribute Summary collapse
-
#modules ⇒ Object
readonly
Returns the value of attribute modules.
Instance Method Summary collapse
-
#initialize(config_file_path, base_path) ⇒ Parser
constructor
A new instance of Parser.
- #parse ⇒ Object
- #ruby_core_module ⇒ Object
- #ruby_std_lib_module ⇒ Object
- #unknow_module ⇒ Object
- #yaml_parser ⇒ Object
Constructor Details
#initialize(config_file_path, base_path) ⇒ Parser
Returns a new instance of Parser.
9 10 11 12 13 14 15 16 17 18 |
# File 'lib/archruby/architecture/parser.rb', line 9 def initialize config_file_path, base_path @config_file = config_file_path @base_path = base_path @modules = [] @type_inference_checker = TypeInferenceChecker.new parse ruby_std_lib_module ruby_core_module unknow_module end |
Instance Attribute Details
#modules ⇒ Object (readonly)
Returns the value of attribute modules.
7 8 9 |
# File 'lib/archruby/architecture/parser.rb', line 7 def modules @modules end |
Instance Method Details
#parse ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/archruby/architecture/parser.rb', line 20 def parse parsed_yaml = yaml_parser.load_file @config_file parsed_yaml.each do |module_name, definitions| begin config_definition = Archruby::Architecture::ConfigDefinition.new module_name, definitions module_definition = Archruby::Architecture::ModuleDefinition.new config_definition, @base_path @type_inference_checker.add_method_deps module_definition.class_methods_and_deps @type_inference_checker.add_method_calls module_definition.class_methods_calls rescue Archruby::MultipleConstraints => e STDOUT.puts "The config file is not right: #{e.msg} | err_code: #{e.status_code} | module_definition: #{module_name}" exit(e.status_code) end @modules << module_definition @type_inference_checker.verify_types @type_inference_checker.add_new_deps @modules end end |
#ruby_core_module ⇒ Object
49 50 51 52 53 54 |
# File 'lib/archruby/architecture/parser.rb', line 49 def ruby_core_module config_definition_core = Archruby::Architecture::ConfigDefinition.new Archruby::Ruby::CORE_LIB_NAME, {"gems"=>"", "files"=>"", "allowed"=>"", "forbidden" => ""} module_definiton_core = Archruby::Architecture::ModuleDefinition.new(config_definition_core, @base_path) module_definiton_core.classes = Archruby::Ruby::CORE_LIBRARY_CLASSES @modules << module_definiton_core end |
#ruby_std_lib_module ⇒ Object
42 43 44 45 46 47 |
# File 'lib/archruby/architecture/parser.rb', line 42 def ruby_std_lib_module config_definition_std_lib = Archruby::Architecture::ConfigDefinition.new Archruby::Ruby::STD_LIB_NAME, {"gems"=>"", "files"=>"", "allowed"=>"", "forbidden" => ""} module_definiton_std_lib = Archruby::Architecture::ModuleDefinition.new(config_definition_std_lib, @base_path) module_definiton_std_lib.classes = Archruby::Ruby::STD_LIBRARY_CLASSES @modules << module_definiton_std_lib end |
#unknow_module ⇒ Object
56 57 58 59 |
# File 'lib/archruby/architecture/parser.rb', line 56 def unknow_module config_definition_unknow = Archruby::Architecture::ConfigDefinition.new "unknown", {"gems"=>"unknown", "files"=>"", "allowed"=>"", "forbidden" => ""} @modules << Archruby::Architecture::ModuleDefinition.new(config_definition_unknow, @base_path) end |
#yaml_parser ⇒ Object
38 39 40 |
# File 'lib/archruby/architecture/parser.rb', line 38 def yaml_parser YAML end |