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 raise "#{message} for #{message}\n"
47 def alert_undefined_message name, location
48 alert_message 'undefined ' + name, location
51 def load_value _self, json, module_name, klass
52 klass.new(_self, json[module_name], module_name)
55 def load_name_values _self, jsons, module_name, klass
56 Hash[jsons[module_name].map {|_name, _json|
57 [_name, klass.new(_self, _name, _json, module_name)]
61 def load_type_args _self, jsons, module_name, klass
62 klass.factory_type_args(_self, jsons[module_name], module_name)
65 def load_type_name_args _self, jsons, module_name, klass
66 Hash[jsons[module_name].map {|_name, _json|
67 [_name, klass.factory(_self, _name, _json, module_name)]
71 # LocalManifest::Profiler::Association::HasMany
72 def load_names _self, json, module_name, klass
73 json[module_name].map {|_name|
74 klass.new(_self, _name, module_name)