class Racc::ISet
An “indexed” set. All items must respond to :ident.
Attributes
set[R]
Public Class Methods
new(a = [])
click to toggle source
# File lib/racc/iset.rb, line 17 def initialize(a = []) @set = a end
Public Instance Methods
[](key)
click to toggle source
# File lib/racc/iset.rb, line 27 def [](key) @set[key.ident] end
[]=(key, val)
click to toggle source
# File lib/racc/iset.rb, line 31 def []=(key, val) @set[key.ident] = val end
add(i)
click to toggle source
# File lib/racc/iset.rb, line 23 def add(i) @set[i.ident] = i end
clear()
click to toggle source
# File lib/racc/iset.rb, line 81 def clear @set.clear end
delete(key)
click to toggle source
# File lib/racc/iset.rb, line 53 def delete(key) i = @set[key.ident] @set[key.ident] = nil i end
dup()
click to toggle source
# File lib/racc/iset.rb, line 85 def dup ISet.new(@set.dup) end
each(&block)
click to toggle source
# File lib/racc/iset.rb, line 59 def each(&block) @set.compact.each(&block) end
empty?()
click to toggle source
# File lib/racc/iset.rb, line 77 def empty? @set.nitems == 0 end
size()
click to toggle source
# File lib/racc/iset.rb, line 73 def size @set.nitems end
to_a()
click to toggle source
# File lib/racc/iset.rb, line 63 def to_a @set.compact end
to_s()
click to toggle source
# File lib/racc/iset.rb, line 67 def to_s "[#{@set.compact.join(' ')}]" end
Also aliased as: inspect
update(other)
click to toggle source
# File lib/racc/iset.rb, line 38 def update(other) s = @set o = other.set o.each_index do |idx| if t = o[idx] s[idx] = t end end end
update_a(a)
click to toggle source
# File lib/racc/iset.rb, line 48 def update_a(a) s = @set a.each {|i| s[i.ident] = i } end