class WebMock::Util::HashCounter
def each(&block)
def each(&block) @order.to_a.sort_by { |a| a[1] }.each do |a| yield(a[0], hash[a[0]]) end end
def get(key)
def get(key) @lock.synchronize do hash[key] end end
def initialize
def initialize self.hash = Hash.new(0) @order = {} @max = 0 @lock = ::Mutex.new end
def put(key, num=1)
def put(key, num=1) @lock.synchronize do hash[key] += num @order[key] = @max += 1 end end
def select(&block)
def select(&block) return unless block_given? @lock.synchronize do hash.select(&block) end end