module Faceted::Collector::ClassMethods

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

Public Instance Methods

collected_classes() click to toggle source
# File lib/faceted/collector.rb, line 40
def collected_classes
  @collects
end
collects(name, args={}) click to toggle source
# 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