pulse-meter 0.1.11 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -52,9 +52,9 @@ describe PulseMeter::Visualize::DSL::Page do
52
52
 
53
53
  describe "#chart" do
54
54
  it "should create widget width type :chart" do
55
- page.spline(:some_widget_name)
55
+ page.line(:some_widget_name)
56
56
  w = page.to_page.widgets.first
57
- w.type.should == :spline
57
+ w.type.should == :line
58
58
  end
59
59
  end
60
60
 
@@ -5,12 +5,12 @@ describe PulseMeter::Visualize::Layout do
5
5
  l = PulseMeter::Visualize::DSL::Layout.new
6
6
  l.page "page1" do |p|
7
7
  p.line "w1"
8
- p.spline "w2"
9
- p.highchart_options({a: 1})
8
+ p.line "w2"
9
+ p.gchart_options({a: 1})
10
10
  end
11
11
  l.page "page2" do |p|
12
12
  p.line "w3"
13
- p.spline "w4"
13
+ p.line "w4"
14
14
  end
15
15
  l.to_layout
16
16
  end
@@ -18,8 +18,8 @@ describe PulseMeter::Visualize::Layout do
18
18
  describe "#page_infos" do
19
19
  it "should return list of page infos with ids" do
20
20
  layout.page_infos.should == [
21
- {title: "page1", id: 1, highchart_options: {a: 1}},
22
- {title: "page2", id: 2, highchart_options: {}}
21
+ {title: "page1", id: 1, gchart_options: {a: 1}},
22
+ {title: "page2", id: 2, gchart_options: {}}
23
23
  ]
24
24
  end
25
25
  end
@@ -28,10 +28,9 @@ describe PulseMeter::Visualize::Layout do
28
28
  it "should return layout options" do
29
29
  ldsl = PulseMeter::Visualize::DSL::Layout.new
30
30
  ldsl.use_utc true
31
- ldsl.outlier_color '#RED'
32
- ldsl.highchart_options({a: 1})
31
+ ldsl.gchart_options({a: 1})
33
32
  l = ldsl.to_layout
34
- l.options.should == {use_utc: true, outlier_color: '#RED', highchart_options: {a: 1}}
33
+ l.options.should == {use_utc: true, gchart_options: {a: 1}}
35
34
  end
36
35
  end
37
36
 
@@ -67,68 +67,49 @@ describe PulseMeter::Visualize::Page do
67
67
  it "should generate correct data of single widget" do
68
68
  Timecop.freeze(interval_start + 2 * interval - 1) do
69
69
  page.widget_data(0)[:series].should ==
70
- [
71
- {
72
- type: :pie,
73
- name: values_label,
74
- data: [
75
- {
76
- name: a_sensor.annotation,
77
- color: a_color,
78
- y: 12
79
- },
80
- {
81
- name: b_sensor.annotation,
82
- color: b_color,
83
- y: 33
84
- }
85
- ]
86
-
87
- }
88
- ]
70
+ {
71
+ data: [
72
+ [a_sensor.annotation, 12],
73
+ [b_sensor.annotation, 33]
74
+ ],
75
+ options: [
76
+ {color: a_color},
77
+ {color: b_color}
78
+ ]
79
+ }
89
80
  page.widget_data(1)[:series].should ==
90
- [{
91
- name: a_sensor.annotation,
92
- color: a_color,
93
- data: [{x: interval_start.to_i * 1000, y: 12}]
94
- }, {
95
- name: b_sensor.annotation,
96
- color: b_color,
97
- data: [{x: interval_start.to_i * 1000, y: 33}]
98
- }]
81
+ {
82
+ titles: [a_sensor.annotation, b_sensor.annotation],
83
+ rows: [[interval_start.to_i * 1000, 12, 33]],
84
+ options: [
85
+ {color: a_color},
86
+ {color: b_color}
87
+ ]
88
+ }
99
89
  end
100
90
 
101
91
  Timecop.freeze(interval_start + 2 * interval - 1) do
102
92
  page.widget_data(0, timespan: 0)[:series].should ==
103
- [
104
- {
105
- type: :pie,
106
- name: values_label,
107
- data: [
108
- {
109
- name: a_sensor.annotation,
110
- color: a_color,
111
- y: 12
112
- },
113
- {
114
- name: b_sensor.annotation,
115
- color: b_color,
116
- y: 33
117
- }
118
- ]
119
-
120
- }
121
- ]
93
+ {
94
+ data: [
95
+ [a_sensor.annotation, 12],
96
+ [b_sensor.annotation, 33]
97
+ ],
98
+ options: [
99
+ {color: a_color},
100
+ {color: b_color}
101
+ ]
102
+ }
122
103
  page.widget_data(1, timespan: 1)[:series].should ==
