OSDN Git Service

merge
[pettanr/pettanr.git] / lib / manifest / local / view / profiler / association / belongs_to.rb
1 module Manifest
2   module View
3     module ProfilerModule
4       module AssociationModule
5         class BelongsTo
6           attr :association, :belongs_to_manifest
7           def initialize association, belongs_to_manifest
8             @association = association
9             @belongs_to_manifest = belongs_to_manifest
10           end
11           
12           def item
13             self.profiler.item
14           end
15           
16           def parent_model
17             @belongs_to_manifest.model
18           end
19           
20           def parent_id
21             self.item.attributes[self.model_belongs_to_manifest.id_column]
22           end
23           
24           def filer
25             filer = nil
26             begin
27               r = self.parent_model.show(self.parent_id, self.profiler.operators)
28              if r
29                 filer = ::Manifest::View::Filer.new self.parent_model.item_name, [r], nil, self.profiler.operators
30               end
31            rescue ActiveRecord::RecordNotFound, ActiveRecord::Forbidden
32             end
33             filer
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.model_name]
42           end
43           
44           def profiler
45             @association.profiler
46           end
47           
48         end
49       end
50     end
51   end
52 end