Sha256: 0e33d154f408103664a42796e36b1abda6a40aad690ecf80cab1daf00fa97f50

Contents?: true

Size: 821 Bytes

Versions: 10

Compression:

Stored size: 821 Bytes

Contents

module Flipper
  module Cloud
    class Telemetry
      class Metric
        attr_reader :key, :time, :result

        def initialize(key, result, time = Time.now)
          @key = key
          @result = result
          @time = time.to_i / 60 * 60
        end

        def as_json(options = {})
          data = {
            "key" => key.to_s,
            "time" => time,
            "result" => result,
          }

          if options[:with]
            data.merge!(options[:with])
          end

          data
        end

        def eql?(other)
          self.class.eql?(other.class) &&
            @key == other.key && @time == other.time && @result == other.result
        end
        alias :== :eql?

        def hash
          [self.class, @key, @time, @result].hash
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
flipper-1.3.2 lib/flipper/cloud/telemetry/metric.rb
flipper-1.3.1 lib/flipper/cloud/telemetry/metric.rb
flipper-1.3.0 lib/flipper/cloud/telemetry/metric.rb
flipper-1.3.0.pre lib/flipper/cloud/telemetry/metric.rb
flipper-1.2.2 lib/flipper/cloud/telemetry/metric.rb
flipper-1.2.1 lib/flipper/cloud/telemetry/metric.rb
flipper-1.2.0 lib/flipper/cloud/telemetry/metric.rb
flipper-1.1.2 lib/flipper/cloud/telemetry/metric.rb
flipper-1.1.1 lib/flipper/cloud/telemetry/metric.rb
flipper-1.1.0 lib/flipper/cloud/telemetry/metric.rb