class WebMock::Util::HashCounter

Attributes

hash[RW]

Public Class Methods

new() click to toggle source
# File lib/webmock/util/hash_counter.rb, line 7
def initialize
  self.hash = {}
  @order = {}
  @max = 0
  @lock = ::Mutex.new
end

Public Instance Methods

each() { |a, hash[a| ... } click to toggle source
# File lib/webmock/util/hash_counter.rb, line 32
def each(&block)
  @order.to_a.sort_by { |a| a[1] }.each do |a|
    yield(a[0], hash[a[0]])
  end
end
get(key) click to toggle source
# File lib/webmock/util/hash_counter.rb, line 19
def get key
  @lock.synchronize do
    hash[key] || 0
  end
end
put(key, num=1) click to toggle source
# File lib/webmock/util/hash_counter.rb, line 13
def put key, num=1
  @lock.synchronize do
    hash[key] = (hash[key] || 0) + num
    @order[key] = @max = @max + 1
  end
end
select(&block) click to toggle source
# File lib/webmock/util/hash_counter.rb, line 25
def select(&block)
  return unless block_given?
  @lock.synchronize do
    hash.select(&block)
  end
end