module Faceted::Collector
Public Class Methods
included(base)
click to toggle source
# File lib/faceted/collector.rb, line 7 def self.included(base) base.extend ActiveModel::Naming base.send(:attr_accessor, :errors) base.send(:attr_accessor, :success) base.send(:attr_accessor, :fields) base.extend ClassMethods base.extend Faceted::Model::ModelClassMethods end
new(args={})
click to toggle source
Instance methods =========================================================
# File lib/faceted/collector.rb, line 48 def initialize(args={}) ! args.empty? && args.symbolize_keys.delete_if{|k,v| v.nil?}.each do |k,v| self.send("#{k}=", v) if self.respond_to?("#{k}=") && ! v.blank? end self.errors = [] self.success = true end
Public Instance Methods
to_hash()
click to toggle source
# File lib/faceted/collector.rb, line 56 def to_hash self.class.fields.inject({}){ |h,f| h[f] = self.send(f).map{|o| o.to_hash}; h } end
Private Instance Methods
objects(klass)
click to toggle source
# File lib/faceted/collector.rb, line 62 def objects(klass) return [] unless self.class.collected_classes return [] unless self.class.collected_classes.keys.include?(klass) self.class.collected_classes[klass].where(self.send("#{klass.to_s}_finder")) end