tabs 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -8
- data/lib/tabs/tabs.rb +7 -1
- data/lib/tabs/version.rb +1 -1
- data/spec/lib/tabs_spec.rb +17 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b55f352f352f83192698497faa68edf9d4980c48
|
4
|
+
data.tar.gz: 21b5c2b6425a43cc4920bc1d8f53a6caf2439c33
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a90941983c522edb2c1b6ba57a36b503e4b91d9ab16967bbfa659f10e279d890345f6c7f5e953efcfbbf7d2cd963f999cad6d84bb8fd6eb1c04238557d597968
|
7
|
+
data.tar.gz: 3929b6792a6d14299826c377f2cf4977e2938297b659ee3131cbe238544a8cab9636f10f361cf11cae1ca868d8b80afe1ebc700f9f13d5e402df42361293af75
|
data/README.md
CHANGED
@@ -216,7 +216,7 @@ module SecondResolution
|
|
216
216
|
def name
|
217
217
|
:seconds
|
218
218
|
end
|
219
|
-
|
219
|
+
|
220
220
|
def serialize(timestamp)
|
221
221
|
timestamp.strftime(PATTERN)
|
222
222
|
end
|
@@ -229,7 +229,7 @@ module SecondResolution
|
|
229
229
|
def from_seconds(s)
|
230
230
|
s / 1
|
231
231
|
end
|
232
|
-
|
232
|
+
|
233
233
|
def to_seconds
|
234
234
|
1
|
235
235
|
end
|
@@ -337,11 +337,11 @@ You can use the expiration features to age out old metrics that may no longer be
|
|
337
337
|
|
338
338
|
```ruby
|
339
339
|
Tabs.configure do |config|
|
340
|
-
|
340
|
+
config.set_expirations(minute: 1.day, day: 1.week)
|
341
341
|
end
|
342
342
|
```
|
343
343
|
|
344
|
-
The expiration date will start counting at the beginning
|
344
|
+
The expiration date will start counting at the beginning of the end of the given resolution. Meaning that for a month resolution the given expiration time would start at the end of a given month. A month resolution metric recorded in January with an expiration of 2 weeks would expire after the 2nd week of February.
|
345
345
|
|
346
346
|
*NOTE: You cannot expire task metrics at this time, only counter and
|
347
347
|
values.*
|
@@ -358,7 +358,7 @@ Tabs.configure do |config|
|
|
358
358
|
|
359
359
|
# pass a config hash that will be passed to Redis.new
|
360
360
|
config.redis = { :host => 'localhost', :port => 6379 }
|
361
|
-
|
361
|
+
|
362
362
|
# pass a prefix that will be used in addition to the "tabs" prefix with Redis keys
|
363
363
|
# Example: "tabs:my_app:metric_name"
|
364
364
|
config.prefix = "my_app"
|
@@ -372,7 +372,7 @@ Tabs.configure do |config|
|
|
372
372
|
|
373
373
|
# unregisters any resolution
|
374
374
|
config.unregister_resolutions(:minute, :hour)
|
375
|
-
|
375
|
+
|
376
376
|
# sets TTL for redis keys of specific resolutions
|
377
377
|
config.set_expirations({ minute: 1.hour, hour: 1.day })
|
378
378
|
|
@@ -431,8 +431,8 @@ continue to use v0.8.1 or lower if that is an issue.
|
|
431
431
|
_WARNING: Version 1.0.0 is not compatible with previous versions of
|
432
432
|
Tabs_
|
433
433
|
|
434
|
-
We have made a number of changes related to
|
435
|
-
in Redis. At this point we'll be following
|
434
|
+
We have made a number of changes related to how our metric keys are stored
|
435
|
+
in Redis. At this point we'll be following semantic versioning and will
|
436
436
|
support backwards compatability between major versions. In this release
|
437
437
|
we've added a number of major features:
|
438
438
|
|
data/lib/tabs/tabs.rb
CHANGED
@@ -59,7 +59,13 @@ module Tabs
|
|
59
59
|
end
|
60
60
|
|
61
61
|
def counter_total(key)
|
62
|
-
|
62
|
+
unless metric_exists?(key)
|
63
|
+
if block_given?
|
64
|
+
return yield
|
65
|
+
else
|
66
|
+
raise UnknownMetricError.new("Unknown metric: #{key}")
|
67
|
+
end
|
68
|
+
end
|
63
69
|
raise MetricTypeMismatchError.new("Only counter metrics can be incremented") unless metric_type(key) == "counter"
|
64
70
|
get_metric(key).total
|
65
71
|
end
|
data/lib/tabs/version.rb
CHANGED
data/spec/lib/tabs_spec.rb
CHANGED
@@ -33,6 +33,23 @@ describe Tabs do
|
|
33
33
|
|
34
34
|
end
|
35
35
|
|
36
|
+
describe ".counter_total" do
|
37
|
+
|
38
|
+
it "returns the total for a counter metric" do
|
39
|
+
Tabs.increment_counter("foo")
|
40
|
+
expect(Tabs.counter_total("foo")).to eq 1
|
41
|
+
end
|
42
|
+
|
43
|
+
it "returns the value of the block if given and the metric doesn't exist" do
|
44
|
+
expect(Tabs.counter_total("foo") { 42 }).to eq 42
|
45
|
+
end
|
46
|
+
|
47
|
+
it "raises an UnknownMetricError if no block is given and the metric does not exist" do
|
48
|
+
expect { Tabs.counter_total("foo") }.to raise_error Tabs::UnknownMetricError
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
|
36
53
|
describe ".get_metric" do
|
37
54
|
|
38
55
|
it "returns the expected metric object" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tabs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JC Grubbs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|