statsd-instrument 3.5.2 → 3.5.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7ef9b0c6e5682818fc957cbe2cf4cd37180aa8178329577d5e3d53845784073
4
- data.tar.gz: f965e44fc446ff14a96ab0818871b97c9fe5980fad1dc45be32726b2d3b2d368
3
+ metadata.gz: 1f32c9e4ca930e72744cd789511b99b09c07cb2ad7766df3c36490df00911985
4
+ data.tar.gz: 8732469bca8f8592285978a49e9a318fafd12fef0576ac8850de9fd8bdabbd6a
5
5
  SHA512:
6
- metadata.gz: e3830d435e3b3fc30412a0319dd58534bf4b871c40d5707a7471cd92a4d5327cc4c45a28287df14342e7402c609f8b98d36ba5a39cc3a07c1199f4e05389581d
7
- data.tar.gz: 2b06036a80cfb1c5dcfdc16ee21a848fe2fe3165b3f05d4d64e1c9620c2fb84bab3eb48518117c3b11daea0b6d0ace2a692c78e58b1686272933e5f14626438d
6
+ metadata.gz: 124095c32f119942d8f1e20e210ad13f95f653ab8e6ed999e473abe677957e4295a81b968da319f94ac24a884be1e2750db9965188b1962150366b850a3c49b0
7
+ data.tar.gz: 6eb6efb88b13de4c47d9f17dd9fd8b954c81c7ce0aab5a8e26cc89707539900ef98fce9f44014d14c909c8f3b2d8e80fe13e755174e52d488d47413aefbe4523
data/CHANGELOG.md CHANGED
@@ -6,6 +6,14 @@ section below.
6
6
 
7
7
  ## Unreleased changes
8
8
 
9
+ ## Version 3.5.4
10
+
11
+ - Allow user to assert different tags using RSpec composable matcher
12
+
13
+ ## Version 3.5.3
14
+
15
+ - Improve shapes friendliness for Ruby 3.2+
16
+
9
17
  ## Version 3.5.2
10
18
 
11
19
  - Fix bug on assertions to allow the user passes `times: 0` as expectation.
data/README.md CHANGED
@@ -355,6 +355,13 @@ RSpec.describe 'Matchers' do
355
355
  it 'will pass if there is no matching StatsD call on negative expectation' do
356
356
  expect { StatsD.increment('other_counter') }.not_to trigger_statsd_increment('counter')
357
357
  end
358
+
359
+ it 'will pass if every statsD call matches its call tag variations' do
360
+ expect do
361
+ StatsD.increment('counter', tags: ['variation:a'])
362
+ StatsD.increment('counter', tags: ['variation:b'])
363
+ end.to trigger_statsd_increment('counter', times: 1, tags: ["variation:a"]).and trigger_statsd_increment('counter', times: 1, tags: ["variation:b"])
364
+ end
358
365
  end
359
366
  end
360
367
  ```
@@ -43,7 +43,11 @@ module StatsD
43
43
 
44
44
  def expect_statsd_call(metric_type, metric_name, options, &block)
45
45
  metrics = capture_statsd_calls(&block)
46
- metrics = metrics.select { |m| m.type == metric_type && m.name == metric_name }
46
+ metrics = metrics.select do |m|
47
+ options_tags = options[:tags] || []
48
+ metric_tags = m.tags || []
49
+ m.type == metric_type && m.name == metric_name && metric_tags.all? { |t| options_tags.include?(t) }
50
+ end
47
51
 
48
52
  if metrics.empty?
49
53
  raise RSpec::Expectations::ExpectationNotMetError, "No StatsD calls for metric #{metric_name} were made."
@@ -2,6 +2,6 @@
2
2
 
3
3
  module StatsD
4
4
  module Instrument
5
- VERSION = "3.5.2"
5
+ VERSION = "3.5.4"
6
6
  end
7
7
  end
@@ -360,6 +360,12 @@ module StatsD
360
360
 
361
361
  def_delegators :singleton_client, :increment, :gauge, :set, :measure,
362
362
  :histogram, :distribution, :event, :service_check
363
+
364
+ private
365
+
366
+ def extended(klass)
367
+ klass.statsd_instrumentations # eagerly define
368
+ end
363
369
  end
364
370
  end
365
371
 
@@ -34,6 +34,26 @@ class MatchersTest < Minitest::Test
34
34
  }))
35
35
  end
36
36
 
37
+ def test_statsd_increment_compound_using_and_matched
38
+ matcher_1 = StatsD::Instrument::Matchers::Increment.new(:c, "counter", times: 1, tags: ["a"])
39
+ matcher_2 = StatsD::Instrument::Matchers::Increment.new(:c, "counter", times: 1, tags: ["b"])
40
+
41
+ assert(matcher_1.and(matcher_2).matches?(lambda {
42
+ StatsD.increment("counter", tags: ["a"])
43
+ StatsD.increment("counter", tags: ["b"])
44
+ }))
45
+ end
46
+
47
+ def test_statsd_increment_compound_using_and_not_matched
48
+ matcher_1 = StatsD::Instrument::Matchers::Increment.new(:c, "counter", times: 1, tags: ["a"])
49
+ matcher_2 = StatsD::Instrument::Matchers::Increment.new(:c, "counter", times: 1, tags: ["b"])
50
+
51
+ refute(matcher_1.and(matcher_2).matches?(lambda {
52
+ StatsD.increment("counter", tags: ["a"])
53
+ StatsD.increment("counter", tags: ["c"])
54
+ }))
55
+ end
56
+
37
57
  def test_statsd_increment_with_times_matched
38
58
  assert(StatsD::Instrument::Matchers::Increment.new(:c, "counter", times: 1)
39
59
  .matches?(lambda { StatsD.increment("counter") }))
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: statsd-instrument
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.2
4
+ version: 3.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jesse Storimer
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-01-05 00:00:00.000000000 Z
13
+ date: 2023-02-28 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: A StatsD client for Ruby apps. Provides metaprogramming methods to inject
16
16
  StatsD instrumentation into your code.