module Faceted::Presenter::ClassMethods
Public Instance Methods
all()
click to toggle source
# File lib/faceted/presenter.rb, line 35 def all materialize(klass.all) end
find(id)
click to toggle source
# File lib/faceted/presenter.rb, line 39 def find(id) materialize(klass.where(id: id)).first end
klass()
click to toggle source
# File lib/faceted/presenter.rb, line 20 def klass @presents end
presents(name, args={})
click to toggle source
# File lib/faceted/presenter.rb, line 24 def presents(name, args={}) class_name = args[:class_name] || name.to_s.classify # LineItem @presents = eval(class_name) define_method :find_by do args[:find_by] || :id end define_method :"#{name}" do object end end
where(args)
click to toggle source
# File lib/faceted/presenter.rb, line 43 def where(args) if klass.respond_to? :fields if klass.fields.respond_to?(:keys) # Mongoid attrs = args.select{|k,v| klass.fields.keys.include? k.to_s} else attrs = args.select{|k,v| klass.fields.include? k.to_s} end else # ActiveRecord et al attrs = args.select{|k,v| klass.column_names.include? k.to_s} end materialize(klass.where(attrs)) end