Class: PluginRegistry::Plugin
- Inherits:
- 
      Object
      
        - Object
- PluginRegistry::Plugin
 
- Defined in:
- lib/inspec/plugin/v1/registry.rb
Direct Known Subclasses
Inspec::Plugins::Fetcher, Inspec::Plugins::Secret, Inspec::Plugins::SourceReader
Instance Attribute Summary collapse
- 
  
    
      #parent  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute parent. 
- 
  
    
      #target  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute target. 
Class Method Summary collapse
- 
  
    
      .name(name)  ⇒ nil 
    
    
  
  
  
  
  
  
  
  
  
    Register a new plugin by name. 
- 
  
    
      .plugin_registry  ⇒ PluginRegistry 
    
    
  
  
  
  
  
  
  
  
  
    Retrieve the plugin registry associated with this plugin. 
- 
  
    
      .priority(x = nil)  ⇒ Numeric 
    
    
  
  
  
  
  
  
  
  
  
    This plugin’s priority. 
- 
  
    
      .resolve(_target)  ⇒ Plugin 
    
    
  
  
  
  
  
  
  
  
  
    Try to resolve the target. 
- 
  
    
      .resolve_next(target, parent)  ⇒ Plugin 
    
    
  
  
  
  
  
  
  
  
  
    When a plugin’s resolve doesn’t lead to the final state, it can use this method to hand it back for another resolver to handle. 
Instance Attribute Details
#parent ⇒ Object
Returns the value of attribute parent.
| 88 89 90 | # File 'lib/inspec/plugin/v1/registry.rb', line 88 def parent @parent end | 
#target ⇒ Object (readonly)
Returns the value of attribute target.
| 87 88 89 | # File 'lib/inspec/plugin/v1/registry.rb', line 87 def target @target end | 
Class Method Details
.name(name) ⇒ nil
Register a new plugin by name
| 45 46 47 48 49 50 | # File 'lib/inspec/plugin/v1/registry.rb', line 45 def self.name(name) raise "Trying to register #{self} with name == nil" if name.nil? @name = name plugin_registry.registry[name] = self end | 
.plugin_registry ⇒ PluginRegistry
Retrieve the plugin registry associated with this plugin
| 37 38 39 | # File 'lib/inspec/plugin/v1/registry.rb', line 37 def self.plugin_registry raise "Plugin #{self} does not implement `self.plugin_registry()`. This method is required" end | 
.priority(x = nil) ⇒ Numeric
This plugin’s priority. Set it by providing the priority as an argument. Higher numbers ensure that the plugin is called early to check if a target belongs to it. When called without an argument, it retrieves this plugin’s priority. Defaults to 0.
| 59 60 61 62 | # File 'lib/inspec/plugin/v1/registry.rb', line 59 def self.priority(x = nil) @priority = x unless x.nil? @priority || 0 end | 
.resolve(_target) ⇒ Plugin
Try to resolve the target. If this plugin cannot handle it, the result will be nil. If, however, the plugin can resolve it, the resulting object will be an instance of this plugin. This means, that the interface that this base class provides, is the basis for the returned type.
| 71 72 73 | # File 'lib/inspec/plugin/v1/registry.rb', line 71 def self.resolve(_target) raise "Plugin #{self} does not implement `self.resolve(target)`. This method is required" end | 
.resolve_next(target, parent) ⇒ Plugin
When a plugin’s resolve doesn’t lead to the final state, it can use this method to hand it back for another resolver to handle.
| 81 82 83 84 85 | # File 'lib/inspec/plugin/v1/registry.rb', line 81 def self.resolve_next(target, parent) res = plugin_registry.resolve(target) res.parent = parent res end |