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