5 def initialize manifest, item
9 # return false unless self.resource.enable?
11 @item.extend self.extend_module
12 @item.__send__ @manifest.setter_method_name, self.parsed_settings
16 # get template from system resource manifest
17 def template_path_name
18 self.template_manifest.template_items[self.template_module_name]
21 # get template manifest from system resource manifest
23 Manifest.manifest.system_resources.templates[@manifest.template_name]
27 self.template_path_name + '_' + @manifest.item_name_for_extend_model
31 self.template_manifest.template_items.include? self.template_module_name
34 # get template module name
35 # ex) attributes[hoge__module_name] -> 'Hoge'
36 def template_module_name
37 @item.attributes[@manifest.column_name_for_template_module]
41 @item.attributes[@manifest.settings_column_name]
44 # name space for template
47 Object.const_get self.template_module_name
51 self.template_module.constants.include? @manifest.extend_module_name.to_sym
54 # extend module in engine
55 # ex) 'SpeechBalloonModule' -> CircleSpeechBalloon::SpeechBalloonModule
57 self.template_module.const_get @manifest.extend_module_name
60 # extend settings data model in engine
61 # ex) CircleSpeechBalloon::SpeechBalloon
63 self.template_module.const_get @manifest.extend_model_class_name
67 @item.attributes[@manifest.foreign_key].blank? == false
70 # get system resource instance
72 Manifest.manifest.models[@manifest.template_name].classify
77 @item.__send__ @manifest.getter_method_name
81 if self.settings.blank?
84 JSON.parse(self.settings)
88 def update_settings new_settings
89 @item.__send__ @manifest.setter_method_name, new_settings