class Rinda::TupleBag::HashTupleBin
HashTupleBin
is a hash based bin class.
Public Class Methods
new()
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 321 def initialize @bin = {} end
Public Instance Methods
add(tuple)
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 329 def add(tuple) unless @bin[key(tuple)] @bin[key(tuple)] = tuple else raise RedundantErrorTuple.new(tuple) end end
delete(tuple)
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 337 def delete(tuple) @bin.delete(key(tuple)) end
delete_if() { |val| ... }
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 341 def delete_if if block_given? @bin.delete_if {|_, val| yield(val)} end return @bin end
each(*args)
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 371 def each(*args) @bin.values.each(*args) end
elements()
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 325 def elements @bin.values end
find(template) { |tuple| ... }
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 348 def find(template, &b) if key(template) && @bin.has_key?(key(template)) tuple = @bin[key(template)] return tuple if yield(tuple) else @bin.values.each do |tuple| return tuple if yield(tuple) end end return nil end
find_all(template) { |tuple| ... }
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 360 def find_all(template, &b) if key(template) && @bin.has_key?(key(template)) tuple = @bin[key(template)] return tuple if yield(tuple) else return @bin.values.find_all {|tuple| yield(tuple) } end end
Private Instance Methods
key(tuple)
click to toggle source
Returns the key.
# File lib/pione/patch/rinda-patch.rb, line 378 def key(tuple) # 0:identifier, 1:key, 2:value return tuple.value[1] end