123
- [{
124
- name: a_sensor.annotation,
125
- color: a_color,
126
- data: []
127
- }, {
128
- name: b_sensor.annotation,
129
- color: b_color,
130
- data: []
131
- }]
104
+ {
105
+ titles: [a_sensor.annotation, b_sensor.annotation],
106
+ rows: [],
107
+ options: [
108
+ {color: a_color},
109
+ {color: b_color}
110
+ ]
111
+ }
112
+
132
113
  end
133
114
 
134
115
 
@@ -146,38 +127,27 @@ describe PulseMeter::Visualize::Page do
146
127
  Timecop.freeze(interval_start + 2 * interval - 1) do
147
128
 
148
129
  page.widget_datas.map{|h| h[:series]}.should == [
149
- [
150
- {
151
- type: :pie,
152
- name: values_label,
153
- data: [
154
- {
155
- name: a_sensor.annotation,
156
- color: a_color,
157
- y: 12
158
- },
159
- {
160
- name: b_sensor.annotation,
161
- color: b_color,
162
- y: 33
163
- }
164
- ]
165
-
166
- }
167
- ],
168
- [{
169
- name: a_sensor.annotation,
170
- color: a_color,
171
- data: [{x: interval_start.to_i * 1000, y: 12}]
172
- }, {
173
- name: b_sensor.annotation,
174
- color: b_color,
175
- data: [{x: interval_start.to_i * 1000, y: 33}]
176
- }]
130
+ {
131
+ data: [
132
+ [a_sensor.annotation, 12],
133
+ [b_sensor.annotation, 33]
134
+ ],
135
+ options: [
136
+ {color: a_color},
137
+ {color: b_color}
138
+ ]
139
+ },
140
+ {
141
+ titles: [a_sensor.annotation, b_sensor.annotation],
142
+ rows: [[interval_start.to_i * 1000, 12, 33]],
143
+ options: [
144
+ {color: a_color},
145
+ {color: b_color}
146
+ ]
147
+ }
177
148
  ]
178
149
  end
179
150
 
180
-
181
151
  end
182
152
  end
183
153
  end
@@ -16,14 +16,14 @@ describe PulseMeter::Visualize::Sensor do
16
16
  describe '#last_value' do
17
17
  context "when sensor does not exist" do
18
18
  it "should raise RestoreError" do
19
- expect{ bad_sensor.last_value }.to raise_exception(PulseMeter::RestoreError)
19
+ expect{ bad_sensor.last_value(Time.now) }.to raise_exception(PulseMeter::RestoreError)
20
20
  end
21
21
  end
22
22
 
23
23
 
24
24
  context "when sensor has no data" do
25
25
  it "should return nil" do
26
- sensor.last_value.should be_nil
26
+ sensor.last_value(Time.now).should be_nil
27
27
  end
28
28
  end
29
29
 
@@ -34,7 +34,7 @@ describe PulseMeter::Visualize::Sensor do
34
34
  real_sensor.event(101)
35
35
  end
36
36
  Timecop.freeze(interval_start+1) do
37
- sensor.last_value(true).should == 101
37
+ sensor.last_value(Time.now, true).should == 101
38
38
  end
39
39
  end
40
40
  end
@@ -45,10 +45,10 @@ describe PulseMeter::Visualize::Sensor do
45
45
  real_sensor.event(101)
46
46
  end
47
47
  Timecop.freeze(interval_start + 1) do
48
- sensor.last_value.should be_nil
48
+ sensor.last_value(Time.now).should be_nil
49
49
  end
50
50
  Timecop.freeze(interval_start + interval + 1) do
51
- sensor.last_value.should == 101
51
+ sensor.last_value(Time.now).should == 101
52
52
  end
53
53
  end
54
54
  end
@@ -60,7 +60,7 @@ describe PulseMeter::Visualize::Sensor do
60
60
 
61
61
  context "when sensor does not exist" do
62
62
  it "should raise RestoreError" do
63
- expect{ bad_sensor.last_point_data }.to raise_exception(PulseMeter::RestoreError)
63
+ expect{ bad_sensor.last_point_data(Time.now) }.to raise_exception(PulseMeter::RestoreError)
64
64
  end
65
65
  end
66
66
 
@@ -69,10 +69,10 @@ describe PulseMeter::Visualize::Sensor do
69
69
  real_sensor.event(101)
70
70
  end
71
71
  Timecop.freeze(interval_start + 1) do
