class PulseMeter::DygraphsVisualize::DSL::Base
Public Class Methods
array_extender(name, &block)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 68 def array_extender(name, &block) define_method(name) do |val| @opts[name] ||=[] block.call(val) if block @opts[name] << val end end
array_setter(name)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 39 def array_setter(name) define_method(name) do |val| @opts[name] = Array[*val] end end
bool_setter(name)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 33 def bool_setter(name) define_method(name) do |val| @opts[name] = !!val end end
data_class()
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 89 def data_class @data_class || PulseMeter::DygraphsVisualize::Base end
data_class=(klass)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 93 def data_class=(klass) raise BadDataClass unless klass.is_a?(Class) && klass <= PulseMeter::DygraphsVisualize::Base @data_class = klass end
deprecated_setter(name)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 20 def deprecated_setter(name) define_method(name) do |*args| STDERR.puts "DEPRECATION: #{name} DSL helper does not take any effect anymore." end end
dsl_array_extender(collection_name, name, klass)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 82 def dsl_array_extender(collection_name, name, klass) define_method(name) do |*args, &block| @opts[collection_name] ||= DArray.new @opts[collection_name] << create_dsl_obj(args, klass, block) end end
dsl_setter(name, klass)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 76 def dsl_setter(name, klass) define_method(name) do |*args, &block| @opts[name] = create_dsl_obj(args, klass, block) end end
hash_extender(name, &block)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 61 def hash_extender(name, &block) define_method(name) do |val| @opts[name] ||= {} @opts[name].merge!(val) end end
int_setter(name, &block)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 53 def int_setter(name, &block) define_method(name) do |val| val = val.to_i block.call(val) if block @opts[name] = val end end
new()
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 9 def initialize @opts = {} end
setter(name, &block)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 26 def setter(name, &block) define_method(name) do |val| block.call(val) if block @opts[name] = val end end
string_setter(name, &block)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 45 def string_setter(name, &block) define_method(name) do |val| val = val.to_s block.call(val) if block @opts[name] = val end end
Public Instance Methods
create_dsl_obj(args, klass, block)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 100 def create_dsl_obj(args, klass, block) params, options = extract_params(args) dsl_obj = klass.new(*params) dsl_obj.process_args(options) block.call(dsl_obj) if block dsl_obj end
extract_params(args)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 108 def extract_params(args) opts = if args.last.is_a?(Hash) args.pop else {} end [args, opts] end
process_args(args)
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 13 def process_args(args) args.each_pair do |k, v| send(k, v) end end
to_data()
click to toggle source
# File lib/pulse_meter/dygraphs_visualize/dsl/base.rb, line 117 def to_data klass = self.class.data_class args = @opts.each_with_object({}) do |(k, v), acc| acc[k] = case v when PulseMeter::DygraphsVisualize::DSL::Base v.to_data when DArray v.map(&:to_data) else v end end klass.new(args) end