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