class RSpec::Core::Set

@private

We use this to replace ‘::Set` so we can have the advantage of constant time key lookups for unique arrays but without the potential to pollute a developers environment with an extra piece of the stdlib. This helps to prevent false positive builds.

Public Class Methods

# File rspec-core/lib/rspec/core/set.rb, line 14
def initialize(array=[])
  @values = {}
  merge(array)
end

Public Instance Methods

# File rspec-core/lib/rspec/core/set.rb, line 23
def <<(key)
  @values[key] = true
  self
end
# File rspec-core/lib/rspec/core/set.rb, line 48
def clear
  @values.clear
  self
end
# File rspec-core/lib/rspec/core/set.rb, line 28
def delete(key)
  @values.delete(key)
end
# File rspec-core/lib/rspec/core/set.rb, line 32
def each(&block)
  @values.keys.each(&block)
  self
end
# File rspec-core/lib/rspec/core/set.rb, line 19
def empty?
  @values.empty?
end
# File rspec-core/lib/rspec/core/set.rb, line 37
def include?(key)
  @values.key?(key)
end
# File rspec-core/lib/rspec/core/set.rb, line 41
def merge(values)
  values.each do |key|
    @values[key] = true
  end
  self
end