Class: Sorted::ElasticsearchQuery

Inherits:
Object
  • Object
show all
Extended by:
Parse
Defined in:
lib/sorted.rb

Overview

Parses an Elasticsearch type set of order

Parsing:

params = [{ 'email' => {'order' => 'desc'}}]
set = Sorted::ElasticsearchQuery.parse(params)
set.to_a #=> [['email', 'desc']]

Encoding:

Sorted::ParamsQuery.encode(set) #=> [{ 'email' => {'order' => 'desc'}}]

Class Method Summary collapse

Methods included from Parse

parse_match, split

Class Method Details

.encode(set) ⇒ Object



236
237
238
# File 'lib/sorted.rb', line 236

def self.encode(set)
  set.to_a.each_with_object([]) { |f, a| a << { f.first => { 'order' => f.last } } }
end

.parse(raw) ⇒ Object



232
233
234
# File 'lib/sorted.rb', line 232

def self.parse(raw)
  Set.new(raw.each_with_object([]) { |hash, a| a << [hash.first.first, hash.first.last['order']] })
end