Sha256: 72bfb06a7bedad8d8f2e88659d3847c15c906924569e15acd4a97f17ebb0bfe7

Contents?: true

Size: 665 Bytes

Versions: 4

Compression:

Stored size: 665 Bytes

Contents

require_relative 'instrument'

module Metrics
  module Instruments
    class Counter < Instrument

      attr_reader :units

      def initialize(options = {})
        @value = 0
        @units = options[:units]
      end

      def inc(value = 1)
        @value += value
      end
      alias_method :incr, :inc

      def dec(value = 1)
        @value -= value
      end
      alias_method :decr, :dec

      def clear
        @value = 0
      end

      def to_i
        @value.to_i
      end

      def to_s
        @value.to_s
      end

      def as_json(*_)
        @value
      end

      def to_json(*_)
        as_json.to_json
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-metrics-0.9.4 lib/ruby-metrics/instruments/counter.rb
ruby-metrics-0.9.3 lib/ruby-metrics/instruments/counter.rb
ruby-metrics-0.9.2 lib/ruby-metrics/instruments/counter.rb
ruby-metrics-0.9.1 lib/ruby-metrics/instruments/counter.rb