Class: OpenHAB::Core::Provider Abstract
- Inherits:
 - 
      org.openhab.core.common.registry.AbstractProvider
      
        
- Object
 - org.openhab.core.common.registry.AbstractProvider
 - OpenHAB::Core::Provider
 
 
- Includes:
 - Enumerable
 
- Defined in:
 - lib/openhab/core/provider.rb
 
Overview
Direct Known Subclasses
Items::Metadata::Provider, Items::Provider, Rules::Provider, Things::Links::Provider, Things::Provider
Constant Summary collapse
- KNOWN_TYPES =
          
Known supported provider types
 %i[items metadata things links].freeze
Class Attribute Summary collapse
- 
  
    
      .registry  ⇒ org.openhab.core.common.registry.Registry 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  abstract
  
  
  
    
The registry that this provider provides elements for.
 - .type ⇒ Symbol readonly
 
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, #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, #up
Class Attribute Details
.registry ⇒ org.openhab.core.common.registry.Registry (readonly)
The registry that this provider provides elements for.
      103 104 105  | 
    
      # File 'lib/openhab/core/provider.rb', line 103 def registry raise NotImplementedError end  | 
  
.type ⇒ Symbol (readonly)
      140 141 142  | 
    
      # File 'lib/openhab/core/provider.rb', line 140 def type name.split("::")[-2].downcase.to_sym end  | 
  
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.
      74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94  | 
    
      # File 'lib/openhab/core/provider.rb', line 74 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 registry.managed_provider.get 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
      172 173 174  | 
    
      # File 'lib/openhab/core/provider.rb', line 172 def [](key) @elements[key] end  | 
  
#all ⇒ Array<Object> Also known as: getAll
Get all elements in this provider
      182 183 184  | 
    
      # File 'lib/openhab/core/provider.rb', line 182 def all @elements.values end  | 
  
#inspect ⇒ String
      151 152 153  | 
    
      # File 'lib/openhab/core/provider.rb', line 151 def inspect "#<#{self.class.name}:#{object_id}>" end  |