OSDN Git Service

separate manifest
[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 self.parent_model.item_name, r, nil, self.profiler.operators
31         end
32         
33         def model_manifest
34           ::Manifest.manifest.models[self.profiler.item_name]
35         end
36         
37         def model_belongs_to_manifest
38           self.model_manifest.associations.belongs_to[@belongs_to_manifest.model_name]
39         end
40         
41         def profiler
42           @association.profiler
43         end
44         
45       end
46     end
47   end
48 end