OSDN Git Service

change page status
[pettanr/pettanr.git] / lib / locmare / profiler / association / belongs_to.rb
1 module Locmare
2   module ProfilerModule
3     module AssociationModule
4       class BelongsTo
5         attr :association, :belongs_to_manifest
6         def initialize association, belongs_to_manifest
7           @association = association
8           @belongs_to_manifest = belongs_to_manifest
9         end
10         
11         def item
12           self.profiler.item
13         end
14         
15         def parent_model
16           @belongs_to_manifest.model
17         end
18         
19         def parent_id
20           self.item.attributes[self.model_belongs_to_manifest.id_column]
21         end
22         
23         def filer
24           r = nil
25           begin
26             r = [self.parent_model.show(self.parent_id, self.profiler.operators)]
27           rescue ActiveRecord::RecordNotFound, ActiveRecord::Forbidden
28             r = []
29           end
30           ::Locmare::Filer.new(
31             self.parent_model.item_name, r, 
32             nil, self.profiler.operators
33           )
34         end
35         
36         def model_manifest
37           ::Manifest.manifest.models[self.profiler.item_name]
38         end
39         
40         def model_belongs_to_manifest
41           self.model_manifest.associations.belongs_to[@belongs_to_manifest.item_name]
42         end
43         
44         def profiler
45           @association.profiler
46         end
47         
48       end
49     end
50   end
51 end