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