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, 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.
 - .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.
      104 105 106  | 
    
      # File 'lib/openhab/core/provider.rb', line 104 def registry raise NotImplementedError end  | 
  
.type ⇒ Symbol (readonly)
      141 142 143  | 
    
      # File 'lib/openhab/core/provider.rb', line 141 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.
      75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95  | 
    
      # File 'lib/openhab/core/provider.rb', line 75 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
      173 174 175  | 
    
      # File 'lib/openhab/core/provider.rb', line 173 def [](key) @elements[key] end  | 
  
#all ⇒ Array<Object> Also known as: getAll
Get all elements in this provider
      183 184 185  | 
    
      # File 'lib/openhab/core/provider.rb', line 183 def all @elements.values end  | 
  
#inspect ⇒ String
      152 153 154  | 
    
      # File 'lib/openhab/core/provider.rb', line 152 def inspect "#<#{self.class.name}:#{object_id}>" end  |