class Rethinker::Selection::OrderBy::OrderByRules

Attributes

rules[RW]

Public Class Methods

new(rules) click to toggle source
# File lib/rethinker/selection/order_by.rb, line 16
def initialize(rules)
  @rules = rules
end

Public Instance Methods

asc(order) click to toggle source
# File lib/rethinker/selection/order_by.rb, line 32
def asc(order)
  order == :reverse ? :desc : :asc
end
desc(order) click to toggle source
# File lib/rethinker/selection/order_by.rb, line 36
def desc(order)
  order == :reverse ? :asc : :desc
end
rql_lookup(key, value = :asc, order) click to toggle source
# File lib/rethinker/selection/order_by.rb, line 24
def rql_lookup(key, value = :asc, order)
  case value
    when asc(order)  then RethinkDB::RQL.new.asc(key)
    when desc(order) then RethinkDB::RQL.new.desc(key)
    else raise "please pass :asc or :desc, not #{value}"
  end
end
to_rql(context) click to toggle source
# File lib/rethinker/selection/order_by.rb, line 20
def to_rql(context)
  @rules.map{|k,v| rql_lookup(k,v, context[:order])}
end