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