Sha256: 1afc340f6dd9a9c7b459537175cd28c41b9a3205418733a84eadbe6b5b32caee

Contents?: true

Size: 897 Bytes

Versions: 18

Compression:

Stored size: 897 Bytes

Contents

require 'json'

# Static hashed counter to count values by multiple keys
module PulseMeter
  module Sensor
    class HashedCounter < Counter

      # Increments counter value by 1 for given key
      # @param key [String] key to be incremented
      def incr(key)
        event({key => 1})
      end

      # Returs data stored in counter
      # @return [Hash]
      def value
        redis.
          hgetall(value_key).
          inject(Hash.new(0)) {|h, (k, v)| h[k] = v.to_i; h}
      end

      private

      # Processes events for multiple keys
      # @param data [Hash] hash where keys represent counter keys
      #   and values are increments for their keys
      def process_event(data)
        data.each_pair do |k, v|
          command_aggregator.hincrby(value_key, k, v.to_i)
          command_aggregator.hincrby(value_key, :total, v.to_i)
        end
      end

    end
  end
end

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
pulse_meter_core-0.5.5 lib/pulse_meter/sensor/hashed_counter.rb
pulse_meter_core-0.5.4 lib/pulse_meter/sensor/hashed_counter.rb
pulse_meter_core-0.5.3 lib/pulse_meter/sensor/hashed_counter.rb
pulse_meter_core-0.5.2 lib/pulse_meter/sensor/hashed_counter.rb
pulse_meter_core-0.5.1 lib/pulse_meter/sensor/hashed_counter.rb
pulse_meter_core-0.5.0 lib/pulse_meter/sensor/hashed_counter.rb
pulse_meter_core-0.4.13 lib/pulse_meter/sensor/hashed_counter.rb
pulse-meter-0.4.9 lib/pulse-meter/sensor/hashed_counter.rb
pulse-meter-0.4.8 lib/pulse-meter/sensor/hashed_counter.rb
pulse-meter-0.4.7 lib/pulse-meter/sensor/hashed_counter.rb
pulse-meter-0.4.6 lib/pulse-meter/sensor/hashed_counter.rb
pulse-meter-0.4.5 lib/pulse-meter/sensor/hashed_counter.rb
pulse-meter-0.4.4 lib/pulse-meter/sensor/hashed_counter.rb
pulse-meter-0.4.3 lib/pulse-meter/sensor/hashed_counter.rb
pulse-meter-0.4.2 lib/pulse-meter/sensor/hashed_counter.rb
pulse-meter-0.4.1 lib/pulse-meter/sensor/hashed_counter.rb
pulse-meter-0.4.0 lib/pulse-meter/sensor/hashed_counter.rb
pulse-meter-0.3.2 lib/pulse-meter/sensor/hashed_counter.rb