3 def self.load manifest, jsons, module_name
4 Hash[jsons[module_name].map {|name, json|
5 [name, self.new(manifest, name, json, module_name)]
9 attr :manifest, :name, :name, :module_name
11 def initialize manifest, name, json, module_name
15 @module_name = module_name
27 @manifest.module_names + [@module_name, @name]
33 def require_modules path, names
35 require_dependency path + name.to_s
39 def module_message module_names, my_module_names = []
40 (module_names + my_module_names).join(' > ')
43 def alert_message message, location
44 puts 'invalid manifest?'
45 p "#{message} for #{message}\n"
46 # logger.error "#{message} for #{message}\n"
49 def alert_undefined_message name, location
50 alert_message 'undefined ' + name, location
53 def load_value _self, json, module_name, klass
54 klass.new(_self, json[module_name], module_name)
57 def load_name_values _self, jsons, module_name, klass
58 Hash[jsons[module_name].map {|_name, _json|
59 [_name, klass.new(_self, _name, _json, module_name)]
63 def load_type_args _self, jsons, module_name, klass
64 klass.factory_type_args(_self, jsons[module_name], module_name)
67 def load_type_name_args _self, jsons, module_name, klass
68 Hash[jsons[module_name].map {|_name, _json|
69 [_name, klass.factory(_self, _name, _json, module_name)]
73 def load_names _self, json, module_name, klass
74 json[module_name].map {|_name|
75 klass.new(_self, _name, module_name)