class Locmare.Booster constructor: (manifest, item) -> @manifest = manifest @item = item # no check # return false unless self.resource.enable? if @is_extendable() _.extend(@item, @extend_module().prototype) if @has_extend_model() @item[@manifest.setter_method_name](@parsed_settings()) # get template from system resource manifest template_path_name: () -> @template_manifest().template_items[@template_module_name()] # get template manifest from system resource manifest template_manifest: () -> Manifest.manifest().system_resources.templates[@manifest.template_name] item_name: () -> @template_path_name() + '_' + @manifest.item_name_for_extend_model is_enable: () -> if @template_manifest().template_items[@template_module_name()] true else false # get template module name # ex) attributes[hoge_module_name] -> 'Hoge' template_module_name: () -> @item.get(@manifest.column_name_for_template_module) settings: () -> @item.get(@manifest.settings_column_name) # name space for template # ex) 'Hoge' -> Hoge template_module: () -> Pettanr[@template_module_name()] is_extendable: () -> if @template_module()[@manifest.extend_module_name] true else false # extend module in engine # ex) 'SpeechBalloonModule' -> CircleSpeechBalloon::SpeechBalloonModule extend_module: () -> @template_module()[@manifest.extend_module_name] has_extend_model: () -> if not Pettanr.is_blank(@manifest.extend_model_class_name) true else false # extend settings data model in engine # ex) CircleSpeechBalloon::SpeechBalloon extend_model: () -> if @has_extend_model() @template_module()[@manifest.extend_model_class_name] else null check_template: () -> if Pettanr.is_blank(@item.get(@manifest.foreign_key)) false else true # get template model template_model: () -> Manifest.manifest().models[@manifest.template_name].classify() # get extend instance extend_item: () -> if @extend_model() @item[@manifest.getter_method_name]() else null parsed_settings: () -> if Pettanr.is_blank(@settings()) {} else JSON.parse(@settings()) update_settings: (new_settings) -> @item[@manifest.setter_method_name](new_settings) supply_default: () -> @extend_item().supply_default(@item) overwrite: () -> @extend_item().overwrite(@item)