regrapher 0.1.0 → 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0c6c54892db698ad0b8d1befa73224f9f6c115c2
4
- data.tar.gz: 9cb429ea5c0c2660a5ee5107265b238d83e656ed
3
+ metadata.gz: 796fe4eaaf2b8b79e5b5dfb4b13a041dc02561da
4
+ data.tar.gz: 3f619169e63c665fa1bb4d9470fca4e63a8e416c
5
5
  SHA512:
6
- metadata.gz: c367ec86a1f35b7a0d2e1624dd99faa07ff1ed2a37e7a86c117242d89b4ff33244b0928e03e24bb3a64d49c186996d7a46bcc48cd62ec893666f02e869b7f956
7
- data.tar.gz: 71f591c3db855bfa594e693e8248df7ed18939fcfec637f8d8bed2bd4f7f6dac68de51389c76a1a59e2b49a77781d895074344e02bd12837764ffb121fe7eb8b
6
+ metadata.gz: 6ab28215092117f73196e56a0de95a58a9928dd22504ca2e98c58bd06355d5061b774ee39ccfebba6c710fe929dea02dba110bd0d5ba887ee18621de907bb8da
7
+ data.tar.gz: a09a7878aadb1dfc844a7f5ae41f1d8fe8f8743326cb248870cdf96595221242b2160a2200e03a339f4d80b32b79d0647039cfd678d30c5a29ca3928a65a8442
@@ -1,6 +1,6 @@
1
1
  module Regrapher
2
2
  class Parser
3
- LINE_REGEX = /^\[regrapher\]\[(\d+)\](.+)$/
3
+ LINE_REGEX = /\[regrapher\]\[(\d+)\](.+)$/
4
4
 
5
5
  def parse(line)
6
6
  _, length, rest = line.match(LINE_REGEX).to_a
@@ -1,3 +1,3 @@
1
1
  module Regrapher
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
data/lib/regrapher.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'regrapher/client'
2
+ require 'regrapher/parser'
2
3
 
3
4
  module Regrapher
4
5
 
data/spec/client_spec.rb CHANGED
@@ -10,27 +10,74 @@ RSpec.describe Regrapher::Client do
10
10
 
11
11
  let(:string) { output_stream.string }
12
12
 
13
- {
13
+ let(:parser) { Regrapher::Parser.new }
14
+
15
+ let(:now) { Time.now }
16
+
17
+ metric_type_to_params = {
14
18
  gauge: ['basket.value', 34.2],
15
19
  increment: ['users.count'],
16
20
  decrement: ['users.count'],
17
21
  count: ['users.count', -55],
18
22
  event: ['users.sign_up', { name: 'John', company: 'Acme Corp' }]
19
- }.each do |method, params|
23
+ }
24
+
25
+ tag_sets = [nil, [], ['tag.x'], %w(tag1 tag2 tag3 tag4.subtag)]
26
+
27
+ metric_type_to_params.map { |m, p| tag_sets.map { |t| [m, p, t] } }.flatten(1).each do |method, params, tags|
20
28
  context "##{method}" do
21
29
 
30
+ before do
31
+ Timecop.freeze(now) do
32
+ client.send method, *(params + (tags ? [tags: tags] : []))
33
+ end
34
+ end
35
+
22
36
  it 'has a "[regrapher][<length>]" prefix' do
23
- client.send method, *params
24
37
  expect(string).to match(LINE_REGEX)
25
- _, length, json = string.match(LINE_REGEX).to_a
26
- expect(json.length).to eq(length.to_i)
27
38
  end
28
39
 
29
40
  it '<length> equals the json length' do
30
- client.send method, *params
31
41
  _, length, json = string.match(LINE_REGEX).to_a
32
42
  expect(json.length).to eq(length.to_i)
33
43
  end
44
+
45
+ context 'parsed metric object' do
46
+
47
+ let(:obj) { parser.parse(string) }
48
+
49
+ it 'is not nil' do
50
+ expect(obj).to_not be_nil
51
+ end
52
+
53
+ it 'has the correct value' do
54
+ expected_value = case method
55
+ when :increment
56
+ 1
57
+ when :decrement
58
+ -1
59
+ else
60
+ params[1]
61
+ end
62
+ expect(obj[:value]).to eq(expected_value)
63
+ end
64
+
65
+ it 'has the correct tags' do
66
+ expect(obj[:tags]).to match tags
67
+ end
68
+
69
+ it 'has the correct timestamp' do
70
+ expect(obj[:ts]).to eq(now.to_i)
71
+ end
72
+
73
+ it 'has the correct name' do
74
+ expect(obj[:name]).to eq(params[0])
75
+ end
76
+
77
+ it 'has an id' do
78
+ expect(obj[:id]).to_not be_nil
79
+ end
80
+ end
34
81
  end
