class MQTT::Homie::DeviceBuilder
Public Class Methods
new(options = {})
click to toggle source
# File lib/mqtt/homie/device_builder.rb, line 4 def initialize(options = {}) @nodes = [] @device_options = options end
Public Instance Methods
build()
click to toggle source
create device and return it
# File lib/mqtt/homie/device_builder.rb, line 10 def build build_node if @node_data MQTT::Homie::Device.new(@device_options.merge(nodes: @nodes)) end
node(options = {})
click to toggle source
# File lib/mqtt/homie/device_builder.rb, line 15 def node(options = {}) raise "node key/value list expected" unless options.kind_of?(Hash) build_node if @node_data @node_data = options @properties = [] self end
property(options = {})
click to toggle source
# File lib/mqtt/homie/device_builder.rb, line 23 def property(options = {}) raise "property key/value list expected" unless options.kind_of?(Hash) @properties << MQTT::Homie::Property.new(options) self end
Private Instance Methods
build_node()
click to toggle source
# File lib/mqtt/homie/device_builder.rb, line 31 def build_node @nodes << MQTT::Homie::Node.new(@node_data.merge(properties: @properties)) @node_data = nil @propertes = nil end