Skip to content

Commit

Permalink
Merge pull request #62 from yyuu/batch-metrics-should-return-response
Browse files Browse the repository at this point in the history
`Dogapi::Client#batch_metrics` should return response from API
  • Loading branch information
yannmh committed Mar 6, 2015
2 parents ff1ccd2 + 8d62b03 commit 6a21b3d
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 3 deletions.
2 changes: 1 addition & 1 deletion lib/dogapi/facade.rb
Expand Up @@ -94,7 +94,7 @@ def batch_metrics()
@metric_svc.switch_to_batched
begin
yield
@metric_svc.flush_buffer
@metric_svc.flush_buffer # flush_buffer should returns the response from last API call
ensure
@metric_svc.switch_to_single
end
Expand Down
4 changes: 3 additions & 1 deletion lib/dogapi/v1/metric.rb
Expand Up @@ -35,11 +35,13 @@ def submit_to_api(metric, points, scope, options = {})
def submit_to_buffer(metric, points, scope, options = {})
payload = self.make_metric_payload(metric, points, scope, options)
@buffer << payload
return 200, {}
end

def flush_buffer()
self.upload(@buffer)
payload = @buffer
@buffer = nil
self.upload(payload)
end

alias :submit :submit_to_api
Expand Down
4 changes: 3 additions & 1 deletion spec/facade_spec.rb
Expand Up @@ -17,6 +17,7 @@
@service.instance_variable_set(:@uploaded, Array.new)
def @service.upload payload
@uploaded << payload
return 200, {}
end
end

Expand Down Expand Up @@ -49,10 +50,11 @@ def @service.upload payload
end

it "emit_points can be batched" do
@dogmock.batch_metrics do
code, resp = @dogmock.batch_metrics do
@dogmock.emit_point("metric.name", 1, :type => 'counter')
@dogmock.emit_point("othermetric.name", 2, :type => 'counter')
end
expect(code).to eq 200
# Verify that we uploaded what we expected
uploaded = @service.instance_variable_get(:@uploaded)
expect(uploaded.length).to eq 1
Expand Down

0 comments on commit 6a21b3d

Please sign in to comment.