pulse-meter 0.0.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.
Files changed (96) hide show
  1. data/.gitignore +19 -0
  2. data/.rbenv-version +1 -0
  3. data/.rspec +1 -0
  4. data/.rvmrc +1 -0
  5. data/.travis.yml +4 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE +22 -0
  8. data/Procfile +3 -0
  9. data/README.md +440 -0
  10. data/Rakefile +53 -0
  11. data/bin/pulse +6 -0
  12. data/examples/basic.ru +109 -0
  13. data/examples/basic_sensor_data.rb +38 -0
  14. data/examples/full/Procfile +2 -0
  15. data/examples/full/client.rb +82 -0
  16. data/examples/full/server.ru +114 -0
  17. data/examples/minimal/Procfile +2 -0
  18. data/examples/minimal/client.rb +16 -0
  19. data/examples/minimal/server.ru +20 -0
  20. data/examples/readme_client_example.rb +52 -0
  21. data/lib/cmd.rb +150 -0
  22. data/lib/pulse-meter.rb +17 -0
  23. data/lib/pulse-meter/mixins/dumper.rb +72 -0
  24. data/lib/pulse-meter/mixins/utils.rb +91 -0
  25. data/lib/pulse-meter/sensor.rb +44 -0
  26. data/lib/pulse-meter/sensor/base.rb +75 -0
  27. data/lib/pulse-meter/sensor/counter.rb +36 -0
  28. data/lib/pulse-meter/sensor/hashed_counter.rb +31 -0
  29. data/lib/pulse-meter/sensor/indicator.rb +33 -0
  30. data/lib/pulse-meter/sensor/timeline.rb +180 -0
  31. data/lib/pulse-meter/sensor/timelined/average.rb +26 -0
  32. data/lib/pulse-meter/sensor/timelined/counter.rb +16 -0
  33. data/lib/pulse-meter/sensor/timelined/hashed_counter.rb +22 -0
  34. data/lib/pulse-meter/sensor/timelined/max.rb +25 -0
  35. data/lib/pulse-meter/sensor/timelined/median.rb +14 -0
  36. data/lib/pulse-meter/sensor/timelined/min.rb +25 -0
  37. data/lib/pulse-meter/sensor/timelined/percentile.rb +31 -0
  38. data/lib/pulse-meter/version.rb +3 -0
  39. data/lib/pulse-meter/visualize/app.rb +43 -0
  40. data/lib/pulse-meter/visualize/dsl.rb +0 -0
  41. data/lib/pulse-meter/visualize/dsl/errors.rb +46 -0
  42. data/lib/pulse-meter/visualize/dsl/layout.rb +55 -0
  43. data/lib/pulse-meter/visualize/dsl/page.rb +50 -0
  44. data/lib/pulse-meter/visualize/dsl/sensor.rb +21 -0
  45. data/lib/pulse-meter/visualize/dsl/widget.rb +84 -0
  46. data/lib/pulse-meter/visualize/layout.rb +54 -0
  47. data/lib/pulse-meter/visualize/page.rb +30 -0
  48. data/lib/pulse-meter/visualize/public/css/application.css +19 -0
  49. data/lib/pulse-meter/visualize/public/css/bootstrap.css +4883 -0
  50. data/lib/pulse-meter/visualize/public/css/bootstrap.min.css +729 -0
  51. data/lib/pulse-meter/visualize/public/favicon.ico +0 -0
  52. data/lib/pulse-meter/visualize/public/img/glyphicons-halflings-white.png +0 -0
  53. data/lib/pulse-meter/visualize/public/img/glyphicons-halflings.png +0 -0
  54. data/lib/pulse-meter/visualize/public/js/application.coffee +262 -0
  55. data/lib/pulse-meter/visualize/public/js/application.js +279 -0
  56. data/lib/pulse-meter/visualize/public/js/backbone-min.js +38 -0
  57. data/lib/pulse-meter/visualize/public/js/bootstrap.js +1835 -0
  58. data/lib/pulse-meter/visualize/public/js/highcharts.js +203 -0
  59. data/lib/pulse-meter/visualize/public/js/jquery-1.7.2.min.js +4 -0
  60. data/lib/pulse-meter/visualize/public/js/json2.js +487 -0
  61. data/lib/pulse-meter/visualize/public/js/underscore-min.js +32 -0
  62. data/lib/pulse-meter/visualize/sensor.rb +60 -0
  63. data/lib/pulse-meter/visualize/views/main.haml +40 -0
  64. data/lib/pulse-meter/visualize/widget.rb +68 -0
  65. data/lib/pulse-meter/visualizer.rb +30 -0
  66. data/lib/test_helpers/matchers.rb +36 -0
  67. data/pulse-meter.gemspec +39 -0
  68. data/spec/pulse_meter/mixins/dumper_spec.rb +158 -0
  69. data/spec/pulse_meter/mixins/utils_spec.rb +134 -0
  70. data/spec/pulse_meter/sensor/base_spec.rb +97 -0
  71. data/spec/pulse_meter/sensor/counter_spec.rb +54 -0
  72. data/spec/pulse_meter/sensor/hashed_counter_spec.rb +39 -0
  73. data/spec/pulse_meter/sensor/indicator_spec.rb +43 -0
  74. data/spec/pulse_meter/sensor/timeline_spec.rb +58 -0
  75. data/spec/pulse_meter/sensor/timelined/average_spec.rb +6 -0
  76. data/spec/pulse_meter/sensor/timelined/counter_spec.rb +6 -0
  77. data/spec/pulse_meter/sensor/timelined/hashed_counter_spec.rb +8 -0
  78. data/spec/pulse_meter/sensor/timelined/max_spec.rb +7 -0
  79. data/spec/pulse_meter/sensor/timelined/median_spec.rb +7 -0
  80. data/spec/pulse_meter/sensor/timelined/min_spec.rb +7 -0
  81. data/spec/pulse_meter/sensor/timelined/percentile_spec.rb +17 -0
  82. data/spec/pulse_meter/visualize/app_spec.rb +27 -0
  83. data/spec/pulse_meter/visualize/dsl/layout_spec.rb +64 -0
  84. data/spec/pulse_meter/visualize/dsl/page_spec.rb +75 -0
  85. data/spec/pulse_meter/visualize/dsl/sensor_spec.rb +30 -0
  86. data/spec/pulse_meter/visualize/dsl/widget_spec.rb +127 -0
  87. data/spec/pulse_meter/visualize/layout_spec.rb +55 -0
  88. data/spec/pulse_meter/visualize/page_spec.rb +150 -0
  89. data/spec/pulse_meter/visualize/sensor_spec.rb +120 -0
  90. data/spec/pulse_meter/visualize/widget_spec.rb +113 -0
  91. data/spec/pulse_meter/visualizer_spec.rb +42 -0
  92. data/spec/pulse_meter_spec.rb +16 -0
  93. data/spec/shared_examples/timeline_sensor.rb +279 -0
  94. data/spec/shared_examples/timelined_subclass.rb +23 -0
  95. data/spec/spec_helper.rb +29 -0
  96. metadata +435 -0
