class MemDB::Index::Any

Public Class Methods

new(original) click to toggle source
# File lib/mem_db/index/any.rb, line 29
def initialize(original)
  raise ArgumentError, "original must be MemDB::Index, got: #{original.class}" unless original.is_a?(MemDB::Index)

  @original = original
end

Public Instance Methods

add(obj, value) click to toggle source
# File lib/mem_db/index/any.rb, line 43
def add(obj, value)
  addr = obj.idx_value(idx)
  if addr == MemDB::Idx::ANY
    @any ||= bucket.new
    @any.add(obj, value)
  else
    @original.add(obj, value)
  end
end
bucket() click to toggle source
# File lib/mem_db/index/any.rb, line 39
def bucket
  @original.bucket
end
idx() click to toggle source
# File lib/mem_db/index/any.rb, line 35
def idx
  @original.idx
end
query(query, out: MemDB::Out.new) click to toggle source
# File lib/mem_db/index/any.rb, line 53
def query(query, out: MemDB::Out.new)
  @original.query(query, out: out)
  @any&.query(query, out: out)
  out
end