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