class MongoModel::MongoOrder

Attributes

clauses[R]

Public Class Methods

new(*clauses) click to toggle source
# File lib/mongomodel/support/mongo_order.rb, line 5
def initialize(*clauses)
  @clauses = clauses
end
parse(order) click to toggle source
# File lib/mongomodel/support/mongo_order.rb, line 34
def self.parse(order)
  case order
  when MongoOrder
    order
  when Clause
    new(order)
  when Symbol
    new(Clause.new(order))
  when String
    new(*order.split(',').map { |c| Clause.parse(c) })
  when Array
    new(*order.map { |c| Clause.parse(c) })
  else
    new(order.to_mongo_order_clause) if order.respond_to?(:to_mongo_order_clause)
  end
end

Public Instance Methods

==(other) click to toggle source
# File lib/mongomodel/support/mongo_order.rb, line 21
def ==(other)
  other.is_a?(self.class) && clauses == other.clauses
end
Also aliased as: eql?
eql?(other)
Alias for: ==
hash() click to toggle source
# File lib/mongomodel/support/mongo_order.rb, line 26
def hash
  clauses.hash
end
reverse() click to toggle source
# File lib/mongomodel/support/mongo_order.rb, line 30
def reverse
  self.class.new(*clauses.map { |c| c.reverse })
end
to_a() click to toggle source
# File lib/mongomodel/support/mongo_order.rb, line 9
def to_a
  clauses
end
to_s() click to toggle source
# File lib/mongomodel/support/mongo_order.rb, line 13
def to_s
  clauses.map { |c| c.to_s }.join(', ')
end
to_sort(model) click to toggle source
# File lib/mongomodel/support/mongo_order.rb, line 17
def to_sort(model)
  clauses.map { |c| c.to_sort(model.respond_to?(:properties) ? model.properties[c.field] : nil) }
end