Module: Api::Filters

Defined in:
lib/api/filters.rb,
lib/api/filters/in.rb,
lib/api/filters/json.rb,
lib/api/filters/query.rb,
lib/api/filters/between.rb,
lib/api/filters/version.rb,
lib/api/filters/equal_to.rb,
lib/api/filters/condition.rb,
lib/api/filters/lower_than.rb,
lib/api/filters/greater_than.rb,
lib/api/filters/lower_equal_than.rb,
lib/api/filters/greater_equal_than.rb

Defined Under Namespace

Modules: Condition Classes: Between, EqualTo, GreaterEqualThan, GreaterThan, In, Json, LowerEqualThan, LowerThan, Query

Constant Summary collapse

VERSION =
"0.0.1"

Class Method Summary collapse

Class Method Details

.condition(field, value) ⇒ Object



27
28
29
30
31
32
33
# File 'lib/api/filters.rb', line 27

def self.condition(field, value)
  [Between, EqualTo, GreaterEqualThan, GreaterThan, In, LowerEqualThan, LowerThan].each do |condition|
    if condition.handle? value
      return condition.new(field, value).elastic_query if condition.new(field, value).respond_to? :elastic_query
    end
  end
end

.parse(string) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/api/filters.rb', line 17

def self.parse(string)
  if string
    filters = Hash.new
    filters[string.split("|").map { |f| f.split("::") }.each { |f| filters[f.first] = f.last }]
    return filters
  end

  {}
end