35
82
  end
36
83
  end
data/spec/examples.txt CHANGED
@@ -1,12 +1,162 @@
1
- example_id | status | run_time |
2
- ---------------------------- | ------ | --------------- |
3
- ./spec/client_spec.rb[1:1:1] | passed | 0.00011 seconds |
4
- ./spec/client_spec.rb[1:1:2] | passed | 0.00013 seconds |
5
- ./spec/client_spec.rb[1:2:1] | passed | 0.00013 seconds |
6
- ./spec/client_spec.rb[1:2:2] | passed | 0.00015 seconds |
7
- ./spec/client_spec.rb[1:3:1] | passed | 0.00254 seconds |
8
- ./spec/client_spec.rb[1:3:2] | passed | 0.00019 seconds |
9
- ./spec/client_spec.rb[1:4:1] | passed | 0.0002 seconds |
10
- ./spec/client_spec.rb[1:4:2] | passed | 0.00017 seconds |
11
- ./spec/client_spec.rb[1:5:1] | passed | 0.00017 seconds |
12
- ./spec/client_spec.rb[1:5:2] | passed | 0.00018 seconds |
1
+ example_id | status | run_time |
2
+ ------------------------------- | ------ | --------------- |
3
+ ./spec/client_spec.rb[1:1:1] | passed | 0.00051 seconds |
4
+ ./spec/client_spec.rb[1:1:2] | passed | 0.00052 seconds |
5
+ ./spec/client_spec.rb[1:1:3:1] | passed | 0.0002 seconds |
6
+ ./spec/client_spec.rb[1:1:3:2] | passed | 0.00017 seconds |
7
+ ./spec/client_spec.rb[1:1:3:3] | passed | 0.00022 seconds |
8
+ ./spec/client_spec.rb[1:1:3:4] | passed | 0.00042 seconds |
9
+ ./spec/client_spec.rb[1:1:3:5] | passed | 0.00021 seconds |
10
+ ./spec/client_spec.rb[1:1:3:6] | passed | 0.00043 seconds |
11
+ ./spec/client_spec.rb[1:2:1] | passed | 0.00016 seconds |
12
+ ./spec/client_spec.rb[1:2:2] | passed | 0.00017 seconds |
13
+ ./spec/client_spec.rb[1:2:3:1] | passed | 0.00024 seconds |
14
+ ./spec/client_spec.rb[1:2:3:2] | passed | 0.00017 seconds |
15
+ ./spec/client_spec.rb[1:2:3:3] | passed | 0.00019 seconds |
16
+ ./spec/client_spec.rb[1:2:3:4] | passed | 0.00035 seconds |
17
+ ./spec/client_spec.rb[1:2:3:5] | passed | 0.00028 seconds |
18
+ ./spec/client_spec.rb[1:2:3:6] | passed | 0.00017 seconds |
19
+ ./spec/client_spec.rb[1:3:1] | passed | 0.00036 seconds |
20
+ ./spec/client_spec.rb[1:3:2] | passed | 0.00039 seconds |
21
+ ./spec/client_spec.rb[1:3:3:1] | passed | 0.00019 seconds |
22
+ ./spec/client_spec.rb[1:3:3:2] | passed | 0.00024 seconds |
23
+ ./spec/client_spec.rb[1:3:3:3] | passed | 0.00021 seconds |
24
+ ./spec/client_spec.rb[1:3:3:4] | passed | 0.00033 seconds |
25
+ ./spec/client_spec.rb[1:3:3:5] | passed | 0.0002 seconds |
26
+ ./spec/client_spec.rb[1:3:3:6] | passed | 0.00034 seconds |
27
+ ./spec/client_spec.rb[1:4:1] | passed | 0.00044 seconds |
28
+ ./spec/client_spec.rb[1:4:2] | passed | 0.00018 seconds |
29
+ ./spec/client_spec.rb[1:4:3:1] | passed | 0.00016 seconds |
30
+ ./spec/client_spec.rb[1:4:3:2] | passed | 0.00019 seconds |
31
+ ./spec/client_spec.rb[1:4:3:3] | passed | 0.00023 seconds |
32
+ ./spec/client_spec.rb[1:4:3:4] | passed | 0.00032 seconds |
33
+ ./spec/client_spec.rb[1:4:3:5] | passed | 0.00036 seconds |
34
+ ./spec/client_spec.rb[1:4:3:6] | passed | 0.00026 seconds |
35
+ ./spec/client_spec.rb[1:5:1] | passed | 0.00119 seconds |
36
+ ./spec/client_spec.rb[1:5:2] | passed | 0.00039 seconds |
37
+ ./spec/client_spec.rb[1:5:3:1] | passed | 0.00297 seconds |
38
+ ./spec/client_spec.rb[1:5:3:2] | passed | 0.00016 seconds |
39
+ ./spec/client_spec.rb[1:5:3:3] | passed | 0.00027 seconds |
40
+ ./spec/client_spec.rb[1:5:3:4] | passed | 0.0002 seconds |
41
+ ./spec/client_spec.rb[1:5:3:5] | passed | 0.00022 seconds |
42
+ ./spec/client_spec.rb[1:5:3:6] | passed | 0.00045 seconds |
43
+ ./spec/client_spec.rb[1:6:1] | passed | 0.00042 seconds |
44
+ ./spec/client_spec.rb[1:6:2] | passed | 0.00045 seconds |
45
+ ./spec/client_spec.rb[1:6:3:1] | passed | 0.00029 seconds |
46
+ ./spec/client_spec.rb[1:6:3:2] | passed | 0.00026 seconds |
47
+ ./spec/client_spec.rb[1:6:3:3] | passed | 0.00049 seconds |
48
+ ./spec/client_spec.rb[1:6:3:4] | passed | 0.00025 seconds |
49
+ ./spec/client_spec.rb[1:6:3:5] | passed | 0.00034 seconds |
50
+ ./spec/client_spec.rb[1:6:3:6] | passed | 0.00048 seconds |
51
+ ./spec/client_spec.rb[1:7:1] | passed | 0.00263 seconds |
52
+ ./spec/client_spec.rb[1:7:2] | passed | 0.00028 seconds |
53
+ ./spec/client_spec.rb[1:7:3:1] | passed | 0.00015 seconds |
54
+ ./spec/client_spec.rb[1:7:3:2] | passed | 0.00033 seconds |
55
+ ./spec/client_spec.rb[1:7:3:3] | passed | 0.00025 seconds |
56
+ ./spec/client_spec.rb[1:7:3:4] | passed | 0.00026 seconds |
57
+ ./spec/client_spec.rb[1:7:3:5] | passed | 0.00024 seconds |
58
+ ./spec/client_spec.rb[1:7:3:6] | passed | 0.00019 seconds |
59
+ ./spec/client_spec.rb[1:8:1] | passed | 0.0002 seconds |
60
+ ./spec/client_spec.rb[1:8:2] | passed | 0.00033 seconds |
61
+ ./spec/client_spec.rb[1:8:3:1] | passed | 0.00039 seconds |
62
+ ./spec/client_spec.rb[1:8:3:2] | passed | 0.00042 seconds |
63
+ ./spec/client_spec.rb[1:8:3:3] | passed | 0.00075 seconds |
64
+ ./spec/client_spec.rb[1:8:3:4] | passed | 0.00044 seconds |
65
+ ./spec/client_spec.rb[1:8:3:5] | passed | 0.00042 seconds |
66
+ ./spec/client_spec.rb[1:8:3:6] | passed | 0.00037 seconds |
67
+ ./spec/client_spec.rb[1:9:1] | passed | 0.00019 seconds |
68
+ ./spec/client_spec.rb[1:9:2] | passed | 0.00023 seconds |
69
+ ./spec/client_spec.rb[1:9:3:1] | passed | 0.00016 seconds |
70
+ ./spec/client_spec.rb[1:9:3:2] | passed | 0.00017 seconds |
71
+ ./spec/client_spec.rb[1:9:3:3] | passed | 0.00016 seconds |
72
+ ./spec/client_spec.rb[1:9:3:4] | passed | 0.00018 seconds |
73
+ ./spec/client_spec.rb[1:9:3:5] | passed | 0.00018 seconds |
74
+ ./spec/client_spec.rb[1:9:3:6] | passed | 0.00019 seconds |
75
+ ./spec/client_spec.rb[1:10:1] | passed | 0.00023 seconds |
76
+ ./spec/client_spec.rb[1:10:2] | passed | 0.00034 seconds |
77
+ ./spec/client_spec.rb[1:10:3:1] | passed | 0.00113 seconds |
78
+ ./spec/client_spec.rb[1:10:3:2] | passed | 0.00051 seconds |
79
+ ./spec/client_spec.rb[1:10:3:3] | passed | 0.00019 seconds |
80
+ ./spec/client_spec.rb[1:10:3:4] | passed | 0.00027 seconds |
81
+ ./spec/client_spec.rb[1:10:3:5] | passed | 0.00035 seconds |
82
+ ./spec/client_spec.rb[1:10:3:6] | passed | 0.00029 seconds |
83
+ ./spec/client_spec.rb[1:11:1] | passed | 0.00019 seconds |
84
+ ./spec/client_spec.rb[1:11:2] | passed | 0.00017 seconds |
85
+ ./spec/client_spec.rb[1:11:3:1] | passed | 0.00018 seconds |
86
+ ./spec/client_spec.rb[1:11:3:2] | passed | 0.00023 seconds |
87
+ ./spec/client_spec.rb[1:11:3:3] | passed | 0.00042 seconds |
88
+ ./spec/client_spec.rb[1:11:3:4] | passed | 0.0007 seconds |
89
+ ./spec/client_spec.rb[1:11:3:5] | passed | 0.00054 seconds |
90
+ ./spec/client_spec.rb[1:11:3:6] | passed | 0.00054 seconds |
91
+ ./spec/client_spec.rb[1:12:1] | passed | 0.00025 seconds |
92
+ ./spec/client_spec.rb[1:12:2] | passed | 0.00018 seconds |
93
+ ./spec/client_spec.rb[1:12:3:1] | passed | 0.00022 seconds |
94
+ ./spec/client_spec.rb[1:12:3:2] | passed | 0.00016 seconds |
95
+ ./spec/client_spec.rb[1:12:3:3] | passed | 0.00017 seconds |
96
+ ./spec/client_spec.rb[1:12:3:4] | passed | 0.00016 seconds |
97
+ ./spec/client_spec.rb[1:12:3:5] | passed | 0.00016 seconds |
98
+ ./spec/client_spec.rb[1:12:3:6] | passed | 0.00023 seconds |
99
+ ./spec/client_spec.rb[1:13:1] | passed | 0.00015 seconds |
100
+ ./spec/client_spec.rb[1:13:2] | passed | 0.0003 seconds |
101
+ ./spec/client_spec.rb[1:13:3:1] | passed | 0.00018 seconds |
102
+ ./spec/client_spec.rb[1:13:3:2] | passed | 0.00015 seconds |
103
+ ./spec/client_spec.rb[1:13:3:3] | passed | 0.0003 seconds |
104
+ ./spec/client_spec.rb[1:13:3:4] | passed | 0.0002 seconds |
105
+ ./spec/client_spec.rb[1:13:3:5] | passed | 0.00024 seconds |
106
+ ./spec/client_spec.rb[1:13:3:6] | passed | 0.00016 seconds |
107
+ ./spec/client_spec.rb[1:14:1] | passed | 0.00029 seconds |
108
+ ./spec/client_spec.rb[1:14:2] | passed | 0.00118 seconds |
109
+ ./spec/client_spec.rb[1:14:3:1] | passed | 0.00072 seconds |
110
+ ./spec/client_spec.rb[1:14:3:2] | passed | 0.00037 seconds |
111
+ ./spec/client_spec.rb[1:14:3:3] | passed | 0.00019 seconds |
112
+ ./spec/client_spec.rb[1:14:3:4] | passed | 0.00021 seconds |
113
+ ./spec/client_spec.rb[1:14:3:5] | passed | 0.00023 seconds |
114
+ ./spec/client_spec.rb[1:14:3:6] | passed | 0.00021 seconds |
115
+ ./spec/client_spec.rb[1:15:1] | passed | 0.00019 seconds |
116
+ ./spec/client_spec.rb[1:15:2] | passed | 0.00033 seconds |
117
+ ./spec/client_spec.rb[1:15:3:1] | passed | 0.00055 seconds |
118
+ ./spec/client_spec.rb[1:15:3:2] | passed | 0.00022 seconds |
119
+ ./spec/client_spec.rb[1:15:3:3] | passed | 0.00021 seconds |
120
+ ./spec/client_spec.rb[1:15:3:4] | passed | 0.00075 seconds |
121
+ ./spec/client_spec.rb[1:15:3:5] | passed | 0.00025 seconds |
122
+ ./spec/client_spec.rb[1:15:3:6] | passed | 0.00055 seconds |
123
+ ./spec/client_spec.rb[1:16:1] | passed | 0.00015 seconds |
124
+ ./spec/client_spec.rb[1:16:2] | passed | 0.00013 seconds |
125
+ ./spec/client_spec.rb[1:16:3:1] | passed | 0.00029 seconds |
126
+ ./spec/client_spec.rb[1:16:3:2] | passed | 0.00018 seconds |
127
+ ./spec/client_spec.rb[1:16:3:3] | passed | 0.00018 seconds |
128
+ ./spec/client_spec.rb[1:16:3:4] | passed | 0.00035 seconds |
129
+ ./spec/client_spec.rb[1:16:3:5] | passed | 0.00035 seconds |
130
+ ./spec/client_spec.rb[1:16:3:6] | passed | 0.00018 seconds |
131
+ ./spec/client_spec.rb[1:17:1] | passed | 0.00025 seconds |
132
+ ./spec/client_spec.rb[1:17:2] | passed | 0.00049 seconds |
133
+ ./spec/client_spec.rb[1:17:3:1] | passed | 0.00018 seconds |
134
+ ./spec/client_spec.rb[1:17:3:2] | passed | 0.00016 seconds |
135
+ ./spec/client_spec.rb[1:17:3:3] | passed | 0.00024 seconds |
136
+ ./spec/client_spec.rb[1:17:3:4] | passed | 0.00043 seconds |
137
+ ./spec/client_spec.rb[1:17:3:5] | passed | 0.00064 seconds |
138
+ ./spec/client_spec.rb[1:17:3:6] | passed | 0.00018 seconds |
139
+ ./spec/client_spec.rb[1:18:1] | passed | 0.00125 seconds |
140
+ ./spec/client_spec.rb[1:18:2] | passed | 0.00069 seconds |
141
+ ./spec/client_spec.rb[1:18:3:1] | passed | 0.00038 seconds |
142
+ ./spec/client_spec.rb[1:18:3:2] | passed | 0.00037 seconds |
143
+ ./spec/client_spec.rb[1:18:3:3] | passed | 0.00027 seconds |
144
+ ./spec/client_spec.rb[1:18:3:4] | passed | 0.00021 seconds |
145
+ ./spec/client_spec.rb[1:18:3:5] | passed | 0.00046 seconds |
146
+ ./spec/client_spec.rb[1:18:3:6] | passed | 0.00026 seconds |
147
+ ./spec/client_spec.rb[1:19:1] | passed | 0.00013 seconds |
148
+ ./spec/client_spec.rb[1:19:2] | passed | 0.00023 seconds |
149
+ ./spec/client_spec.rb[1:19:3:1] | passed | 0.00024 seconds |
150
+ ./spec/client_spec.rb[1:19:3:2] | passed | 0.00021 seconds |
151
+ ./spec/client_spec.rb[1:19:3:3] | passed | 0.00021 seconds |
152
+ ./spec/client_spec.rb[1:19:3:4] | passed | 0.00016 seconds |
153
+ ./spec/client_spec.rb[1:19:3:5] | passed | 0.00028 seconds |
154
+ ./spec/client_spec.rb[1:19:3:6] | passed | 0.00027 seconds |
155
+ ./spec/client_spec.rb[1:20:1] | passed | 0.00059 seconds |
156
+ ./spec/client_spec.rb[1:20:2] | passed | 0.00022 seconds |
157
+ ./spec/client_spec.rb[1:20:3:1] | passed | 0.00029 seconds |
158
+ ./spec/client_spec.rb[1:20:3:2] | passed | 0.00025 seconds |
159
+ ./spec/client_spec.rb[1:20:3:3] | passed | 0.00021 seconds |
160
+ ./spec/client_spec.rb[1:20:3:4] | passed | 0.00019 seconds |
161
+ ./spec/client_spec.rb[1:20:3:5] | passed | 0.00029 seconds |
162
+ ./spec/client_spec.rb[1:20:3:6] | passed | 0.00028 seconds |
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'regrapher'
2
+ require 'timecop'
2
3
  RSpec.configure do |config|
3
4
  # rspec-expectations config goes here. You can use an alternate
4
5
  # assertion/expectation library such as wrong or the stdlib/minitest
@@ -75,3 +76,5 @@ RSpec.configure do |config|
75
76
  # as the one that triggered the failure.
76
77
  Kernel.srand config.seed
77
78
  end
79
+
80
+ Timecop.safe_mode = true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: regrapher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ramzi Ben Salah
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-28 00:00:00.000000000 Z
11
+ date: 2016-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: timecop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.8'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.8'
41
55
  description: Provides convenience logger to format events and metric values in the
42
56
  regrapher format
43
57
  email: