OSDN Git Service

fix orm
[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               @model_name = n[0]
25               @list_name = n[1]
26             else
27               raise "undefined list for profilers > #{self.profiler.item_name} > lists > #{@my_name}\n" unless @list_manifest['model_name']
28             end
29           end
30           @my_list = ::Manifest.manifest.lists[@model_name]
31           raise "undefined my_list for profilers > #{self.profiler.item_name} > lists > #{@my_name} ... #{@model_name}\n" unless @my_list
32           @list = @my_list[@list_name]
33           raise "undefined list for profilers > #{self.profiler.item_name} > lists > #{@my_name} ... #{@list_name}\n" unless @list
34         end
35         
36         def model
37           ::Manifest::item_name_to_model @model_name
38         end
39         
40         def association_name
41           @association.association_name
42         end
43         
44         def profiler
45           @association.profiler
46         end
47         
48         def profiler_manifest
49           @association.profiler_manifest
50         end
51         
52       end
53       
54     end
55   end
56 end