pulse-meter 0.4.9 → 0.4.11

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 (192) hide show
  1. data/Rakefile +1 -48
  2. data/lib/pulse-meter.rb +1 -68
  3. data/lib/pulse-meter/visualizer.rb +1 -40
  4. data/pulse-meter.gemspec +4 -26
  5. metadata +10 -558
  6. data/Procfile +0 -3
  7. data/bin/pulse +0 -6
  8. data/examples/basic.ru +0 -145
  9. data/examples/basic_sensor_data.rb +0 -96
  10. data/examples/udp_benchmark.rb +0 -29
  11. data/lib/cmd.rb +0 -171
  12. data/lib/pulse-meter/command_aggregator/async.rb +0 -83
  13. data/lib/pulse-meter/command_aggregator/sync.rb +0 -18
  14. data/lib/pulse-meter/command_aggregator/udp.rb +0 -48
  15. data/lib/pulse-meter/extensions/enumerable.rb +0 -24
  16. data/lib/pulse-meter/mixins/cmd.rb +0 -46
  17. data/lib/pulse-meter/mixins/dumper.rb +0 -87
  18. data/lib/pulse-meter/mixins/utils.rb +0 -155
  19. data/lib/pulse-meter/observer.rb +0 -120
  20. data/lib/pulse-meter/observer/extended.rb +0 -34
  21. data/lib/pulse-meter/sensor.rb +0 -61
  22. data/lib/pulse-meter/sensor/base.rb +0 -88
  23. data/lib/pulse-meter/sensor/configuration.rb +0 -106
  24. data/lib/pulse-meter/sensor/counter.rb +0 -39
  25. data/lib/pulse-meter/sensor/hashed_counter.rb +0 -36
  26. data/lib/pulse-meter/sensor/hashed_indicator.rb +0 -24
  27. data/lib/pulse-meter/sensor/indicator.rb +0 -35
  28. data/lib/pulse-meter/sensor/multi.rb +0 -97
  29. data/lib/pulse-meter/sensor/timeline.rb +0 -236
  30. data/lib/pulse-meter/sensor/timeline_reduce.rb +0 -68
  31. data/lib/pulse-meter/sensor/timelined/average.rb +0 -32
  32. data/lib/pulse-meter/sensor/timelined/counter.rb +0 -23
  33. data/lib/pulse-meter/sensor/timelined/hashed_counter.rb +0 -31
  34. data/lib/pulse-meter/sensor/timelined/hashed_indicator.rb +0 -30
  35. data/lib/pulse-meter/sensor/timelined/indicator.rb +0 -23
  36. data/lib/pulse-meter/sensor/timelined/max.rb +0 -19
  37. data/lib/pulse-meter/sensor/timelined/median.rb +0 -14
  38. data/lib/pulse-meter/sensor/timelined/min.rb +0 -19
  39. data/lib/pulse-meter/sensor/timelined/multi_percentile.rb +0 -34
  40. data/lib/pulse-meter/sensor/timelined/percentile.rb +0 -22
  41. data/lib/pulse-meter/sensor/timelined/uniq_counter.rb +0 -22
  42. data/lib/pulse-meter/sensor/timelined/zset_based.rb +0 -38
  43. data/lib/pulse-meter/sensor/uniq_counter.rb +0 -24
  44. data/lib/pulse-meter/server.rb +0 -0
  45. data/lib/pulse-meter/server/command_line_options.rb +0 -0
  46. data/lib/pulse-meter/server/config_options.rb +0 -0
  47. data/lib/pulse-meter/server/sensors.rb +0 -0
  48. data/lib/pulse-meter/udp_server.rb +0 -45
  49. data/lib/pulse-meter/version.rb +0 -3
  50. data/lib/pulse-meter/visualize/app.rb +0 -78
  51. data/lib/pulse-meter/visualize/base.rb +0 -15
  52. data/lib/pulse-meter/visualize/coffee/application.coffee +0 -40
  53. data/lib/pulse-meter/visualize/coffee/collections/page_info_list.coffee +0 -17
  54. data/lib/pulse-meter/visualize/coffee/collections/sensor_info_list.coffee +0 -4
  55. data/lib/pulse-meter/visualize/coffee/collections/widget_list.coffee +0 -14
  56. data/lib/pulse-meter/visualize/coffee/extensions.coffee +0 -26
  57. data/lib/pulse-meter/visualize/coffee/models/dinamic_widget.coffee +0 -34
  58. data/lib/pulse-meter/visualize/coffee/models/page_info.coffee +0 -2
  59. data/lib/pulse-meter/visualize/coffee/models/sensor_info.coffee +0 -2
  60. data/lib/pulse-meter/visualize/coffee/models/widget.coffee +0 -54
  61. data/lib/pulse-meter/visualize/coffee/presenters/area.coffee +0 -2
  62. data/lib/pulse-meter/visualize/coffee/presenters/gauge.coffee +0 -11
  63. data/lib/pulse-meter/visualize/coffee/presenters/line.coffee +0 -2
  64. data/lib/pulse-meter/visualize/coffee/presenters/pie.coffee +0 -20
  65. data/lib/pulse-meter/visualize/coffee/presenters/series.coffee +0 -44
  66. data/lib/pulse-meter/visualize/coffee/presenters/table.coffee +0 -10
  67. data/lib/pulse-meter/visualize/coffee/presenters/timeline.coffee +0 -13
  68. data/lib/pulse-meter/visualize/coffee/presenters/widget.coffee +0 -65
  69. data/lib/pulse-meter/visualize/coffee/router.coffee +0 -21
  70. data/lib/pulse-meter/visualize/coffee/views/dynamic_chart.coffee +0 -91
  71. data/lib/pulse-meter/visualize/coffee/views/dynamic_widget.coffee +0 -58
  72. data/lib/pulse-meter/visualize/coffee/views/page_title.coffee +0 -17
  73. data/lib/pulse-meter/visualize/coffee/views/page_titles.coffee +0 -15
  74. data/lib/pulse-meter/visualize/coffee/views/sensor_info_list.coffee +0 -19
  75. data/lib/pulse-meter/visualize/coffee/views/widget.coffee +0 -99
  76. data/lib/pulse-meter/visualize/coffee/views/widget_chart.coffee +0 -13
  77. data/lib/pulse-meter/visualize/coffee/views/widget_list.coffee +0 -15
  78. data/lib/pulse-meter/visualize/dsl/base.rb +0 -131
  79. data/lib/pulse-meter/visualize/dsl/errors.rb +0 -40
  80. data/lib/pulse-meter/visualize/dsl/layout.rb +0 -27
  81. data/lib/pulse-meter/visualize/dsl/page.rb +0 -33
  82. data/lib/pulse-meter/visualize/dsl/sensor.rb +0 -20
  83. data/lib/pulse-meter/visualize/dsl/widget.rb +0 -37
  84. data/lib/pulse-meter/visualize/dsl/widgets/area.rb +0 -20
  85. data/lib/pulse-meter/visualize/dsl/widgets/gauge.rb +0 -12
  86. data/lib/pulse-meter/visualize/dsl/widgets/line.rb +0 -21
  87. data/lib/pulse-meter/visualize/dsl/widgets/pie.rb +0 -16
  88. data/lib/pulse-meter/visualize/dsl/widgets/table.rb +0 -19
  89. data/lib/pulse-meter/visualize/layout.rb +0 -79
  90. data/lib/pulse-meter/visualize/page.rb +0 -25
  91. data/lib/pulse-meter/visualize/public/css/application.css +0 -56
  92. data/lib/pulse-meter/visualize/public/css/bootstrap.css +0 -4883
  93. data/lib/pulse-meter/visualize/public/css/bootstrap.min.css +0 -729
  94. data/lib/pulse-meter/visualize/public/css/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  95. data/lib/pulse-meter/visualize/public/css/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  96. data/lib/pulse-meter/visualize/public/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  97. data/lib/pulse-meter/visualize/public/css/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  98. data/lib/pulse-meter/visualize/public/css/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  99. data/lib/pulse-meter/visualize/public/css/images/ui-bg_glass_75_ffffff_1x400.png +0 -0
  100. data/lib/pulse-meter/visualize/public/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  101. data/lib/pulse-meter/visualize/public/css/images/ui-bg_inset-soft_95_fef1ec_1x100.png +0 -0
  102. data/lib/pulse-meter/visualize/public/css/images/ui-icons_222222_256x240.png +0 -0
  103. data/lib/pulse-meter/visualize/public/css/images/ui-icons_2e83ff_256x240.png +0 -0
  104. data/lib/pulse-meter/visualize/public/css/images/ui-icons_454545_256x240.png +0 -0
  105. data/lib/pulse-meter/visualize/public/css/images/ui-icons_888888_256x240.png +0 -0
  106. data/lib/pulse-meter/visualize/public/css/images/ui-icons_cd0a0a_256x240.png +0 -0
  107. data/lib/pulse-meter/visualize/public/css/images/ui-icons_f6cf3b_256x240.png +0 -0
  108. data/lib/pulse-meter/visualize/public/css/jquery-ui-1.8.16.bootstrap.css +0 -1320
  109. data/lib/pulse-meter/visualize/public/favicon.ico +0 -208
  110. data/lib/pulse-meter/visualize/public/img/glyphicons-halflings-white.png +0 -0
  111. data/lib/pulse-meter/visualize/public/img/glyphicons-halflings.png +0 -0
  112. data/lib/pulse-meter/visualize/public/js/application.js +0 -973
  113. data/lib/pulse-meter/visualize/public/js/backbone-min.js +0 -38
  114. data/lib/pulse-meter/visualize/public/js/bootstrap.js +0 -1835
  115. data/lib/pulse-meter/visualize/public/js/jquery-1.7.2.min.js +0 -4
  116. data/lib/pulse-meter/visualize/public/js/jquery-ui-1.8.16.bootstrap.min.js +0 -791
  117. data/lib/pulse-meter/visualize/public/js/jquery-ui-1.8.23.custom.min.js +0 -21
  118. data/lib/pulse-meter/visualize/public/js/jquery-ui-timepicker-addon.js +0 -1687
  119. data/lib/pulse-meter/visualize/public/js/json2.js +0 -487
  120. data/lib/pulse-meter/visualize/public/js/underscore-min.js +0 -32
  121. data/lib/pulse-meter/visualize/sensor.rb +0 -63
  122. data/lib/pulse-meter/visualize/series_extractor.rb +0 -107
  123. data/lib/pulse-meter/visualize/views/main.haml +0 -30
  124. data/lib/pulse-meter/visualize/views/sensors.haml +0 -76
  125. data/lib/pulse-meter/visualize/views/widgets/area.haml +0 -53
  126. data/lib/pulse-meter/visualize/views/widgets/extend_options.haml +0 -11
  127. data/lib/pulse-meter/visualize/views/widgets/gauge.haml +0 -13
  128. data/lib/pulse-meter/visualize/views/widgets/line.haml +0 -54
  129. data/lib/pulse-meter/visualize/views/widgets/pie.haml +0 -13
  130. data/lib/pulse-meter/visualize/views/widgets/table.haml +0 -45
  131. data/lib/pulse-meter/visualize/widget.rb +0 -38
  132. data/lib/pulse-meter/visualize/widgets/gauge.rb +0 -47
  133. data/lib/pulse-meter/visualize/widgets/pie.rb +0 -36
  134. data/lib/pulse-meter/visualize/widgets/timeline.rb +0 -114
  135. data/spec/pulse_meter/command_aggregator/async_spec.rb +0 -53
  136. data/spec/pulse_meter/command_aggregator/sync_spec.rb +0 -25
  137. data/spec/pulse_meter/command_aggregator/udp_spec.rb +0 -45
  138. data/spec/pulse_meter/extensions/enumerable_spec.rb +0 -58
  139. data/spec/pulse_meter/mixins/cmd_spec.rb +0 -117
  140. data/spec/pulse_meter/mixins/dumper_spec.rb +0 -162
  141. data/spec/pulse_meter/mixins/utils_spec.rb +0 -212
  142. data/spec/pulse_meter/observer/extended_spec.rb +0 -92
  143. data/spec/pulse_meter/observer_spec.rb +0 -207
  144. data/spec/pulse_meter/sensor/base_spec.rb +0 -106
  145. data/spec/pulse_meter/sensor/configuration_spec.rb +0 -103
  146. data/spec/pulse_meter/sensor/counter_spec.rb +0 -54
  147. data/spec/pulse_meter/sensor/hashed_counter_spec.rb +0 -43
  148. data/spec/pulse_meter/sensor/hashed_indicator_spec.rb +0 -39
  149. data/spec/pulse_meter/sensor/indicator_spec.rb +0 -43
  150. data/spec/pulse_meter/sensor/multi_spec.rb +0 -137
  151. data/spec/pulse_meter/sensor/timeline_spec.rb +0 -88
  152. data/spec/pulse_meter/sensor/timelined/average_spec.rb +0 -6
  153. data/spec/pulse_meter/sensor/timelined/counter_spec.rb +0 -6
  154. data/spec/pulse_meter/sensor/timelined/hashed_counter_spec.rb +0 -8
  155. data/spec/pulse_meter/sensor/timelined/hashed_indicator_spec.rb +0 -8
  156. data/spec/pulse_meter/sensor/timelined/indicator_spec.rb +0 -6
  157. data/spec/pulse_meter/sensor/timelined/max_spec.rb +0 -7
  158. data/spec/pulse_meter/sensor/timelined/median_spec.rb +0 -7
  159. data/spec/pulse_meter/sensor/timelined/min_spec.rb +0 -7
  160. data/spec/pulse_meter/sensor/timelined/multi_percentile_spec.rb +0 -21
  161. data/spec/pulse_meter/sensor/timelined/percentile_spec.rb +0 -17
  162. data/spec/pulse_meter/sensor/timelined/uniq_counter_spec.rb +0 -9
  163. data/spec/pulse_meter/sensor/uniq_counter_spec.rb +0 -28
  164. data/spec/pulse_meter/udp_server_spec.rb +0 -36
  165. data/spec/pulse_meter/visualize/app_spec.rb +0 -27
  166. data/spec/pulse_meter/visualize/dsl/layout_spec.rb +0 -64
  167. data/spec/pulse_meter/visualize/dsl/page_spec.rb +0 -62
  168. data/spec/pulse_meter/visualize/dsl/sensor_spec.rb +0 -30
  169. data/spec/pulse_meter/visualize/dsl/widget_spec.rb +0 -6
  170. data/spec/pulse_meter/visualize/dsl/widgets/area_spec.rb +0 -44
  171. data/spec/pulse_meter/visualize/dsl/widgets/gauge_spec.rb +0 -22
  172. data/spec/pulse_meter/visualize/dsl/widgets/line_spec.rb +0 -44
  173. data/spec/pulse_meter/visualize/dsl/widgets/pie_spec.rb +0 -35
  174. data/spec/pulse_meter/visualize/dsl/widgets/table_spec.rb +0 -36
  175. data/spec/pulse_meter/visualize/layout_spec.rb +0 -54
  176. data/spec/pulse_meter/visualize/page_spec.rb +0 -153
  177. data/spec/pulse_meter/visualize/sensor_spec.rb +0 -120
  178. data/spec/pulse_meter/visualize/series_extractor_spec.rb +0 -80
  179. data/spec/pulse_meter/visualize/widgets/area_spec.rb +0 -6
  180. data/spec/pulse_meter/visualize/widgets/gauge_spec.rb +0 -63
  181. data/spec/pulse_meter/visualize/widgets/line_spec.rb +0 -6
  182. data/spec/pulse_meter/visualize/widgets/pie_spec.rb +0 -73
  183. data/spec/pulse_meter/visualize/widgets/table_spec.rb +0 -6
  184. data/spec/pulse_meter/visualizer_spec.rb +0 -42
  185. data/spec/pulse_meter_spec.rb +0 -73
  186. data/spec/shared_examples/dsl_widget.rb +0 -106
  187. data/spec/shared_examples/timeline_sensor.rb +0 -439
  188. data/spec/shared_examples/timelined_subclass.rb +0 -23
  189. data/spec/shared_examples/widget.rb +0 -97
  190. data/spec/spec_helper.rb +0 -40
  191. data/spec/support/matchers.rb +0 -34
  192. data/spec/support/observered.rb +0 -40
