20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/faceted/collector.rb', line 20
def collects(name, args={})
@fields = [name]
find_by = args[:find_by] ? args[:find_by] : "#{self.name.split('::')[-1].underscore.singularize}_id"
@collects ||= {}
@collects[name.downcase] = eval "#{scope}#{args[:class_name] || name.to_s.classify}"
define_method :"#{name.downcase}" do
objects(name.downcase.to_sym)
end
if args[:find_by].nil?
define_method :"#{name.downcase}_finder" do
{"#{find_by}" => self.id}
end
else
define_method :"#{name.downcase}_finder" do
{"#{find_by}" => self.send(find_by)}
end
end
self.send(:attr_accessor, find_by)
end
|