Class: ActiveStash::QueryBuilder::Field

Inherits:
BasicObject
Defined in:
lib/active_stash/query_builder.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, available_indexes) ⇒ Field

Returns a new instance of Field.



67
68
69
70
71
# File 'lib/active_stash/query_builder.rb', line 67

def initialize(name, available_indexes)
  @name = name
  @available_indexes = available_indexes
  ::Kernel.raise "No indexes available for '#{name}'" if @available_indexes.empty?
end

Instance Attribute Details

#indexObject (readonly)

Returns the value of attribute index.



65
66
67
# File 'lib/active_stash/query_builder.rb', line 65

def index
  @index
end

#opObject (readonly)

Returns the value of attribute op.



65
66
67
# File 'lib/active_stash/query_builder.rb', line 65

def op
  @op
end

#valuesObject (readonly)

Returns the value of attribute values.



65
66
67
# File 'lib/active_stash/query_builder.rb', line 65

def values
  @values
end

Instance Method Details

#<(value) ⇒ Object



105
106
107
108
# File 'lib/active_stash/query_builder.rb', line 105

def <(value)
  @op ||= :lt
  set(value)
end

#<=(value) ⇒ Object



110
111
112
113
# File 'lib/active_stash/query_builder.rb', line 110

def <=(value)
  @op ||= :lte
  set(value)
end

#==(value) ⇒ Object



78
79
80
81
# File 'lib/active_stash/query_builder.rb', line 78

def ==(value)
  @op ||= :eq
  set(value)
end

#=~(value) ⇒ Object



83
84
85
86
87
88
89
90
91
92
93
# File 'lib/active_stash/query_builder.rb', line 83

def =~(value)
  case value
  when ::String
    @op ||= :match
    set(value)
  when ::Regexp
    ::Kernel.raise ::ActiveStash::QueryError, "regular expressions are not yet supported for matching"
  else
    ::Kernel.raise ::ActiveStash::QueryError, "unknown value type passed to =~: #{value.inspect}"
  end
end

#>(value) ⇒ Object



95
96
97
98
# File 'lib/active_stash/query_builder.rb', line 95

def >(value)
  @op ||= :gt
  set(value)
end

#>=(value) ⇒ Object



100
101
102
103
# File 'lib/active_stash/query_builder.rb', line 100

def >=(value)
  @op ||= :gte
  set(value)
end

#between(min, max) ⇒ Object



115
116
117
118
# File 'lib/active_stash/query_builder.rb', line 115

def between(min, max)
  @op ||= :between
  set(min, max)
end

#inspectObject



73
74
75
76
# File 'lib/active_stash/query_builder.rb', line 73

def inspect
  index_name = index ? index.name : "no-index"
  "<#{index_name} #{op} '#{values.join(", ")}'>"
end