OSDN Git Service

refactoring manifest
[pettanr/pettanr.git] / lib / manifest / model / attribute / source / model.rb
1 module Manifest
2   module ModelModule
3     module AttributeModule
4       module SourceModule
5         class ModelSource
6           attr :attribute, :source_manifest, :type, 
7             :resource_model_name, :resource_list_name, :select_item_name, :caption_name
8           
9           def initialize attribute, source_manifest
10             @attribute = attribute
11             @source_manifest = source_manifest
12             self.set_default
13             self.init
14           end
15           
16           def set_default
17             @source_manifest['args'] ||= {}
18             @source_manifest['args']['resource_model_name'] ||= (@attribute.name.gsub('_id', ''))
19             @source_manifest['args']['resource_list_name'] ||= 'select_items'
20             @source_manifest['args']['select_item_name'] ||= self.model_name + '_' + @attribute.name.gsub('_id', '') + '_items'
21             @source_manifest['args']['caption_name'] ||= 'caption'
22           end
23           
24           def init
25             @args = @source_manifest['args']
26             @type = @source_manifest['type']
27             @resource_model_name = @args['resource_model_name']
28             @resource_list_name = @args['resource_list_name']
29             @select_item_name = @args['select_item_name']
30             @caption_name = @args['caption_name']
31           end
32           
33           def model_name
34             @attribute.parent_name
35           end
36           
37           def attribute_name
38             @attribute.name
39           end
40           
41         end
42         
43       end
44     end
45   end
46 end