class Riak::YzQuery::OrderClause

Public Class Methods

new(clause) click to toggle source
# File lib/riak/yz_query/order_clause.rb, line 4
def initialize(clause)
  @clause = clause
end

Public Instance Methods

build_clause_array() click to toggle source
# File lib/riak/yz_query/order_clause.rb, line 36
def build_clause_array
  @clause.join ', '
end
build_clause_hash() click to toggle source
# File lib/riak/yz_query/order_clause.rb, line 27
def build_clause_hash
  @clause.map do |k,v|
    v = v.to_s.downcase
    raise ArgumentError.new "Couldn't use #{v.inspect} in an order clause" unless %w{asc desc}.include? v

    "#{k} #{v}"
  end.join ', '
end
consume(new_clause) click to toggle source
# File lib/riak/yz_query/order_clause.rb, line 21
def consume(new_clause)
  new_clause_query = self.class.new(new_clause)
  return new_clause_query if @clause.empty?
  return self.class.new "#{to_yz_query}, #{new_clause.to_yz_query}"
end
to_yz_query() click to toggle source
# File lib/riak/yz_query/order_clause.rb, line 8
def to_yz_query
  return nil if @clause.empty?

  case @clause
  when Hash
    build_clause_hash
  when Array
    build_clause_array
  when String
    @clause
  end
end