class Archruby::Architecture::Parser
Attributes
modules[R]
Public Class Methods
new(config_file_path, base_path)
click to toggle source
# 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 @type_inferece_dependency_organizer = Archruby::Ruby::TypeInference::DependencyOrganizer.new parse ruby_std_lib_module ruby_core_module unknow_module end
Public Instance Methods
parse()
click to toggle source
# File lib/archruby/architecture/parser.rb, line 21 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) @type_inferece_dependency_organizer.add_dependencies(module_definition.type_inference_dependencies) @type_inferece_dependency_organizer.add_method_calls(module_definition.type_inference_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 #binding.pry # @type_inference_checker.verify_types # @type_inference_checker.add_new_deps(@modules) end type_inferece_verifier = Archruby::Ruby::TypeInference::TypeInferenceChecker.new( @type_inferece_dependency_organizer.dependencies, @type_inferece_dependency_organizer.method_definitions ) type_inferece_verifier.add_dependency_based_on_calls type_inferece_verifier.add_dependency_based_on_internal_calls @type_inference_checker.populate_dependencies(type_inferece_verifier.dependencies) @type_inference_checker.add_new_deps(@modules) #binding.pry end
ruby_core_module()
click to toggle source
# File lib/archruby/architecture/parser.rb, line 63 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()
click to toggle source
# File lib/archruby/architecture/parser.rb, line 56 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()
click to toggle source
# File lib/archruby/architecture/parser.rb, line 70 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()
click to toggle source
# File lib/archruby/architecture/parser.rb, line 52 def yaml_parser YAML end