Class: OpenHAB::DSL::Things::ChannelBuilder
- Inherits:
-
Object
- Object
- OpenHAB::DSL::Things::ChannelBuilder
- Defined in:
- lib/openhab/dsl/things/builder.rb
Overview
The ChannelBuilder DSL allows you to customize a channel
Instance Attribute Summary collapse
-
#accepted_item_type ⇒ String
readonly
The accepted item type.
-
#auto_update_policy ⇒ Object
readonly
Returns the value of attribute auto_update_policy.
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#default_tags ⇒ Object
readonly
Returns the value of attribute default_tags.
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#label ⇒ Object
Returns the value of attribute label.
-
#properties ⇒ Object
readonly
Returns the value of attribute properties.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
-
#uid ⇒ Object
readonly
Returns the value of attribute uid.
Instance Method Summary collapse
-
#initialize(uid, type, label = nil, thing:, description: nil, group: nil, config: nil, properties: nil, default_tags: nil, auto_update_policy: nil, accepted_item_type: nil) ⇒ ChannelBuilder
constructor
Constructor for ChannelBuilder.
Constructor Details
#initialize(uid, type, label = nil, thing:, description: nil, group: nil, config: nil, properties: nil, default_tags: nil, auto_update_policy: nil, accepted_item_type: nil) ⇒ ChannelBuilder
Constructor for ChannelBuilder
This class is instantiated by the #channel method inside a Builder#thing block.
329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 |
# File 'lib/openhab/dsl/things/builder.rb', line 329 def initialize(uid, type, label = nil, thing:, description: nil, group: nil, config: nil, properties: nil, default_tags: nil, auto_update_policy: nil, accepted_item_type: nil) @thing = thing uid = uid.to_s uid_segments = uid.split(org.openhab.core.common.AbstractUID::SEPARATOR) group_segments = uid_segments.last.split(org.openhab.core.thing.ChannelUID::CHANNEL_GROUP_SEPARATOR) if group if group_segments.length == 2 group_segments[0] = group else group_segments.unshift(group) end uid_segments[-1] = group_segments.join(org.openhab.core.thing.ChannelUID::CHANNEL_GROUP_SEPARATOR) end @uid = org.openhab.core.thing.ChannelUID.new(thing.uid, uid_segments.last) unless type.is_a?(org.openhab.core.thing.type.ChannelTypeUID) type = org.openhab.core.thing.type.ChannelTypeUID.new(thing.uid.binding_id, type) end @type = type @label = label @config = config&.transform_keys(&:to_s) = Items::Tags.normalize(*Array.wrap()) @properties = properties&.transform_keys(&:to_s) @description = description @accepted_item_type = accepted_item_type return unless auto_update_policy @auto_update_policy = org.openhab.core.thing.type.AutoUpdatePolicy.value_of(auto_update_policy.to_s.upcase) end |
Instance Attribute Details
#accepted_item_type ⇒ String (readonly)
Returns The accepted item type.
388 389 390 |
# File 'lib/openhab/dsl/things/builder.rb', line 388 def accepted_item_type @accepted_item_type ||= type.channel_type&.item_type end |
#auto_update_policy ⇒ Object (readonly)
Returns the value of attribute auto_update_policy.
301 302 303 |
# File 'lib/openhab/dsl/things/builder.rb', line 301 def auto_update_policy @auto_update_policy end |
#config ⇒ Object (readonly)
Returns the value of attribute config.
301 302 303 |
# File 'lib/openhab/dsl/things/builder.rb', line 301 def config @config end |
#default_tags ⇒ Object (readonly)
Returns the value of attribute default_tags.
301 302 303 |
# File 'lib/openhab/dsl/things/builder.rb', line 301 def end |
#description ⇒ Object (readonly)
Returns the value of attribute description.
301 302 303 |
# File 'lib/openhab/dsl/things/builder.rb', line 301 def description @description end |
#label ⇒ Object
Returns the value of attribute label.
300 301 302 |
# File 'lib/openhab/dsl/things/builder.rb', line 300 def label @label end |
#properties ⇒ Object (readonly)
Returns the value of attribute properties.
301 302 303 |
# File 'lib/openhab/dsl/things/builder.rb', line 301 def properties @properties end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
301 302 303 |
# File 'lib/openhab/dsl/things/builder.rb', line 301 def type @type end |
#uid ⇒ Object (readonly)
Returns the value of attribute uid.
301 302 303 |
# File 'lib/openhab/dsl/things/builder.rb', line 301 def uid @uid end |