Class: Puppet::Pops::Types::PNotUndefType Private
- Inherits:
-
PTypeWithContainedType
- Object
- TypedModelObject
- PAnyType
- PTypeWithContainedType
- Puppet::Pops::Types::PNotUndefType
- Defined in:
- lib/puppet/pops/types/types.rb
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Constant Summary collapse
- DEFAULT =
This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.
PNotUndefType.new
Instance Attribute Summary
Attributes inherited from PTypeWithContainedType
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(type = nil) ⇒ PNotUndefType
constructor
private
A new instance of PNotUndefType.
- #instance?(o, guard = nil) ⇒ Boolean private
- #new_function(loader) ⇒ Object private
- #normalize(guard = nil) ⇒ Object private
Methods inherited from PTypeWithContainedType
#accept, #eql?, #generalize, #hash, #resolve
Methods inherited from PAnyType
#==, #accept, #assignable?, #callable?, #callable_args?, #callable_with?, #check_self_recursion, #create, #eql?, #generalize, #hash, #iterable?, #iterable_type, #kind_of_callable?, #name, new_function, #really_instance?, #resolve, simple_name, #simple_name, #to_alias_expanded_s, #to_s
Methods inherited from TypedModelObject
_ptype, create_ptype, register_ptypes
Methods included from Visitable
Methods included from PuppetObject
Constructor Details
#initialize(type = nil) ⇒ PNotUndefType
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 PNotUndefType.
516 517 518 |
# File 'lib/puppet/pops/types/types.rb', line 516 def initialize(type = nil) super(type.class == PAnyType ? nil : type) end |
Class Method Details
.register_ptype(loader, ir) ⇒ 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.
507 508 509 510 511 512 513 514 |
# File 'lib/puppet/pops/types/types.rb', line 507 def self.register_ptype(loader, ir) create_ptype(loader, ir, 'AnyType', 'type' => { KEY_TYPE => POptionalType.new(PType::DEFAULT), KEY_VALUE => nil } ) end |
Instance Method Details
#instance?(o, guard = nil) ⇒ 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.
520 521 522 |
# File 'lib/puppet/pops/types/types.rb', line 520 def instance?(o, guard = nil) !(o.nil? || o == :undef) && (@type.nil? || @type.instance?(o, guard)) end |
#new_function(loader) ⇒ 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.
541 542 543 544 545 546 547 548 |
# File 'lib/puppet/pops/types/types.rb', line 541 def new_function(loader) # If only NotUndef, then use Unit's null converter if type.nil? PUnitType.new_function(self.class, loader) else type.new_function(loader) end end |
#normalize(guard = nil) ⇒ 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.
524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 |
# File 'lib/puppet/pops/types/types.rb', line 524 def normalize(guard = nil) n = super if n.type.nil? n else if n.type.is_a?(POptionalType) # No point in having an optional in a NotUndef PNotUndefType.new(n.type.type).normalize elsif !n.type.assignable?(PUndefType::DEFAULT) # THe type is NotUndef anyway, so it can be stripped of n.type else n end end end |