class ManifestBase.Base
- @load: (manifest, jsons, module_name) ->
+ _manifest = null
+ _name = null
+ _json = null
+ _module_name = null
+
+ manifest: () ->
+ _manifest
+
+ name: () ->
+ _name
+
+ json: () ->
+ _json
+
+ module_name: () ->
+ _module_name
+
+ @load: (manifest, jsons, module_name, klass) ->
r = {}
- _.each @jsons[module_name], (name, json) ->
- r[name] = new ManifestBase.Base(manifest, name, json, module_name)
+ _.each jsons[module_name], (json, name) ->
+ r[name] = new klass(manifest, name, json, module_name)
r
set_default: () ->
- @json['args'] ||= {}
- @type = @json['type']
- @args = @json['args']
-
+
init: () ->
module_names: () ->
- @parent.module_names + [@module_name, @name]
+ _manifest.module_names().concat([@module_name, @name])
module_message: () ->
ManifestBase.module_message(@module_names)
constructor: (manifest, name, json, module_name) ->
- @manifest = manifest
+ _manifest = manifest
@name = name
@json = json
- @module_name = module_name
+ _module_name = module_name
@set_default()
@init()