OSDN Git Service

change form manifest
[pettanr/pettanr.git] / lib / locmare / booster.rb
index edc6d74..8fef236 100644 (file)
@@ -8,81 +8,85 @@ module Locmare
       # no check
       # return false unless self.resource.enable?
       if self.extendable?
-        @item.extend self.engine_extend_module
-        @item.__send__ @manifest.setter_method_name, self.parsed_settings
+        @item.extend self.extend_module
+        @item.__send__ @manifest.setter_method_name, self.parsed_settings if self.has_extend_model?
       end
     end
     
-    def engine_resource_name
-      @manifest.engine_resource_name || self.resource.table_name
+    # get template from system resource manifest
+    def template_path_name
+      self.template_manifest.template_items[self.template_module_name]
     end
     
-    # get engine resource from system resource manifest
-    def my_engine_resource
-      Manifest.manifest.system_resources.engine_resources[self.engine_resource_name]
+    # get template manifest from system resource manifest
+    def template_manifest
+      Manifest.manifest.system_resources.templates[@manifest.template_name]
     end
     
-    def engine_classname
-      @item.attributes[@manifest.extend_column_name]
-    end
-    
-    # get snake_case engine name
-    # ex) circle_speech_balloon
-    # use to url, model_name generating
-    def engine_name
-      self.my_engine_resource.resource_items[self.engine_classname]
-    end
-    
-    def model_name
-      self.engine_name + '_' + @manifest.extend_item_name
+    def item_name
+      self.template_path_name + '_' + @manifest.item_name_for_extend_model
     end
     
     def enable?
-      self.my_engine_resource.resource_items.include? self.class_name
+      self.template_manifest.template_items.include? self.template_module_name
     end
     
-    # get engine's module name
-    def class_name
-      @item.attributes[@manifest.extend_column_name]
+    # get template module name
+    # ex) attributes[hoge_module_name] -> 'Hoge'
+    def template_module_name
+      @item.attributes[@manifest.column_name_for_template_module]
     end
     
     def settings
       @item.attributes[@manifest.settings_column_name]
     end
     
-    # name space for engine
-    def engine_module
-      Object.const_get self.class_name
+    # name space for template
+    # ex) 'Hoge' -> Hoge
+    def template_module
+      Object.const_get self.template_module_name
     end
     
     def extendable?
-      self.engine_module.constants.include? @manifest.extend_module_name.to_sym
+      self.template_module.constants.include? @manifest.extend_module_name.to_sym
     end
     
     # extend module in engine
-    # ex) CircleSpeechBalloon::SpeechBalloonModule
-    def engine_extend_module
-      self.engine_module.const_get @manifest.extend_module_name
+    # ex) 'SpeechBalloonModule' -> CircleSpeechBalloon::SpeechBalloonModule
+    def extend_module
+      self.template_module.const_get @manifest.extend_module_name
+    end
+    
+    def has_extend_model?
+      !@manifest.extend_model_class_name.blank?
     end
     
     # extend settings data model in engine
     # ex) CircleSpeechBalloon::SpeechBalloon
-    def engine_extend_model
-      self.engine_module.const_get @manifest.extend_model_name
+    def extend_model
+      if self.has_extend_model?
+        self.template_module.const_get @manifest.extend_model_class_name
+      else
+        nil
+      end
     end
     
-    def check_resource
+    def check_template
       @item.attributes[@manifest.foreign_key].blank? == false
     end
     
-    # get system resource instance
-    def resource
-      Manifest.manifest.models[@manifest.resource_name].classify
+    # get template model
+    def template_model
+      Manifest.manifest.models[@manifest.template_name].classify
     end
     
     # get extend instance
     def extend_item
-      @item.__send__ @manifest.getter_method_name
+      if self.extend_model
+        @item.__send__ @manifest.getter_method_name
+      else
+        nil
+      end
     end
     
     def parsed_settings
@@ -93,6 +97,18 @@ module Locmare
       end
     end
     
+    def update_settings new_settings
+      @item.__send__ @manifest.setter_method_name, new_settings
+    end
+    
+    def supply_default
+      self.extend_item.supply_default @item
+    end
+    
+    def overwrite 
+      self.extend_item.overwrite @item
+    end
+    
   end
 end