72
- sensor.last_point_data(true).should == {name: annotation, y: 101}
73
- sensor.last_point_data.should == {name: annotation, y: nil}
74
- sensor_with_color.last_point_data(true).should == {name: annotation, y: 101, color: color}
75
- sensor_with_color.last_point_data.should == {name: annotation, y: nil, color: color}
72
+ sensor.last_point_data(Time.now, true).should == [{name: annotation, y: 101}]
73
+ sensor.last_point_data(Time.now).should == [{name: annotation, y: nil}]
74
+ sensor_with_color.last_point_data(Time.now, true).should == [{name: annotation, y: 101, color: color}]
75
+ sensor_with_color.last_point_data(Time.now).should == [{name: annotation, y: nil, color: color}]
76
76
  end
77
77
  end
78
78
  end
@@ -89,7 +89,7 @@ describe PulseMeter::Visualize::Sensor do
89
89
 
90
90
  context "when sensor does not exist" do
91
91
  it "should raise RestoreError" do
92
- expect{ bad_sensor.timeline_data(interval) }.to raise_exception(PulseMeter::RestoreError)
92
+ expect{ bad_sensor.timeline_data(Time.now, interval) }.to raise_exception(PulseMeter::RestoreError)
93
93
  end
94
94
  end
95
95
 
@@ -97,21 +97,21 @@ describe PulseMeter::Visualize::Sensor do
97
97
  describe "returned value" do
98
98
  it "should contain sensor annotation" do
99
99
  Timecop.freeze(interval_start + interval + 1) do
100
- sensor.timeline_data(interval)[:name].should == annotation
100
+ sensor.timeline_data(Time.now, interval).first[:name].should == annotation
101
101
  end
102
102
  end
103
103
  it "should contain sensor color" do
104
104
  Timecop.freeze(interval_start + interval + 1) do
105
- sensor_with_color.timeline_data(interval)[:color].should == color
105
+ sensor_with_color.timeline_data(Time.now, interval).first[:color].should == color
106
106
  end
107
107
  end
108
108
 
109
109
  it "should contain [interval_start, value] pairs for each interval" do
110
110
  Timecop.freeze(interval_start + interval + 1) do
111
- data = sensor.timeline_data(interval * 2)
112
- data[:data].should == [{x: interval_start.to_i * 1000, y: 101}]
113
- data = sensor.timeline_data(interval * 2, true)
114
- data[:data].should == [{x: interval_start.to_i * 1000, y: 101}, {x: (interval_start + interval).to_i * 1000, y: 55}]
111
+ data = sensor.timeline_data(Time.now, interval * 2)
112
+ data.first[:data].should == [{x: interval_start.to_i * 1000, y: 101}]
113
+ data = sensor.timeline_data(Time.now, interval * 2, true)
114
+ data.first[:data].should == [{x: interval_start.to_i * 1000, y: 101}, {x: (interval_start + interval).to_i * 1000, y: 55}]
115
115
  end
116
116
  end
117
117
  end
@@ -25,7 +25,7 @@ describe PulseMeter::Visualize::SeriesExtractor do
25
25
  end
26
26
 
27
27
  it "should create point data correctly" do
28
- extractor.point_data(123).should == {y: 123, name: 'simple sensor'}
28
+ extractor.point_data(123).should == [{y: 123, name: 'simple sensor'}]
29
29
  end
30
30
 
31
31
  it "should create timeline data correctly" do
@@ -33,10 +33,10 @@ describe PulseMeter::Visualize::SeriesExtractor do
33
33
  PulseMeter::SensorData.new(Time.at(1), 11),
34
34
  PulseMeter::SensorData.new(Time.at(2), "22")
35
35
  ]
36
- extractor.series_data(tl_data).should == {
36
+ extractor.series_data(tl_data).should == [{
37
37
  name: 'simple sensor',
38
38
  data: [{x: 1000, y: 11}, {x: 2000, y: 22}]
39
- }
39
+ }]
40
40
  end
41
41
 
42
42
  end
@@ -30,7 +30,7 @@ describe PulseMeter::Visualize::Widget do
30
30
  end
31
31
 
32
32
  let(:widgets) do
33
- [:line, :spline, :area, :pie].each_with_object({}) do |type, h|
33
+ [:line, :area, :pie].each_with_object({}) do |type, h|
34
34
  w = PulseMeter::Visualize::DSL::Widget.new(type, widget_name)
35
35
  add_widget_settings(w)
36
36
  h[type] = w.to_widget
@@ -66,20 +66,17 @@ describe PulseMeter::Visualize::Widget do
66
66
  it "should contain valid pie series" do