@@ -1,58 +0,0 @@
1
- DynamicWidgetView = Backbone.View.extend {
2
- tagName: 'div'
3
-
4
- initialize: (options) ->
5
- @pageInfos = options['pageInfos']
6
- @sensorInfo = new SensorInfoList
7
-
8
- @sensorListView = new SensorInfoListView(@sensorInfo)
9
- @chartView = new DynamicChartView {pageInfos: @pageInfos}
10
-
11
- @$el.html(@template()())
12
-
13
- @$el.find('#sensor-list-area').append(@sensorListView.el)
14
-
15
- @chartView.render()
16
- @$el.find('#dynamic-plotarea').append(@chartView.el)
17
-
18
- events: {
19
- "click #sensor-controls #refresh": 'refresh'
20
- "click #sensor-controls #draw": 'drawChart'
21
- }
22
-
23
- template: ->
24
- _.template($("#dynamic-widget").html())
25
-
26
- errorTemplate: -> _.template($("#dynamic-widget-error").html())
27
-
28
- error: (error)->
29
- @$el.find('#errors').append(@errorTemplate()(error: error))
30
-
31
- refresh: ->
32
- @sensorInfo.fetch()
33
-
34
- intervalsEqual: (sensors) ->
35
- interval = sensors[0].get('interval')
36
- badIntervals = _.filter(sensors, (s) ->
37
- s.get('interval') != interval
38
- )
39
- badIntervals.length == 0
40
-
41
- drawChart: ->
42
- selectedSensors = @sensorListView.selectedSensors()
43
- return unless selectedSensors.length > 0
44
-
45
- unless @intervalsEqual(selectedSensors)
46
- @error('Selected sensors have different intervals')
47
- return
48
-
49
- type = @$el.find('#chart-type').val()
50
- @chartView.draw(selectedSensors, type)
51
-
52
- render: (container) ->
53
- container.empty()
54
- container.append(@$el)
55
- @sensorInfo.fetch()
56
- @chartView.update()
57
-
58
- }
@@ -1,17 +0,0 @@
1
- PageTitleView = Backbone.View.extend {
2
- tagName: 'li'
3
-
4
- template: _.template('<a href="#/pages/<%= id %>"><%= title %></a>')
5
-
6
- initialize: ->
7
- @model.bind 'change', @render, this
8
- @model.bind 'destroy', @remove, this
9
-
10
- render: ->
11
- @$el.html @template(@model.toJSON())
12
- if @model.get('selected')
13
- @$el.addClass('active')
14
- else
15
- @$el.removeClass('active')
16
- }
17
-
@@ -1,15 +0,0 @@
1
- PageTitlesView = Backbone.View.extend {
2
- initialize: (@pageInfos) ->
3
- @pageInfos.bind 'reset', @render, this
4
-
5
- addOne: (pageInfo) ->
6
- view = new PageTitleView {
7
- model: pageInfo
8
- }
9
- view.render()
10
- $('#page-titles').append(view.el)
11
-
12
- render: ->
13
- $('#page-titles').empty()
14
- @pageInfos.each(@addOne)
15
- }
@@ -1,19 +0,0 @@
1
- SensorInfoListView = Backbone.View.extend {
2
- tagName: 'div'
3
-
4
- template: ->
5
- _.template($("#sensor-list").html())
6
-
7
- initialize: (sensorInfo) ->
8
- @sensorInfo = sensorInfo
9
- @sensorInfo.bind 'reset', @render, this
10
-
11
- render: ->
12
- @$el.html @template()({sensors: @sensorInfo.toJSON()})
13
-
14
- selectedSensors: ->
15
- checked = _.filter @$el.find('.sensor-box'), (el) -> $(el).is(':checked')
16
- ids = {}
17
- _.each checked, (box) -> ids[box.id] = true
18
- selected = @sensorInfo.filter (sensor) -> ids[sensor.id]
19
- }
@@ -1,99 +0,0 @@
1
- WidgetView = Backbone.View.extend {
2
- tagName: 'div'
3
-
4
- template: (args) ->
5
- _.template($(".widget-template[data-widget-type=\"#{@model.get('type')}\"]").html())(args)
6
-
7
- initialize: (options) ->
8
- @pageInfos = options['pageInfos']
9
- @model.bind('destroy', @remove, this)
10
- @model.bind('redraw', @updateChart, this)
11
-
12
- events: {
13
- "click #refresh": 'refresh'
14
- "click #need-refresh": 'setRefresh'
15
- "click #extend-timespan": 'extendTimespan'
16
- "click #reset-timespan": 'resetTimespan'
17
- "change #start-time input": 'maybeEnableStopTime'
18
- "click #set-interval": 'setTimelineInterval'
19
- }
20
-
21
- refresh: ->
22
- @model.forceUpdate()
23
-
24
- setRefresh: ->
25
- needRefresh = @$el.find('#need-refresh').is(":checked")
26
- @model.setRefresh(needRefresh)
27
- true
28
-
29
- extendTimespan: ->
30
- select = @$el.find("#extend-timespan-val")
31
- val = select.first().val()
32
- @model.increaseTimespan(parseInt(val))
33
-
34
- setTimelineInterval: ->
35
- start = @unixtimeFromDatepicker("#start-time input")
36
- end = @unixtimeFromDatepicker("#end-time input")
37
- @model.setStartTime(start)
38
- @model.setEndTime(end)
39
-
40
- maybeEnableStopTime: ->
41
- date = @dateFromDatepicker("#start-time input")
42
- disabled = if date then false else true
43
- @$el.find("#end-time input").prop("disabled", disabled)
44
-
45
- resetTimespan: ->
46
- @model.resetTimespan()
47
-
48
- renderChart: ->
49
- @chartView.render()
50
-
51
- updateChart: ->
52
- @chartView.updateData(@cutoffMin(), @cutoffMax())
53
-
54
- setIds: ->
55
- @$el.find('#configure-button').prop('href', "#configure-#{@model.id}")
56
- @$el.find('#configure').attr('id', "configure-#{@model.id}")
57
- @$el.find('#start-time input').attr('id', "start-time-#{@model.id}")
58
- @$el.find('#end-time input').attr('id', "end-time-#{@model.id}")
59
-
60
- render: ->
61
- @$el.html @template(@model.toJSON())
62
- @setIds()
63
- @chartView = new WidgetChartView {
64
- pageInfos: @pageInfos
65
- model: @model
66
- }
67
- @$el.find("#plotarea").append(@chartView.el)
68
- @$el.addClass("span#{@model.get('width')}")
69
- @initDatePickers()
70
-
71
- initDatePickers: ->
72
- @$el.find(".datepicker").each (i) ->
73
- $(this).datetimepicker
74
- showOtherMonths: true
75
- selectOtherMonths: true
76
- @$el.find("#end-time input").prop("disabled", true)
77
-
78
- cutoffMin: ->
79
- val = parseFloat(@controlValue('#cutoff-min'))
80
- if _.isNaN(val) then null else val
81
-
82
- cutoffMax: ->
83
- val = parseFloat(@controlValue('#cutoff-max'))
84
- if _.isNaN(val) then null else val
85
-
86
- controlValue: (id) ->
87
- val = @$el.find(id).first().val()
88
-
89
- dateFromDatepicker: (id) ->
90
- @$el.find(id).datetimepicker("getDate")
91
-
92
- unixtimeFromDatepicker: (id) ->
93
- date = @dateFromDatepicker(id)
94
- if date
95
- date.getTime() / 1000
96
- else
97
- null
98
-
99
- }
@@ -1,13 +0,0 @@
1
- WidgetChartView = Backbone.View.extend {
2
- tagName: 'div'
3
-
4
- initialize: (options) ->
5
- @pageInfos = options['pageInfos']
6
- @model.bind 'destroy', @remove, this
7
-
8
- updateData: (min, max) ->
9
- @presenter.draw(min, max)
10
-
11
- render: ->
12
- @presenter = WidgetPresenter.create(@pageInfos, @model, @el)
13
- }
@@ -1,15 +0,0 @@
1
- WidgetListView = Backbone.View.extend {
2
- initialize: (options) ->
3
- @widgetList = options['widgetList']
4
- @pageInfos = options['pageInfos']
5
- @widgetList.bind 'reset', @render, this
6
-
7
- render: ->
8
- container = $('#widgets')
9
- container.empty()
10
- @widgetList.each (w) =>
11
- view = new WidgetView { pageInfos: @pageInfos, model: w }
12
- view.render()
13
- container.append(view.el)
14
- view.renderChart()
15
- }
@@ -1,131 +0,0 @@
1
- module PulseMeter
2
- module Visualize
3
- module DSL
4
- class DArray < Array; end
5
- class BadDataClass < PulseMeter::Visualize::DSL::Error; end
6
- class Base
7
- include PulseMeter::Mixins::Utils
8
-
9
- def initialize
10
- @opts = {}
11
- end
12
-
13
- def process_args(args)
14
- args.each_pair do |k, v|
15
- send(k, v)
16
- end
17
- end
18
-
19
- class << self
20
-
21
- def deprecated_setter(name)
22
- define_method(name) do |*args|
23
- STDERR.puts "DEPRECATION: #{name} DSL helper does not take any effect anymore."
24
- end
25
- end
26
-
27
- def setter(name, &block)
28
- define_method(name) do |val|
29
- block.call(val) if block
30
- @opts[name] = val
31
- end
32
- end
33
-
34
- def bool_setter(name)
35
- define_method(name) do |val|
36
- @opts[name] = !!val
37
- end
38
- end
39
-
40
- def string_setter(name, &block)
41
- define_method(name) do |val|
42
- val = val.to_s
43
- block.call(val) if block
44
- @opts[name] = val
45
- end
46
- end
47
-
48
- def int_setter(name, &block)
49
- define_method(name) do |val|
50
- val = val.to_i
51
- block.call(val) if block
52
- @opts[name] = val
53
- end
54
- end
55
-
56
- def hash_extender(name, &block)
57
- define_method(name) do |val|
58
- @opts[name] ||= {}
59
- @opts[name].merge!(val)
60
- end
61
- end
62
-
63
- def array_extender(name, &block)
64
- define_method(name) do |val|
65
- @opts[name] ||=[]
66
- block.call(val) if block
67
- @opts[name] << val
68
- end
69
- end
70
-
71
- def dsl_setter(name, klass)
72
- define_method(name) do |*args, &block|
73
- @opts[name] = create_dsl_obj(args, klass, block)
74
- end
75
- end
76
-
77
- def dsl_array_extender(collection_name, name, klass)
78
- define_method(name) do |*args, &block|
79
- @opts[collection_name] ||= DArray.new
80
- @opts[collection_name] << create_dsl_obj(args, klass, block)
81
- end
82
- end
83
-
84
- def data_class
85
- @data_class || PulseMeter::Visualize::Base
86
- end
87
-
88
- def data_class=(klass)
89
- raise BadDataClass unless klass.is_a?(Class) && klass <= PulseMeter::Visualize::Base
90
- @data_class = klass
91
- end
92
-
93
- end
94
-
95
- def create_dsl_obj(args, klass, block)
96
- params, options = extract_params(args)
97
- dsl_obj = klass.new(*params)
98
- dsl_obj.process_args(options)
99
- block.call(dsl_obj) if block
100
- dsl_obj
101
- end
102
-
103
- def extract_params(args)
104
- opts = if args.last.is_a?(Hash)
105
- args.pop
106
- else
107
- {}
108
- end
109
- [args, opts]
110
- end
111
-
112
- def to_data
113
- klass = self.class.data_class
114
- args = @opts.each_with_object({}) do |(k, v), acc|
115
- acc[k] = case v
116
- when PulseMeter::Visualize::DSL::Base
117
- v.to_data
118
- when DArray
119
- v.map(&:to_data)
120
- else
121
- v
122
- end
123
- end
124
- klass.new(args)
125
- end
126
-
127
- end
128
- end
129
- end
130
- end
131
-
@@ -1,40 +0,0 @@
1
- module PulseMeter
2
- module Visualize
3
- module DSL
4
- class Error < StandardError; end
5
-
6
- class NoWidgets < Error; end
7
-
8
- class BadSensorName < Error
9
- def initialize(name)
10
- super("Bad sensor name: `#{name}'")
11
- end
12
- end
13
-
14
- class BadWidgetName < Error
15
- def initialize(name)
16
- super("Bad widget name: `#{name}'")
17
- end
18
- end
19
-
20
- class BadWidgetWidth < Error
21
- def initialize(width)
22
- super("Bad widget width: `#{width}'")
23
- end
24
- end
25
-
26
- class BadWidgetRedrawInterval < Error
27
- def initialize(redraw_interval)
28
- super("Bad widget redraw_interval: `#{redraw_interval}'")
29
- end
30
- end
31
-
32
- class BadWidgetTimeSpan < Error
33
- def initialize(timespan)
34
- super("Bad widget timespan: `#{timespan}'")
35
- end
36
- end
37
- end
38
- end
39
- end
40
-
@@ -1,27 +0,0 @@
1
- module PulseMeter
2
- module Visualize
3
- module DSL
4
- class Layout < Base
5
- DEFAULT_TITLE = "Pulse Meter"
6
-
7
- self.data_class = PulseMeter::Visualize::Layout
8
-
9
- def initialize
10
- super()
11
- self.title(DEFAULT_TITLE)
12
- self.use_utc(false)
13
- end
14
-
15
- string_setter :title
16
- bool_setter :use_utc
17
- hash_extender :gchart_options
18
-
19
- deprecated_setter :outlier_color
20
- deprecated_setter :highchart_options
21
-
22
- dsl_array_extender :pages, :page, PulseMeter::Visualize::DSL::Page
23
- end
24
- end
25
- end
26
- end
27
-