OSDN Git Service

merge
[pettanr/pettanr.git] / lib / manifest / profiler / association / has_many.rb
1 module Manifest
2   module ProfilerModule
3     module AssociationModule
4       class HasMany
5         attr :association, :profiler_list_name, 
6           :model_name, :list_name, :list
7         def initialize association, profiler_list_name
8           @association = association
9           @profiler_list_name = profiler_list_name
10           self.set_default
11           self.init
12         end
13         
14         def set_default
15         end
16         
17         def init
18           if list_manifest = self.profiler.lists[@profiler_list_name]
19             @model_name = list_manifest.model_name
20             @list_name = list_manifest.list_name
21           else
22             n = @profiler_list_name.split '.'
23             if n.size > 1
24               @table_name = n[0]
25               @model_name = @table_name.singularize
26               @list_name = n[1]
27             else
28               raise "undefined list for profilers > #{self.profiler.item_name} > has_many > #{@profiler_list_name}\n"
29             end
30           end
31           @list = ::Manifest::View::ListGroup.list @model_name, @list_name
32         end
33         
34         def model
35           ::Manifest::item_name_to_model @model_name
36         end
37         
38         def association_name
39           @association.association_name
40         end
41         
42         def profiler
43           @association.profiler
44         end
45         
46         def profiler_manifest
47           @association.profiler_manifest
48         end
49         
50       end
51       
52     end
53   end
54 end