67
67
 
68
68
  Timecop.freeze(@current_time) do
69
- widgets[:pie].data[:series].should == [{
70
- type: :pie,
71
- name: values_label,
72
- data: [{
73
- name: a_sensor.annotation,
74
- color: a_color,
75
- y: 12
76
- }, {
77
- name: b_sensor.annotation,
78
- color: b_color,
79
- y: 33
80
- }]
81
-
82
- }]
69
+ widgets[:pie].data[:series].should ==
70
+ {
71
+ data: [
72
+ [a_sensor.annotation, 12],
73
+ [b_sensor.annotation, 33]
74
+ ],
75
+ options: [
76
+ {color: a_color},
77
+ {color: b_color}
78
+ ]
79
+ }
83
80
  end
84
81
 
85
82
  end
@@ -90,34 +87,28 @@ describe PulseMeter::Visualize::Widget do
90
87
 
91
88
  Timecop.freeze(@current_time) do
92
89
 
93
- [:line, :spline, :area].each do |type|
90
+ [:line, :area].each do |type|
94
91
 
95
92
  widget = widgets[type]
96
- widget.data[:series].should == [{
97
- name: a_sensor.annotation,
98
- color: a_color,
99
- data: [{x: interval_start.to_i * 1000, y: 12}]
100
- }, {
101
- name: b_sensor.annotation,
102
- color: b_color,
103
- data: [{x: interval_start.to_i * 1000, y: 33}]
104
- }]
93
+ widget.data[:series].should ==
94
+ {
95
+ titles: [a_sensor.annotation, b_sensor.annotation],
96
+ rows: [[interval_start.to_i * 1000, 12, 33]],
97
+ options: [
98
+ {color: a_color},
99
+ {color: b_color}
100
+ ]
101
+ }
105
102
  end
106
103
  end
107
104
  end
108
105
 
109
106
  it "should accept custom timespan" do
110
107
  Timecop.freeze(@current_time + interval) do
111
- [:line, :spline, :area].each do |type|
108
+ [:line, :area].each do |type|
112
109
  widget = widgets[type]
113
- widget.data(timespan: timespan)[:series].each do |s|
114
- s[:data].size.should == 1
115
- end
116
-
117
- widget.data(timespan: timespan + interval)[:series].each do |s|
118
- s[:data].size.should == 2
119
- end
120
-
110
+ widget.data(timespan: timespan)[:series][:rows].size.should == 1
111
+ widget.data(timespan: timespan + interval)[:series][:rows].size.should == 2
121
112
  end
122
113
  end
123
114
  end
@@ -128,4 +119,4 @@ describe PulseMeter::Visualize::Widget do
128
119
  end
129
120
 
130
121
  end
131
- end
122
+ end
@@ -8,7 +8,7 @@ describe PulseMeter::Visualizer do
8
8
  l.title "My Gauges"
9
9
 
10
10
  l.page "Dashboard" do |p|
11
- p.spline :convertion do |c|
11
+ p.line :convertion do |c|
12
12
  c.sensor :adv_clicks, color: :green
13
13
  c.sensor :adv_shows, color: :red
14
14
  end
@@ -23,7 +23,7 @@ describe PulseMeter::Visualizer do
23
23
  end
24
24
 
25
25
  l.page "Request stats" do |p|
26
- p.spline :rph_total, sensor: :rph_total
26
+ p.line :rph_total, sensor: :rph_total
27
27
  p.line :rph_main_page, sensor: :rph_main_page
28
28
  p.line :request_time_p95_hour
29
29
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pulse-meter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-06-15 00:00:00.000000000 Z
13
+ date: 2012-06-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: gon-sinatra
@@ -360,7 +360,6 @@ files:
360
360
  - lib/pulse-meter/visualize/public/js/application.js
361
361
  - lib/pulse-meter/visualize/public/js/backbone-min.js
362
362
  - lib/pulse-meter/visualize/public/js/bootstrap.js
363
- - lib/pulse-meter/visualize/public/js/highcharts.js
364
363
  - lib/pulse-meter/visualize/public/js/jquery-1.7.2.min.js
365
364
  - lib/pulse-meter/visualize/public/js/json2.js
366
365
  - lib/pulse-meter/visualize/public/js/underscore-min.js
@@ -424,7 +423,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
424
423
  version: '0'
425
424
  segments:
426
425
  - 0
427
- hash: -1712600594864838902
426
+ hash: 2820697990026524466
428
427
  requirements: []
429
428
  rubyforge_project:
430
429
  rubygems_version: 1.8.24