# TestSpeechBalloon: 'test_speech_balloon',\r
},\r
},\r
++ speech_balloons: {\r
++ resource_items: {\r
++ CircleSpeechBalloon: 'circle_speech_balloon',\r
++ PlainSpeechBalloon: 'plain_speech_balloon',\r
++ SquareSpeechBalloon: 'square_speech_balloon',\r
++ # TestSpeechBalloon: 'test_speech_balloon',\r
++ },\r
++ },\r
writing_formats: {\r
has_route: 0,\r
resource_items: {\r
module Peta
class Item < ActiveRecord::Base
self.abstract_class = true
+
+ # Dynamic ClassMethods
+
+ def self._valid_encode_columns
+ self.my_manifest.valid_encode_columns
+ end
+
++ def self._extend_column_name
++ self.my_manifest.extend_column_name
++ end
++
+ def self.load_manifest
+ return nil unless self.my_manifest
+ r = self._valid_encode_columns
+ define_singleton_method("valid_encode_columns") do
+ r
+ end
++ n = self._extend_column_name
++ define_singleton_method("extend_column_name") do
++ n
++ end
+ end
+
# ClassMethods
# class_name
# table_name
end
end
- Object.const_get self.extend_column
+ def engine
++ Object.const_get self.attributes[self.extend_column_name]
++ end
++
++ def my_engine_resource
++ Manifest.manifest.system_resources.engine_resources[self.table_name]
++ end
++
++ def engine?
++ self.my_engine_resource.resource_items.include? self.extend_column_name
+ end
+
def extend_engine_module
- self.extend self.speech_balloon_template.engine_speech_balloon_module
+ self.extend self.engine.extend_module
self.elements.each do |element|
element.extend_item
end
self.class.table_name
end
- nil
+ def extend_column_name
++ self.class.extend_column_name
++ end
++
+ def path_name with_engine = false
+ self.class.path_name(with_engine)
+ end
+
+ def form_template with_engine = false
+ self.path_name(with_engine) + '/form'
end
- def extend_column
- nil
- end
-
- def extend_item_name
- self.extend_column ? self.attributes[self.extend_column] : self.item_name
- end
-
def form_name
- self.extend_item_name
+ self.extend_column ? self.attributes[self.extend_column] : self.item_name
end
def valid_encode