OSDN Git Service

8b4c0c082c49b4da6ca94dd191127bd271751d0d
[pettanr/pettanr.git] / lib / manifest / profiler / association / has_one.rb
1 module Manifest
2   module ProfilerModule
3     module AssociationModule
4       class HasOne
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               @model_name = n[0]
25               @list_name = n[1]
26             else
27               raise "undefined list for profilers > #{self.profiler.item_name} > has_one > #{@profiler_list_name}\n"
28             end
29           end
30           @list = ::Manifest::View::ListGroup.list @model_name, @list_name
31         end
32         
33         def model
34           ::Manifest::item_name_to_model @model_name
35         end
36         
37         def association_name
38           @association.association_name
39         end
40         
41         def profiler
42           @association.profiler
43         end
44         
45         def profiler_manifest
46           @association.profiler_manifest
47         end
48         
49       end
50       
51     end
52   end
53 end