class Rinda::TupleBag::DataTupleBin
DataTupleBin
is a set of domains.
Public Class Methods
new()
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 224 def initialize @bin = {} end
Public Instance Methods
add(tuple)
click to toggle source
Adds the tuple. @param [Array] tuple
the tuple
@return [void]
# File lib/pione/patch/rinda-patch.rb, line 236 def add(tuple) prepare_table(domain(tuple)) @bin[domain(tuple)][name(tuple)] = tuple end
delete(tuple)
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 241 def delete(tuple) prepare_table(domain(tuple)) @bin[domain(tuple)].delete(name(tuple)) end
delete_if() { |val| ... }
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 246 def delete_if if block_given? @bin.values.each do |table| table.delete_if {|_, val| yield(val)} end end return @bin end
each(*args)
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 296 def each(*args) @bin.values.map{|table| table.values}.flatten.each(*args) end
elements()
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 228 def elements @bin.values.map{|val| val.values}.flatten end
find(template) { |tuple| ... }
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 255 def find(template, &b) domain = domain(template) name = name(template) prepare_table(domain) if domain @bin[domain].values.each do |tuple| return tuple if yield(tuple) end else @bin.values.each do |table| table.values.each do |tuple| return tuple if yield(tuple) end end end return nil end
find_all(template) { |tuple| ... }
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 274 def find_all(template, &b) domain = domain(template) name = name(template) prepare_table(domain) if domain if block_given? return @bin[domain].values.select {|tuple| yield(tuple)} else return @bin[domain].values end else if block_given? return @bin.values.map{|table| table.values}.flatten.select{|tuple| yield(tuple) } else return @bin.values.map{|table| table.values}.flatten end end end
Private Instance Methods
domain(tuple)
click to toggle source
Returns the domain.
# File lib/pione/patch/rinda-patch.rb, line 309 def domain(tuple) return tuple.value[1] end
name(tuple)
click to toggle source
Returns the name.
# File lib/pione/patch/rinda-patch.rb, line 314 def name(tuple) return tuple.value[2] end
prepare_table(domain)
click to toggle source
# File lib/pione/patch/rinda-patch.rb, line 302 def prepare_table(domain) if domain @bin[domain] = {} unless @bin[domain] end end