@@ -0,0 +1,23 @@
1
+ shared_examples_for "timelined subclass" do |events, result, extra_options|
2
+ let(:name){ :counter }
3
+ let(:ttl){ 100 }
4
+ let(:raw_data_ttl){ 10 }
5
+ let(:interval){ 5 }
6
+ let(:reduce_delay){ 3 }
7
+ let(:init_values){ {:ttl => ttl, :raw_data_ttl => raw_data_ttl, :interval => interval, :reduce_delay => reduce_delay}.merge(extra_options || {}) }
8
+ let(:sensor){ described_class.new(name, init_values) }
9
+ let(:epsilon) {1}
10
+
11
+ it "should calculate summarized value #{result.inspect} of #{events.inspect}" do
12
+ interval_id = 0
13
+ start_of_interval = Time.at(interval_id)
14
+ Timecop.freeze(start_of_interval) do
15
+ events.each {|e| sensor.event(e)}
16
+ end
17
+ Timecop.freeze(start_of_interval + interval) do
18
+ data = sensor.timeline(interval + epsilon).first
19
+ data.value.should be_generally_equal(result)
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,29 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ $:.unshift File.expand_path('../../lib/', __FILE__)
4
+
5
+ ROOT = File.expand_path('../..', __FILE__)
6
+
7
+ Bundler.require(:default, :test, :development)
8
+
9
+ SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter
10
+
11
+ SimpleCov.start
12
+
13
+ require 'pulse-meter'
14
+ require 'pulse-meter/visualizer'
15
+ require 'test_helpers/matchers'
16
+ require 'rack/test'
17
+
18
+
19
+
20
+ Dir['spec/support/**/*.rb'].each{|f| require File.join(ROOT, f) }
21
+ Dir['spec/shared_examples/**/*.rb'].each{|f| require File.join(ROOT,f)}
22
+
23
+ RSpec.configure do |config|
24
+ config.before(:each) { PulseMeter.redis = MockRedis.new }
25
+ config.filter_run :focus => true
26
+ config.run_all_when_everything_filtered = true
27
+ config.include(TestHelpers::Matchers)
28
+ end
29
+
metadata ADDED
@@ -0,0 +1,435 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pulse-meter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ilya Averyanov
9
+ - Sergey Averyanov
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-05-26 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: gon-sinatra
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
31
+ - !ruby/object:Gem::Dependency
32
+ name: haml
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :runtime
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: json
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: redis
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: sinatra
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: terminal-table
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: thor
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ - !ruby/object:Gem::Dependency
128
+ name: foreman
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ - !ruby/object:Gem::Dependency
144
+ name: mock_redis
145
+ requirement: !ruby/object:Gem::Requirement
146
+ none: false
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ type: :development
152
+ prerelease: false
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ! '>='
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
159
+ - !ruby/object:Gem::Dependency
160
+ name: rack-test
161
+ requirement: !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ! '>='
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ - !ruby/object:Gem::Dependency
176
+ name: rake
177
+ requirement: !ruby/object:Gem::Requirement
178
+ none: false
179
+ requirements:
180
+ - - ! '>='
181
+ - !ruby/object:Gem::Version
182
+ version: '0'
183
+ type: :development
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ! '>='
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ - !ruby/object:Gem::Dependency
192
+ name: redcarpet
193
+ requirement: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ! '>='
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
199
+ type: :development
200
+ prerelease: false
201
+ version_requirements: !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ! '>='
205
+ - !ruby/object:Gem::Version
206
+ version: '0'
207
+ - !ruby/object:Gem::Dependency
208
+ name: rspec
209
+ requirement: !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ! '>='
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - ! '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: simplecov
225
+ requirement: !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - ! '>='
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
231
+ type: :development
232
+ prerelease: false
233
+ version_requirements: !ruby/object:Gem::Requirement
234
+ none: false
235
+ requirements:
236
+ - - ! '>='
237
+ - !ruby/object:Gem::Version
238
+ version: '0'
239
+ - !ruby/object:Gem::Dependency
240
+ name: timecop
241
+ requirement: !ruby/object:Gem::Requirement
242
+ none: false
243
+ requirements:
244
+ - - ! '>='
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ type: :development
248
+ prerelease: false
249
+ version_requirements: !ruby/object:Gem::Requirement
250
+ none: false
251
+ requirements:
252
+ - - ! '>='
253
+ - !ruby/object:Gem::Version
254
+ version: '0'
255
+ - !ruby/object:Gem::Dependency
256
+ name: yard
257
+ requirement: !ruby/object:Gem::Requirement
258
+ none: false
259
+ requirements:
260
+ - - ! '>='
261
+ - !ruby/object:Gem::Version
262
+ version: '0'
263
+ type: :development
264
+ prerelease: false
265
+ version_requirements: !ruby/object:Gem::Requirement
266
+ none: false
267
+ requirements:
268
+ - - ! '>='
269
+ - !ruby/object:Gem::Version
270
+ version: '0'
271
+ description: Lightweight metrics processor
272
+ email:
273
+ - av@fun-box.ru
274
+ - averyanov@gmail.com
275
+ executables:
276
+ - pulse
277
+ extensions: []
278
+ extra_rdoc_files: []
279
+ files:
280
+ - .gitignore
281
+ - .rbenv-version
282
+ - .rspec
283
+ - .rvmrc
284
+ - .travis.yml
285
+ - Gemfile
286
+ - LICENSE
287
+ - Procfile
288
+ - README.md
289
+ - Rakefile
290
+ - bin/pulse
291
+ - examples/basic.ru
292
+ - examples/basic_sensor_data.rb
293
+ - examples/full/Procfile
294
+ - examples/full/client.rb
295
+ - examples/full/server.ru
296
+ - examples/minimal/Procfile
297
+ - examples/minimal/client.rb
298
+ - examples/minimal/server.ru
299
+ - examples/readme_client_example.rb
300
+ - lib/cmd.rb
301
+ - lib/pulse-meter.rb
302
+ - lib/pulse-meter/mixins/dumper.rb
303
+ - lib/pulse-meter/mixins/utils.rb
304
+ - lib/pulse-meter/sensor.rb
305
+ - lib/pulse-meter/sensor/base.rb
306
+ - lib/pulse-meter/sensor/counter.rb
307
+ - lib/pulse-meter/sensor/hashed_counter.rb
308
+ - lib/pulse-meter/sensor/indicator.rb
309
+ - lib/pulse-meter/sensor/timeline.rb
310
+ - lib/pulse-meter/sensor/timelined/average.rb
311
+ - lib/pulse-meter/sensor/timelined/counter.rb
312
+ - lib/pulse-meter/sensor/timelined/hashed_counter.rb
313
+ - lib/pulse-meter/sensor/timelined/max.rb
314
+ - lib/pulse-meter/sensor/timelined/median.rb
315
+ - lib/pulse-meter/sensor/timelined/min.rb
316
+ - lib/pulse-meter/sensor/timelined/percentile.rb
317
+ - lib/pulse-meter/version.rb
318
+ - lib/pulse-meter/visualize/app.rb
319
+ - lib/pulse-meter/visualize/dsl.rb
320
+ - lib/pulse-meter/visualize/dsl/errors.rb
321
+ - lib/pulse-meter/visualize/dsl/layout.rb
322
+ - lib/pulse-meter/visualize/dsl/page.rb
323
+ - lib/pulse-meter/visualize/dsl/sensor.rb
324
+ - lib/pulse-meter/visualize/dsl/widget.rb
325
+ - lib/pulse-meter/visualize/layout.rb
326
+ - lib/pulse-meter/visualize/page.rb
327
+ - lib/pulse-meter/visualize/public/css/application.css
328
+ - lib/pulse-meter/visualize/public/css/bootstrap.css
329
+ - lib/pulse-meter/visualize/public/css/bootstrap.min.css
330
+ - lib/pulse-meter/visualize/public/favicon.ico
331
+ - lib/pulse-meter/visualize/public/img/glyphicons-halflings-white.png
332
+ - lib/pulse-meter/visualize/public/img/glyphicons-halflings.png
333
+ - lib/pulse-meter/visualize/public/js/application.coffee
334
+ - lib/pulse-meter/visualize/public/js/application.js
335
+ - lib/pulse-meter/visualize/public/js/backbone-min.js
336
+ - lib/pulse-meter/visualize/public/js/bootstrap.js
337
+ - lib/pulse-meter/visualize/public/js/highcharts.js
338
+ - lib/pulse-meter/visualize/public/js/jquery-1.7.2.min.js
339
+ - lib/pulse-meter/visualize/public/js/json2.js
340
+ - lib/pulse-meter/visualize/public/js/underscore-min.js
341
+ - lib/pulse-meter/visualize/sensor.rb
342
+ - lib/pulse-meter/visualize/views/main.haml
343
+ - lib/pulse-meter/visualize/widget.rb
344
+ - lib/pulse-meter/visualizer.rb
345
+ - lib/test_helpers/matchers.rb
346
+ - pulse-meter.gemspec
347
+ - spec/pulse_meter/mixins/dumper_spec.rb
348
+ - spec/pulse_meter/mixins/utils_spec.rb
349
+ - spec/pulse_meter/sensor/base_spec.rb
350
+ - spec/pulse_meter/sensor/counter_spec.rb
351
+ - spec/pulse_meter/sensor/hashed_counter_spec.rb
352
+ - spec/pulse_meter/sensor/indicator_spec.rb
353
+ - spec/pulse_meter/sensor/timeline_spec.rb
354
+ - spec/pulse_meter/sensor/timelined/average_spec.rb
355
+ - spec/pulse_meter/sensor/timelined/counter_spec.rb
356
+ - spec/pulse_meter/sensor/timelined/hashed_counter_spec.rb
357
+ - spec/pulse_meter/sensor/timelined/max_spec.rb
358
+ - spec/pulse_meter/sensor/timelined/median_spec.rb
359
+ - spec/pulse_meter/sensor/timelined/min_spec.rb
360
+ - spec/pulse_meter/sensor/timelined/percentile_spec.rb
361
+ - spec/pulse_meter/visualize/app_spec.rb
362
+ - spec/pulse_meter/visualize/dsl/layout_spec.rb
363
+ - spec/pulse_meter/visualize/dsl/page_spec.rb
364
+ - spec/pulse_meter/visualize/dsl/sensor_spec.rb
365
+ - spec/pulse_meter/visualize/dsl/widget_spec.rb
366
+ - spec/pulse_meter/visualize/layout_spec.rb
367
+ - spec/pulse_meter/visualize/page_spec.rb
368
+ - spec/pulse_meter/visualize/sensor_spec.rb
369
+ - spec/pulse_meter/visualize/widget_spec.rb
370
+ - spec/pulse_meter/visualizer_spec.rb
371
+ - spec/pulse_meter_spec.rb
372
+ - spec/shared_examples/timeline_sensor.rb
373
+ - spec/shared_examples/timelined_subclass.rb
374
+ - spec/spec_helper.rb
375
+ homepage: ''
376
+ licenses: []
377
+ post_install_message:
378
+ rdoc_options: []
379
+ require_paths:
380
+ - lib
381
+ required_ruby_version: !ruby/object:Gem::Requirement
382
+ none: false
383
+ requirements:
384
+ - - ! '>='
385
+ - !ruby/object:Gem::Version
386
+ version: '0'
387
+ segments:
388
+ - 0
389
+ hash: -881252302653340374
390
+ required_rubygems_version: !ruby/object:Gem::Requirement
391
+ none: false
392
+ requirements:
393
+ - - ! '>='
394
+ - !ruby/object:Gem::Version
395
+ version: '0'
396
+ segments:
397
+ - 0
398
+ hash: -881252302653340374
399
+ requirements: []
400
+ rubyforge_project:
401
+ rubygems_version: 1.8.24
402
+ signing_key:
403
+ specification_version: 3
404
+ summary: Lightweight Redis-based metrics aggregator and processor with CLI and simple
405
+ and customizable WEB interfaces
406
+ test_files:
407
+ - spec/pulse_meter/mixins/dumper_spec.rb
408
+ - spec/pulse_meter/mixins/utils_spec.rb
409
+ - spec/pulse_meter/sensor/base_spec.rb
410
+ - spec/pulse_meter/sensor/counter_spec.rb
411
+ - spec/pulse_meter/sensor/hashed_counter_spec.rb
412
+ - spec/pulse_meter/sensor/indicator_spec.rb
413
+ - spec/pulse_meter/sensor/timeline_spec.rb
414
+ - spec/pulse_meter/sensor/timelined/average_spec.rb
415
+ - spec/pulse_meter/sensor/timelined/counter_spec.rb
416
+ - spec/pulse_meter/sensor/timelined/hashed_counter_spec.rb
417
+ - spec/pulse_meter/sensor/timelined/max_spec.rb
418
+ - spec/pulse_meter/sensor/timelined/median_spec.rb
419
+ - spec/pulse_meter/sensor/timelined/min_spec.rb
420
+ - spec/pulse_meter/sensor/timelined/percentile_spec.rb
421
+ - spec/pulse_meter/visualize/app_spec.rb
422
+ - spec/pulse_meter/visualize/dsl/layout_spec.rb
423
+ - spec/pulse_meter/visualize/dsl/page_spec.rb
424
+ - spec/pulse_meter/visualize/dsl/sensor_spec.rb
425
+ - spec/pulse_meter/visualize/dsl/widget_spec.rb
426
+ - spec/pulse_meter/visualize/layout_spec.rb
427
+ - spec/pulse_meter/visualize/page_spec.rb
428
+ - spec/pulse_meter/visualize/sensor_spec.rb
429
+ - spec/pulse_meter/visualize/widget_spec.rb
430
+ - spec/pulse_meter/visualizer_spec.rb
431
+ - spec/pulse_meter_spec.rb
432
+ - spec/shared_examples/timeline_sensor.rb
433
+ - spec/shared_examples/timelined_subclass.rb
434
+ - spec/spec_helper.rb
435
+ has_rdoc: