Sha256: f7e3512d3c48f5998be74412506753d8f0647ff397635e2ea10872977701e148

Contents?: true

Size: 689 Bytes

Versions: 3

Compression:

Stored size: 689 Bytes

Contents

require "json"
require "benchmark"

module Measures
  class Client
    def initialize(transport, client)
      @client = client
      @transport = transport
    end

    def count(metric, data = {})
      data.merge!({ "count" => 1 })

      send(metric, data)
    end

    def time(metric, data = {}, &block)
      elapsed_time = Benchmark.realtime do
        yield if block_given?
      end

      data.merge!({ "time" => elapsed_time })

      send(metric, data)
    end

    private

    def send(metric, data = {})
      default = {
        "client" => @client,
        "metric" => metric,
      }

      default.merge!(data)

      @transport.send(default.to_json)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
measures-3.0.0 lib/measures/client.rb
measures-2.1.0 lib/measures/client.rb
measures-2.0.0 lib/measures/client.rb