Sha256: 40108b131ea87f934273a7a1fef86a49db040b81059226f521e634f762e3e72d

Contents?: true

Size: 759 Bytes

Versions: 1

Compression:

Stored size: 759 Bytes

Contents

require 'securerandom'

module Harness
  class Counter < Measurement
    def self.from_event(event)
      if event.payload[:counter].is_a? Hash
        counter = new event.payload[:counter]
      elsif event.payload[:counter].is_a?(Symbol) || event.payload[:counter].is_a?(String)
        counter = new :id => event.payload[:counter].to_s
      else
        counter = new
      end

      counter.id ||= event.name

      Harness.redis.sadd 'counters', counter.id

      if event.payload[:counter].is_a? Fixnum
        counter.value = event.payload[:counter]
      end

      if counter.value
        Harness.redis.set counter.id, counter.value
      else
        counter.value = Harness.redis.incr(counter.id).to_i
      end

      counter
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
harness-0.9.0 lib/harness/counter.rb