OSDN Git Service

fix anything
[pettanr/pettanr.git] / lib / manifest / item / base.rb
1 ManifestBase.require_modules "manifest/item/", 
2   %w|boost|
3
4 module Manifest
5   module ItemModule
6     class BasePeta < ManifestBase::TypeNameArgs
7       
8       attr :boost ,:parent_model_name
9       
10       def set_default
11         super
12         @args['boost'] ||= {}
13       end
14       
15       def init
16         super
17         @parent_model_name = nil  # init at leaf, element
18         @boost = ManifestBase.load_name_values self, @args, 'boost', Boost
19       end
20       
21       def init_after_load_manifest
22         @boost.each do |boost_name, boost_manifest|
23           boost_manifest.init_after_load_manifest
24         end
25       end
26       
27       def element?
28         @parent_model_name != nil
29       end
30       
31       def find_boost_name column_name
32         @boost.each do |boost_name, boost_manifest|
33           return boost_name if boost_manifest.extend_column_name == column_name
34         end
35         nil
36       end
37       
38       def extend_column? column_name
39         @boost.each do |boost_name, boost_manifest|
40           return true if boost_manifest.extend_column_name == column_name
41         end
42         false
43       end
44       
45       def supply_defaults item
46         @boost.each do |name, manifest|
47           manifest.supply_default item
48         end
49       end
50       
51       def model
52         ::Manifest.item_name_to_model @name
53       end
54       
55     end
56   end
57 end