class Mongoid::Orderable::Generators::Scope

Public Instance Methods

generate(field_name, order_scope) click to toggle source
# File lib/mongoid/orderable/generators/scope.rb, line 7
def generate(field_name, order_scope)
  criteria = criteria(order_scope)
  klass.class_eval do
    scope "orderable_#{field_name}_scope", criteria
  end
end

Protected Instance Methods

criteria(order_scope) click to toggle source
# File lib/mongoid/orderable/generators/scope.rb, line 16
def criteria(order_scope)
  case order_scope
  when Proc then order_scope
  when Array then ->(doc) { where(order_scope.each_with_object({}) {|f, h| h[f] = doc.send(f) }) }
  else ->(_doc) { where({}) }
  end
end