class PulseMeter::DygraphsVisualize::Layout
Constants
- DEFAULT_TIMESPAN_IN_INTERVALS
Public Class Methods
new(opts)
click to toggle source
Calls superclass method
PulseMeter::DygraphsVisualize::Base::new
# File lib/pulse_meter/dygraphs_visualize/layout.rb, line 6 def initialize(opts) super @opts[:pages] ||= [] @opts[:dygraphs_options] ||= {} end
Public Instance Methods
dynamic_widget(args)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/layout.rb, line 59 def dynamic_widget(args) sensor_names = args.delete(:sensors) sensors = sensor_names.map{|n| PulseMeter::Sensor::Base.restore(n)} timespan = if args[:timespan] && args[:timespan] > 0 args[:timespan].to_i else sensors.first.interval * DEFAULT_TIMESPAN_IN_INTERVALS end type = args.delete(:type) widget_dsl_class = constantize("PulseMeter::DygraphsVisualize::DSL::Widgets::#{type.capitalize}") widget = widget_dsl_class.new('Dynamic Widget') widget.timespan(timespan) sensor_names.each{|n| widget.sensor(n)} widget.to_data.data(args.merge(id: 1, timespan: timespan)) end
options()
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/layout.rb, line 28 def options { use_utc: use_utc, dygraphs_options: dygraphs_options } end
page_infos()
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/layout.rb, line 16 def page_infos res = [] pages.each_with_index do |p, i| res << { id: i + 1, title: p.title, dygraphs_options: p.dygraphs_options } end res end
sensor_list()
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/layout.rb, line 43 def sensor_list PulseMeter::Sensor::Base .list_objects .select{|s| s.is_a?(PulseMeter::Sensor::Timeline)} .map do |s| { id: s.name, annotation: s.annotation || '', type: s.class.to_s.split('::').last, interval: s.interval } end end
to_app()
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/layout.rb, line 12 def to_app PulseMeter::DygraphsVisualize::App.new(self) end
widget(page_id, widget_id, opts = {})
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/layout.rb, line 35 def widget(page_id, widget_id, opts = {}) pages[page_id].widget_data(widget_id, opts) end
widgets(page_id)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/layout.rb, line 39 def widgets(page_id) pages[page_id].widget_datas end