1 class Locmare.Booster
\r
2 constructor: (manifest, item) ->
\r
6 # return false unless self.resource.enable?
\r
8 _.extend(@item, @extend_module().prototype)
\r
9 if @has_extend_model()
\r
10 @item[@manifest.setter_method_name](@parsed_settings())
\r
12 # get template from system resource manifest
\r
13 template_path_name: () ->
\r
14 @template_manifest().template_items[@template_module_name()]
\r
16 # get template manifest from system resource manifest
\r
17 template_manifest: () ->
\r
18 Manifest.manifest().system_resources.templates[@manifest.template_name]
\r
21 @template_path_name() + '_' + @manifest.item_name_for_extend_model
\r
24 if @template_manifest().template_items[@template_module_name()]
\r
29 # get template module name
\r
30 # ex) attributes[hoge_module_name] -> 'Hoge'
\r
31 template_module_name: () ->
\r
32 @item.get(@manifest.column_name_for_template_module)
\r
35 @item.get(@manifest.settings_column_name)
\r
37 # name space for template
\r
38 # ex) 'Hoge' -> Hoge
\r
39 template_module: () ->
\r
40 Pettanr[@template_module_name()]
\r
42 is_extendable: () ->
\r
43 if @template_module()[@manifest.extend_module_name]
\r
48 # extend module in engine
\r
49 # ex) 'SpeechBalloonModule' -> CircleSpeechBalloon::SpeechBalloonModule
\r
50 extend_module: () ->
\r
51 @template_module()[@manifest.extend_module_name]
\r
53 has_extend_model: () ->
\r
54 if not Pettanr.is_blank(@manifest.extend_model_class_name)
\r
59 # extend settings data model in engine
\r
60 # ex) CircleSpeechBalloon::SpeechBalloon
\r
62 if @has_extend_model()
\r
63 @template_module()[@manifest.extend_model_class_name]
\r
67 check_template: () ->
\r
68 if Pettanr.is_blank(@item.get(@manifest.foreign_key))
\r
73 # get template model
\r
74 template_model: () ->
\r
75 Manifest.manifest().models[@manifest.template_name].classify()
\r
77 # get extend instance
\r
80 @item[@manifest.getter_method_name]()
\r
84 parsed_settings: () ->
\r
85 if Pettanr.is_blank(@settings())
\r
88 JSON.parse(@settings())
\r
90 update_settings: (new_settings) ->
\r
91 @item[@manifest.setter_method_name](new_settings)
\r
93 supply_default: () ->
\r
94 @extend_item().supply_default(@item)
\r
97 @extend_item().overwrite(@item)
\r