Class: Puppet::Pops::Binder::InjectorEntry

Inherits:
Object
  • Object
show all
Defined in:
lib/puppet/pops/binder/injector_entry.rb

Overview

Represents an entry in the injectors internal data.

API:

  • public

Instance Attribute Summary collapse

Instance Method Summary collapse

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.

API:

  • private



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

#bindingPuppet::Pops::Binder::Bindings::Binding (readonly)

Returns The binding for this entry.

Returns:

  • The binding for this entry

API:

  • public



12
13
14
# File 'lib/puppet/pops/binder/injector_entry.rb', line 12

def binding
  @binding
end

#cached_producerObject

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.

API:

  • private



18
19
20
# File 'lib/puppet/pops/binder/injector_entry.rb', line 18

def cached_producer
  @cached_producer
end

#precedenceObject (readonly)

Returns An opaque (comparable) object representing the precedence.

Returns:

  • An opaque (comparable) object representing the precedence

API:

  • public



8
9
10
# File 'lib/puppet/pops/binder/injector_entry.rb', line 8

def precedence
  @precedence
end

#resolvedObject

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.

API:

  • private



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.

Parameters:

  • entry to compare against.

Returns:

  • 1, if this entry has higher precedence, 0 if equal, and -1 if given entry has higher precedence.

API:

  • public



54
55
56
# File 'lib/puppet/pops/binder/injector_entry.rb', line 54

def <=> (injector_entry)
  precedence <=> injector_entry.precedence
end

#is_abstract?Boolean

Returns:

API:

  • public



41
42
43
# File 'lib/puppet/pops/binder/injector_entry.rb', line 41

def is_abstract?
  binding.abstract
end

#is_final?Boolean

Returns:

API:

  • public



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

Returns:

API:

  • private



37
38
39
# File 'lib/puppet/pops/binder/injector_entry.rb', line 37

def is_resolved?()
  !binding.override || resolved
end

#mark_override_resolvedObject

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).

API:

  • private



30
31
32
# File 'lib/puppet/pops/binder/injector_entry.rb', line 30

def mark_override_resolved()
  @resolved = true
end