OSDN Git Service

fix form extend
[pettanr/pettanr.git] / lib / manifest / item / boost.rb
1 module Manifest
2   module ItemModule
3     class Boost < ManifestBase::NameValues
4       attr :level, :resource_name, :engine_resource_name, :engine_resource_extend_column_name,
5         :extend_column_name, :settings_column_name, 
6         :foreign_key, :extend_model_class_name, :extend_item_name, 
7         :setter_method_name, :getter_method_name, 
8         :extend_module_name
9       
10       def set_default
11         super
12         @values['level'] ||= 'post'
13         @values['resource_name'] ||= @name
14         # do refactoring!
15         # resource_picture profiler extend by license group through license
16         # @values['engine_resource_name'] ||= @name # suppling booster
17         # @values['engine_resource_extend_column_name'] ||= @name # suppling booster
18         @values['extend_column_name'] ||= @values['resource_name'] + '_classname'
19         @values['settings_column_name'] ||= @values['resource_name'] + '_settings'
20         @values['foreign_key'] ||= @values['resource_name'] + '_id'
21       end
22       
23       def init
24         super
25         @level = @values['level']
26         @resource_name = @values['resource_name']
27         @engine_resource_name = @values['engine_resource_name']
28         @engine_resource_extend_column_name = @values['engine_resource_extend_column_name']
29         @extend_column_name = @values['extend_column_name']
30         @settings_column_name = @values['settings_column_name']
31         @foreign_key = @values['foreign_key']
32       end
33       
34       def init_after_load_manifest
35         # string name can't change before load manifest
36         @values['extend_model_class_name'] ||= @parent.model.singular
37         @values['extend_item_name'] ||= @parent.model.item_name
38         @values['setter_method_name'] ||= @values['extend_item_name'] + '_extend='
39         @values['getter_method_name'] ||= @values['extend_item_name'] + '_extend'
40         
41         @extend_model_class_name = @values['extend_model_class_name']
42         @extend_item_name = @values['extend_item_name']
43         @setter_method_name = @values['setter_method_name']
44         @getter_method_name = @values['getter_method_name']
45         @extend_module_name = @extend_model_class_name + 'Module'
46       end
47       
48       
49       def supply_default item
50         self.engine_model(item).engine_extend_module.supply_default item, self
51       end
52       
53     end
54   end
55 end