yabeda 0.13.0 → 0.13.1
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 +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/yabeda/counter.rb +26 -1
- data/lib/yabeda/gauge.rb +12 -2
- data/lib/yabeda/version.rb +1 -1
- data/lib/yabeda.rb +2 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e8a48fc237f75ffdb834af3b14fe7d991cb1f65a37d528a0139d2cc2895d3e6b
|
|
4
|
+
data.tar.gz: f3b316975ff26a048e9a8361c93b164591f3b3add12bea20a01b0f47316519f2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e9f252ca373fbf287c6ce674180e7cb58c35177951e903767722e8ad396bbee7cbebff73c6e9fcb7e2e43e30c6599c0aea5a53a7f4f546be28382a173ce5c856
|
|
7
|
+
data.tar.gz: 43fff38b19ef0fcde369eb4f43f78049543949d54d9f23d130a7e895ed7e10d62a6612f9328d1e9128cf1354578423f6992d56ee354063614c47f350cd960682
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
|
7
7
|
|
|
8
8
|
## Unreleased
|
|
9
9
|
|
|
10
|
+
## 0.13.1 - 2024-10-11
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Compatibility with Ruby 2.x, broken in 0.13.0 due to differences of keywords handling in Ruby 2.x for case when method has arguments with default values. [@Envek]
|
|
15
|
+
|
|
10
16
|
## 0.13.0 - 2024-10-02
|
|
11
17
|
|
|
12
18
|
### Added
|
data/lib/yabeda/counter.rb
CHANGED
|
@@ -3,7 +3,12 @@
|
|
|
3
3
|
module Yabeda
|
|
4
4
|
# Growing-only counter
|
|
5
5
|
class Counter < Metric
|
|
6
|
-
|
|
6
|
+
# @overload increment(tags = {}, by: 1)
|
|
7
|
+
# Increment the counter for given set of tags by the given increment value
|
|
8
|
+
# @param tags Hash{Symbol=>#to_s} tags to identify the counter
|
|
9
|
+
# @param by [Integer] strictly positive increment value
|
|
10
|
+
def increment(*args)
|
|
11
|
+
tags, by = self.class.parse_args(*args)
|
|
7
12
|
all_tags = ::Yabeda::Tags.build(tags, group)
|
|
8
13
|
values[all_tags] += by
|
|
9
14
|
adapters.each_value do |adapter|
|
|
@@ -15,5 +20,25 @@ module Yabeda
|
|
|
15
20
|
def values
|
|
16
21
|
@values ||= Concurrent::Hash.new(0)
|
|
17
22
|
end
|
|
23
|
+
|
|
24
|
+
# @api private
|
|
25
|
+
# rubocop:disable Metrics/MethodLength
|
|
26
|
+
def self.parse_args(*args)
|
|
27
|
+
case args.size
|
|
28
|
+
when 0 # increment()
|
|
29
|
+
[EMPTY_TAGS, 1]
|
|
30
|
+
when 1 # increment(by: 5) or increment(tags)
|
|
31
|
+
if args[0].key?(:by)
|
|
32
|
+
[EMPTY_TAGS, args.fetch(:by)]
|
|
33
|
+
else
|
|
34
|
+
[args[0], 1]
|
|
35
|
+
end
|
|
36
|
+
when 2 # increment(tags, by: 5)
|
|
37
|
+
[args[0], args[1].fetch(:by, 1)]
|
|
38
|
+
else
|
|
39
|
+
raise ArgumentError, "wrong number of arguments (given #{args.size}, expected 0..2)"
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
# rubocop:enable Metrics/MethodLength
|
|
18
43
|
end
|
|
19
44
|
end
|
data/lib/yabeda/gauge.rb
CHANGED
|
@@ -12,11 +12,21 @@ module Yabeda
|
|
|
12
12
|
value
|
|
13
13
|
end
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
# @overload increment(tags = {}, by: 1)
|
|
16
|
+
# Convenience method to increment current gauge value for given set of tags by the given increment value
|
|
17
|
+
# @param tags Hash{Symbol=>#to_s} tags to identify the gauge
|
|
18
|
+
# @param by [Integer] increment value
|
|
19
|
+
def increment(*args)
|
|
20
|
+
tags, by = Counter.parse_args(*args)
|
|
16
21
|
set(tags, get(tags).to_i + by)
|
|
17
22
|
end
|
|
18
23
|
|
|
19
|
-
|
|
24
|
+
# @overload decrement(tags = {}, by: 1)
|
|
25
|
+
# Convenience method to decrement current gauge value for given set of tags by the given decrement value
|
|
26
|
+
# @param tags Hash{Symbol=>#to_s} tags to identify the gauge
|
|
27
|
+
# @param by [Integer] decrement value
|
|
28
|
+
def decrement(*args)
|
|
29
|
+
tags, by = Counter.parse_args(*args)
|
|
20
30
|
set(tags, get(tags).to_i - by)
|
|
21
31
|
end
|
|
22
32
|
end
|
data/lib/yabeda/version.rb
CHANGED
data/lib/yabeda.rb
CHANGED
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.
|
|
4
|
+
version: 0.13.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrey Novikov
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2024-10-
|
|
11
|
+
date: 2024-10-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: anyway_config
|