method
setup
ruby latest stable - Class:
SortedSet
setup()public
No documentation available.
# File lib/set.rb, line 699
def setup # :nodoc:
@@setup and return
@@mutex.synchronize do
# a hack to shut up warning
alias_method :old_init, :initialize
begin
require 'rbtree'
module_eval def initialize(*args) @hash = RBTree.new super end def add(o) o.respond_to?(:<=>) or raise ArgumentError, "value must respond to <=>" super end alias << add, __FILE__, __LINE__+1
rescue LoadError
module_eval def initialize(*args) @keys = nil super end def clear @keys = nil super end def replace(enum) @keys = nil super end def add(o) o.respond_to?(:<=>) or raise ArgumentError, "value must respond to <=>" @keys = nil super end alias << add def delete(o) @keys = nil @hash.delete(o) self end def delete_if block_given? or return enum_for(__method__) { size } n = @hash.size super @keys = nil if @hash.size != n self end def keep_if block_given? or return enum_for(__method__) { size } n = @hash.size super @keys = nil if @hash.size != n self end def merge(enum) @keys = nil super end def each(&block) block or return enum_for(__method__) { size } to_a.each(&block) self end def to_a (@keys = @hash.keys).sort! unless @keys @keys end def freeze to_a super end def rehash @keys = nil super end, __FILE__, __LINE__+1
end
# a hack to shut up warning
remove_method :old_init
@@setup = true
end
end