Class: Believer::OrderBy

Inherits:
Object
  • Object
show all
Defined in:
lib/believer/order_by.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(field, dir = :asc) ⇒ OrderBy

Returns a new instance of OrderBy.



5
6
7
8
9
10
# File 'lib/believer/order_by.rb', line 5

def initialize(field, dir = :asc)
  raise "Invalid field: #{field}" unless field.is_a?(Symbol) || field.is_a?(String)
  raise "Direction must be one of (:asc|:desc): #{dir}" unless dir == :asc || dir == :desc
  @field = field
  @dir = dir
end

Instance Attribute Details

#dirObject (readonly)

Returns the value of attribute dir.



3
4
5
# File 'lib/believer/order_by.rb', line 3

def dir
  @dir
end

#fieldObject (readonly)

Returns the value of attribute field.



3
4
5
# File 'lib/believer/order_by.rb', line 3

def field
  @field
end

Instance Method Details

#inverseObject



16
17
18
# File 'lib/believer/order_by.rb', line 16

def inverse
  OrderBy.new(@field, @dir == :asc ? :desc : :asc)
end

#to_cqlObject



12
13
14
# File 'lib/believer/order_by.rb', line 12

def to_cql
  "ORDER BY #{@field} #{@dir.present? ? @dir.to_s.upcase : 'ASC'}"
end