Module: Faceted::Collector::ClassMethods

Defined in:
lib/faceted/collector.rb

Overview

Class methods ===========================================================

Instance Method Summary collapse

Instance Method Details

#collected_classesObject



40
41
42
# File 'lib/faceted/collector.rb', line 40

def collected_classes
  @collects
end

#collects(name, args = {}) ⇒ Object



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