class Trample::ConditionProxy

Public Class Methods

new(name, search) click to toggle source
# File lib/trample/condition_proxy.rb, line 4
def initialize(name, search)
  condition = search.class._conditions[name.to_sym]
  raise ConditionNotFoundError.new(search, name) unless condition

  @condition_class = condition.class
  @condition_config = condition.attributes.dup
  @search = search
  @name = name.to_sym
end

Public Instance Methods

all(values)
Alias for: and
analyzed(value) click to toggle source
# File lib/trample/condition_proxy.rb, line 24
def analyzed(value)
  set(values: value, search_analyzed: true)
end
and(values) click to toggle source
# File lib/trample/condition_proxy.rb, line 19
def and(values)
  set(values: values, and: true)
end
Also aliased as: all
any_text(value) click to toggle source
# File lib/trample/condition_proxy.rb, line 69
def any_text(value)
  set(values: value, any_text: true)
end
autocomplete(value) click to toggle source
# File lib/trample/condition_proxy.rb, line 61
def autocomplete(value)
  set(values: value, autocomplete: true)
end
eq(value) click to toggle source
# File lib/trample/condition_proxy.rb, line 57
def eq(value)
  set(values: value)
end
gt(value) click to toggle source
# File lib/trample/condition_proxy.rb, line 37
def gt(value)
  merge(from: value)
end
gte(value) click to toggle source
# File lib/trample/condition_proxy.rb, line 33
def gte(value)
  merge(from_eq: value)
end
in(values)
Alias for: or
lt(value) click to toggle source
# File lib/trample/condition_proxy.rb, line 45
def lt(value)
  merge(to: value)
end
lte(value) click to toggle source
# File lib/trample/condition_proxy.rb, line 41
def lte(value)
  merge(to_eq: value)
end
not(values) click to toggle source
# File lib/trample/condition_proxy.rb, line 28
def not(values)
  set(values: values, not: true)
end
Also aliased as: not_in
not_in(values)
Alias for: not
or(values) click to toggle source
# File lib/trample/condition_proxy.rb, line 14
def or(values)
  set(values: values, and: false)
end
Also aliased as: in
set(payload) click to toggle source
# File lib/trample/condition_proxy.rb, line 73
def set(payload)
  payload = {values: payload} unless payload.is_a?(Hash)
  condition = @condition_class.new(@condition_config.merge(payload))
  @search.conditions[@name] = condition
  @search
end
starts_with(value) click to toggle source
# File lib/trample/condition_proxy.rb, line 65
def starts_with(value)
  set(values: value, prefix: true)
end
within(range) click to toggle source
# File lib/trample/condition_proxy.rb, line 49
def within(range)
  set(from: range.first, to: range.last)
end
within_eq(range) click to toggle source
# File lib/trample/condition_proxy.rb, line 53
def within_eq(range)
  set(from_eq: range.first, to_eq: range.last)
end

Private Instance Methods

merge(payload) click to toggle source
# File lib/trample/condition_proxy.rb, line 82
def merge(payload)
  existing = @search.conditions[@name]
  existing_attrs = {}
  existing_attrs = existing.attributes if existing
  merged = existing_attrs.merge(payload)
  set(merged)
end