class MemDB::Query

Public Class Methods

new(params) click to toggle source
# File lib/mem_db/query.rb, line 5
def initialize(params)
  @params = params
  @attrs = {}
  @idx_value = {}
  @field_value = {}
end

Public Instance Methods

[](attr) click to toggle source
# File lib/mem_db/query.rb, line 16
def [](attr)
  if @attrs.key?(attr)
    @attrs[attr]
  else
    @attrs[attr] ||= prepare_attr(attr)
  end
end
[]=(param, value) click to toggle source
# File lib/mem_db/query.rb, line 24
def []=(param, value)
  @params[param] = value
end
delete(param) click to toggle source
# File lib/mem_db/query.rb, line 28
def delete(param)
  @params.delete(param)
  @attrs.delete(param)
end
field_value(field) click to toggle source
# File lib/mem_db/query.rb, line 41
def field_value(field)
  if @field_value.key?(field)
    @field_value[field]
  else
    @field_value[field] ||= field.prepare_query(self)
  end
end
idx_value(idx) click to toggle source
# File lib/mem_db/query.rb, line 33
def idx_value(idx)
  if @idx_value.key?(idx)
    @idx_value[idx]
  else
    @idx_value[idx] ||= idx.prepare_query(self)
  end
end
prepare_attr(attr) click to toggle source
# File lib/mem_db/query.rb, line 49
def prepare_attr(attr)
  v = @params[attr]
  if v.is_a?(Array)
    v
  else
    [v]
  end
end
using(index) click to toggle source
# File lib/mem_db/query.rb, line 12
def using(index)
  index.query(self)
end