statsd-instrument 3.5.3 → 3.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ba71c5241926a499e771c33d9f1d4778a06b1cd419ecdbab19bd6e7b45629ef4
4
- data.tar.gz: 65ae8d434fd664932456a5126453043dd662b60302435e44dbb38918434b9c2d
3
+ metadata.gz: 1f32c9e4ca930e72744cd789511b99b09c07cb2ad7766df3c36490df00911985
4
+ data.tar.gz: 8732469bca8f8592285978a49e9a318fafd12fef0576ac8850de9fd8bdabbd6a
5
5
  SHA512:
6
- metadata.gz: bbdbb0774e5a2aba45e51a5e724384debd0e8503936741958ebe01a547780b935a9098491b4bbcd357d8fd950cd9815392c6713dc09b8d23daa7bc8ff0cc00db
7
- data.tar.gz: 06b848a06d4e88843f9245a9c6ffe681e692fb2225d13e29f328b0738ebdd591a848899208c2eac8690f2d86854520151aa62252aa8070305afc106adf981412
6
+ metadata.gz: 124095c32f119942d8f1e20e210ad13f95f653ab8e6ed999e473abe677957e4295a81b968da319f94ac24a884be1e2750db9965188b1962150366b850a3c49b0
7
+ data.tar.gz: 6eb6efb88b13de4c47d9f17dd9fd8b954c81c7ce0aab5a8e26cc89707539900ef98fce9f44014d14c909c8f3b2d8e80fe13e755174e52d488d47413aefbe4523
data/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@ 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
+
9
13
  ## Version 3.5.3
10
14
 
11
15
  - Improve shapes friendliness for Ruby 3.2+
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.3"
5
+ VERSION = "3.5.4"
6
6
  end
7
7
  end
@@ -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.3
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-16 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.