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