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 = {}
end

Public Instance Methods

[](attr) click to toggle source
# File lib/mem_db/query.rb, line 15
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 23
def []=(param, value)
  @params[param] = value
end
delete(param) click to toggle source
# File lib/mem_db/query.rb, line 27
def delete(param)
  @params.delete(param)
  @attrs.delete(param)
end
idx_value(idx) click to toggle source
# File lib/mem_db/query.rb, line 32
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 40
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 11
def using(index)
  index.query(self)
end