class TypeProf::Core::Set - typeprof: Ruby Standard Library Documentation

# class TypeProf::Core::Set

### Public Class Methods

[](*elems) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 3
    def self.[](*elems)
      h = Hash.new(false)
      elems.each {|elem| h[elem] = true }
      new(h)
    end

new(hash) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 9
    def initialize(hash)
      @hash = hash
    end

### Public Instance Methods

-(other) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 58
    def -(other)
      h = @hash.dup
      other.each do |elem|
        h.delete(elem)
      end
      Set.new(h)
    end

<<(elem) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 19
    def <<(elem)
      raise if @hash.include?(elem)
      @hash[elem] = true
      self
    end

clear() click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 46
    def clear
      @hash.clear
    end

delete(elem) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 41
    def delete(elem)
      raise unless @hash.include?(elem)
      @hash.delete(elem)
    end

dup() click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 15
    def dup
      Set.new(@hash.dup)
    end

each(&blk) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 33
    def each(&blk)
      @hash.each_key(&blk)
    end

empty?() click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 37
    def empty?
      @hash.empty?
    end

include?(elem) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 25
    def include?(elem)
      @hash[elem]
    end

internal_hash(= @hash) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 13
      def internal_hash = @hash

      def dup
        Set.new(@hash.dup)
      end

      def <<(elem)
        raise if @hash.include?(elem)
        @hash[elem] = true
        self
      end

      def include?(elem)
        @hash[elem]
      end

      def merge(set)
        raise NotImplementedError
      end

      def each(&blk)
        @hash.each_key(&blk)
      end

      def empty?
        @hash.empty?
      end

      def delete(elem)
        raise unless @hash.include?(elem)
        @hash.delete(elem)
      end

      def clear
        @hash.clear
      end

      def to_a
        @hash.keys
      end

      def size
        @hash.size
      end

      def -(other)
        h = @hash.dup
        other.each do |elem|
          h.delete(elem)
        end
        Set.new(h)
      end

      def pretty_print(q)
        q.text "Set["
        q.group do
          q.nest(1) do
            @hash.each_key do |elem|
              q.breakable ""
              q.pp elem
              q.text ","
            end
          end
          q.breakable ""
        end
        q.text "]"
      end
    end

merge(set) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 29
    def merge(set)
      raise NotImplementedError
    end

pretty_print(q) click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 66
    def pretty_print(q)
      q.text "Set["
      q.group do
        q.nest(1) do
          @hash.each_key do |elem|
            q.breakable ""
            q.pp elem
            q.text ","
          end
        end
        q.breakable ""
      end
      q.text "]"
    end

size() click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 54
    def size
      @hash.size
    end

to_a() click to toggle source

    # File typeprof-0.30.1/lib/typeprof/core/util.rb, line 50
    def to_a
      @hash.keys
    end