Class: Puppet::Pops::Binder::InjectorEntry
- Defined in:
- lib/puppet/pops/binder/injector_entry.rb
Overview
Represents an entry in the injectors internal data.
Instance Attribute Summary collapse
-
#binding ⇒ Puppet::Pops::Binder::Bindings::Binding
readonly
The binding for this entry.
- #cached_producer ⇒ Object private
-
#precedence ⇒ Object
readonly
An opaque (comparable) object representing the precedence.
- #resolved ⇒ Object private
Instance Method Summary collapse
-
#<=>(injector_entry) ⇒ Integer
Compares against another InjectorEntry by comparing precedence.
-
#initialize(binding, precedence = 0) ⇒ InjectorEntry
constructor
private
A new instance of InjectorEntry.
- #is_abstract? ⇒ Boolean
- #is_final? ⇒ Boolean
-
#is_resolved? ⇒ Boolean
private
The binding is resolved if it is non-override, or if the override has been resolved.
-
#mark_override_resolved ⇒ Object
private
Marks an overriding entry as resolved (if not an overriding entry, the marking has no effect).
Constructor Details
#initialize(binding, precedence = 0) ⇒ InjectorEntry
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of InjectorEntry.
21 22 23 24 25 |
# File 'lib/puppet/pops/binder/injector_entry.rb', line 21 def initialize(binding, precedence = 0) @precedence = precedence.freeze @binding = binding @cached_producer = nil end |
Instance Attribute Details
#binding ⇒ Puppet::Pops::Binder::Bindings::Binding (readonly)
Returns The binding for this entry.
12 13 14 |
# File 'lib/puppet/pops/binder/injector_entry.rb', line 12 def binding @binding end |
#cached_producer ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
18 19 20 |
# File 'lib/puppet/pops/binder/injector_entry.rb', line 18 def cached_producer @cached_producer end |
#precedence ⇒ Object (readonly)
Returns An opaque (comparable) object representing the precedence.
8 9 10 |
# File 'lib/puppet/pops/binder/injector_entry.rb', line 8 def precedence @precedence end |
#resolved ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
15 16 17 |
# File 'lib/puppet/pops/binder/injector_entry.rb', line 15 def resolved @resolved end |
Instance Method Details
#<=>(injector_entry) ⇒ Integer
Compares against another InjectorEntry by comparing precedence.
54 55 56 |
# File 'lib/puppet/pops/binder/injector_entry.rb', line 54 def <=> (injector_entry) precedence <=> injector_entry.precedence end |
#is_abstract? ⇒ Boolean
41 42 43 |
# File 'lib/puppet/pops/binder/injector_entry.rb', line 41 def is_abstract? binding.abstract end |
#is_final? ⇒ Boolean
45 46 47 |
# File 'lib/puppet/pops/binder/injector_entry.rb', line 45 def is_final? binding.final end |
#is_resolved? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
The binding is resolved if it is non-override, or if the override has been resolved
37 38 39 |
# File 'lib/puppet/pops/binder/injector_entry.rb', line 37 def is_resolved?() !binding.override || resolved end |
#mark_override_resolved ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Marks an overriding entry as resolved (if not an overriding entry, the marking has no effect).
30 31 32 |
# File 'lib/puppet/pops/binder/injector_entry.rb', line 30 def mark_override_resolved() @resolved = true end |