yabeda 0.13.2 → 0.14.0

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: c713eeb29eb6f5eb9a022b2bb43f85961a72dca331629ca0ab335b2c72e9bd4d
4
- data.tar.gz: e9309522c7b6e8982518d8a03d52e6b3096c61647cdb63a618e957da5b6f50d4
3
+ metadata.gz: cbfcaaa322333f0bf774953f4ef40081a43f3d8dc89a3aec426397c174f8e5ef
4
+ data.tar.gz: 4f4dd1f0fc20cf59b72c26308861dfc7b439d271cdaebcd8441190a419e3b3e6
5
5
  SHA512:
6
- metadata.gz: 9cb7676c26c849772cd27ddb180e5d733af2243b890d9dbb83dc7ff73ca57ed861a651ee7fa22f36410800600976ee0920115b96f36d036ed65b5652b6ff4dce
7
- data.tar.gz: 0a145163ed0af2f669b8eaa235784b1bbbb0011a2222d4c5a44adca6461d264024a075c7c48a54fbdab089d8e8d2f41a3e96f9009fdb272b46ca2ba35d567c0c
6
+ metadata.gz: d43a6452648112c376b29dce66942ad6a491f4b0d54794cd42f5dd874d8db7c005f3e65d883707b53a6bbc4ffc8f961526a8c757acb877e89239d527d5205b4b
7
+ data.tar.gz: c42902e5e1b7f410170f7dfec0594de246ec5aebaa989b33786cec835cfaa5e99308155b35f906e4bf495589c3d0b03c1cc40fcaa88ddb59b43b1abc5ce187e4
data/CHANGELOG.md CHANGED
@@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
7
7
 
8
8
  ## Unreleased
9
9
 
10
+ ## 0.14.0 - 2025-09-10
11
+
12
+ ### Added
13
+
14
+ - Allow to limit groups per adapter. [@killondark][] in [#41](https://github.com/yabeda-rb/yabeda/pull/41)
15
+
16
+ ```ruby
17
+ Yabeda.configure do
18
+ group :mushrooms do
19
+ counter :champignon_counter
20
+ end
21
+
22
+ adapter :basket_adapter do
23
+ include_group :mushrooms
24
+ end
25
+ end
26
+ ```
27
+
10
28
  ## 0.13.2 - 2025-09-09
11
29
 
12
30
  ### Fixed
@@ -196,3 +214,4 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
196
214
  [@bibendi]: https://github.com/bibendi "Misha Merkushin"
197
215
  [@Keallar]: https://github.com/Keallar "Eugene Lysanskiy"
198
216
  [@jbockler]: https://github.com/jbockler "Josch Bockler"
217
+ [@killondark]: https://github.com/killondark "Alexander Marychev"
data/README.md CHANGED
@@ -246,6 +246,19 @@ Yabeda.configure do
246
246
  end
247
247
  ```
248
248
 
249
+ Or use another DSL to describe this logic:
250
+
251
+ ```ruby
252
+ Yabeda.configure do
253
+ group :mushrooms do
254
+ counter :champignon_counter
255
+ end
256
+
257
+ adapter :basket_adapter do
258
+ include_group :mushrooms
259
+ end
260
+ end
261
+ ```
249
262
 
250
263
  ## Roadmap (aka TODO or Help wanted)
251
264
 
@@ -96,10 +96,25 @@ module Yabeda
96
96
  #
97
97
  # @param adapter_names [Array<Symbol>] Names of adapters to use
98
98
  def adapter(*adapter_names, group: @group)
99
- raise ConfigurationError, "Adapter limitation can't be defined outside of group" unless group
99
+ raise ConfigurationError, "Adapter limitation can't be defined without adapter_names" if adapter_names.empty?
100
+
101
+ @adapter_names = adapter_names
102
+ if group
103
+ include_group(group)
104
+ else
105
+ return yield if block_given?
106
+
107
+ raise ConfigurationError, "Yabeda.adapter should be called either inside group declaration " \
108
+ "or should have block provided with a call to include_group. No metric group provided."
109
+ end
110
+ ensure @adapter_names = nil
111
+ end
112
+
113
+ def include_group(group)
114
+ raise ConfigurationError, "Adapter limitation can't be defined without of group name" unless group
100
115
 
101
116
  Yabeda.groups[group] ||= Yabeda::Group.new(group)
102
- Yabeda.groups[group].adapter(*adapter_names)
117
+ Yabeda.groups[group].adapter(*@adapter_names)
103
118
  end
104
119
 
105
120
  private
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Yabeda
4
- VERSION = "0.13.2"
4
+ VERSION = "0.14.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yabeda
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.2
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrey Novikov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-09-09 00:00:00.000000000 Z
11
+ date: 2025-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: anyway_config