Class: PulseMeter::Visualize::DSL::Widget
- Inherits:
-
Object
- Object
- PulseMeter::Visualize::DSL::Widget
show all
- Includes:
- Mixins::Utils
- Defined in:
- lib/pulse-meter/visualize/dsl/widget.rb
Constant Summary
collapse
- DEFAULT_WIDTH =
10
- DEFAULT_TIMESPAN =
60 * 60 * 24
Instance Method Summary
collapse
#assert_positive_integer!, #assert_ranged_float!, #camelize, #camelize_keys, #constantize, #titleize, #uniqid
Constructor Details
#initialize(type, title = '') ⇒ Widget
Returns a new instance of Widget.
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/pulse-meter/visualize/dsl/widget.rb', line 10
def initialize(type, title = '')
raise BadWidgetType, type if type.to_s.empty?
@type = type
@title = title.to_s || ''
@values_label = ''
@width = DEFAULT_WIDTH
@sensors = []
@show_last_point = false
@redraw_interval = nil
@timespan = DEFAULT_TIMESPAN
end
|
Instance Method Details
#process_args(args) ⇒ Object
22
23
24
25
26
27
28
|
# File 'lib/pulse-meter/visualize/dsl/widget.rb', line 22
def process_args(args)
[:sensor, :title, :width, :values_label, :show_last_point, :redraw_interval, :timespan].each do |arg|
if args.has_key?(arg)
send(arg, args[arg])
end
end
end
|
#redraw_interval(new_redraw_interval) ⇒ Object
30
31
32
33
34
|
# File 'lib/pulse-meter/visualize/dsl/widget.rb', line 30
def redraw_interval(new_redraw_interval)
new_redraw_interval = new_redraw_interval.to_i
raise BadWidgetRedrawInterval, new_redraw_interval unless new_redraw_interval > 0
@redraw_interval = new_redraw_interval
end
|
#sensor(name, sensor_args = nil) ⇒ Object
61
62
63
64
65
|
# File 'lib/pulse-meter/visualize/dsl/widget.rb', line 61
def sensor(name, sensor_args = nil)
s = PulseMeter::Visualize::DSL::Sensor.new(name)
s.process_args(sensor_args) if sensor_args
@sensors << s
end
|
#show_last_point(new_show_last_point) ⇒ Object
36
37
38
|
# File 'lib/pulse-meter/visualize/dsl/widget.rb', line 36
def show_last_point(new_show_last_point)
@show_last_point = !!new_show_last_point
end
|
#timespan(new_timespan) ⇒ Object
40
41
42
43
44
|
# File 'lib/pulse-meter/visualize/dsl/widget.rb', line 40
def timespan(new_timespan)
new_timespan = new_timespan.to_i
raise BadWidgetTimeSpan, new_timespan unless new_timespan > 0
@timespan = new_timespan
end
|
#title(new_title) ⇒ Object
50
51
52
|
# File 'lib/pulse-meter/visualize/dsl/widget.rb', line 50
def title(new_title)
@title = new_title.to_s || ''
end
|
67
68
69
70
71
72
73
74
75
76
77
78
79
|
# File 'lib/pulse-meter/visualize/dsl/widget.rb', line 67
def to_widget
args = {
title: @title,
type: @type,
values_label: @values_label,
width: @width,
sensors: @sensors.map(&:to_sensor),
redraw_interval: @redraw_interval,
show_last_point: @show_last_point,
timespan: @timespan
}
PulseMeter::Visualize::Widget.new(args)
end
|
#values_label(new_label) ⇒ Object
46
47
48
|
# File 'lib/pulse-meter/visualize/dsl/widget.rb', line 46
def values_label(new_label)
@values_label = new_label.to_s
end
|
#width(new_width) ⇒ Object
54
55
56
57
58
59
|
# File 'lib/pulse-meter/visualize/dsl/widget.rb', line 54
def width(new_width)
raise BadWidgetWidth, new_width unless new_width.respond_to?(:to_i)
w = new_width.to_i
raise BadWidgetWidth, new_width unless w > 0 && w <= 10
@width = new_width.to_i
end
|