class Measures::Client

Public Class Methods

new(transport, client, owner) click to toggle source
# File lib/measures/client.rb, line 6
def initialize(transport, client, owner)
  @client = client
  @transport = transport
  @owner = owner
end

Public Instance Methods

count(metric, data = {}) click to toggle source
# File lib/measures/client.rb, line 12
def count(metric, data = {})
  data.merge!({ "count" => 1 })

  send(metric, data)
end
time(metric, data = {}) { || ... } click to toggle source
# File lib/measures/client.rb, line 18
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 Instance Methods

send(metric, data = {}) click to toggle source
# File lib/measures/client.rb, line 30
def send(metric, data = {})
  default = {
    "owner" => @owner,
    "client" => @client,
    "metric" => metric
  }

  default.merge!(data)

  @transport.send(default.to_json)
end