Class: OpenHAB::Core::Provider Abstract
- Inherits:
-
Object
- Object
- OpenHAB::Core::Provider
- Includes:
- Enumerable
- Defined in:
- lib/openhab/core/provider.rb
Overview
Direct Known Subclasses
Items::Metadata::Provider, Items::Provider, Items::Semantics::Provider, Rules::Provider, Sitemaps::Provider, Things::Links::Provider, Things::Provider
Class Attribute Summary collapse
-
.registry ⇒ org.openhab.core.common.registry.Registry
readonly
abstract
The registry that this provider provides elements for.
Class Method Summary collapse
-
.current(preferred_provider = nil, element = nil) ⇒ org.openhab.core.common.registry.Provider
Determines the current provider that should be used to create elements belonging to this registry.
Instance Method Summary collapse
-
#[](key) ⇒ Object
(also: #get)
Get an element from this provider.
-
#all ⇒ Array<Object>
(also: #getAll)
Get all elements in this provider.
- #inspect ⇒ String
Methods included from Enumerable
#all_groups, #all_members, #command, #command!, #decrease, #down, #equipments, #fast_forward, #groups, #increase, #locations, #member_of, #members, #move, #next, #not_member_of, #not_tagged, #off, #on, #pause, #play, #points, #previous, #refresh, #rewind, #stop, #tagged, #toggle, #up, #update!
Class Attribute Details
Class Method Details
.current(preferred_provider = nil, element = nil) ⇒ org.openhab.core.common.registry.Provider
Determines the current provider that should be used to create elements belonging to this registry.
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/openhab/core/provider.rb', line 76 def current(preferred_provider = nil, element = nil) preferred_provider ||= Thread.current[:openhab_providers]&.[](type) if preferred_provider.is_a?(Proc) preferred_provider = if preferred_provider.arity.zero? || element.nil? preferred_provider.call else preferred_provider.call(element) end end case preferred_provider when nil, :transient instance when :persistent provider = registry.managed_provider # @deprecated remove the next line when dropping openHAB 5.1 provider = provider.get if provider.is_a?(java.util.Optional) provider when org.openhab.core.common.registry.ManagedProvider preferred_provider else raise ArgumentError, "#{preferred_provider.inspect} is not a ManagedProvider" end end |
Instance Method Details
#[](key) ⇒ Object Also known as: get
Get an element from this provider
178 179 180 |
# File 'lib/openhab/core/provider.rb', line 178 def [](key) @elements[key] end |
#all ⇒ Array<Object> Also known as: getAll
Get all elements in this provider
188 189 190 |
# File 'lib/openhab/core/provider.rb', line 188 def all @elements.values end |
#inspect ⇒ String
157 158 159 |
# File 'lib/openhab/core/provider.rb', line 157 def inspect "#<#{self.class.name}:#{object_id}>" end |