Class: Puppet::Pops::Types::PIterableType Private
- Inherits:
-
PTypeWithContainedType
- Object
- TypedModelObject
- PAnyType
- PTypeWithContainedType
- Puppet::Pops::Types::PIterableType
- 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.
PIterableType.new(nil)
Instance Attribute Summary
Attributes inherited from PTypeWithContainedType
Class Method Summary collapse
Instance Method Summary collapse
- #element_type ⇒ Object private
- #instance?(o, guard = nil) ⇒ Boolean private
- #iterable?(guard = nil) ⇒ Boolean private
- #iterable_type(guard = nil) ⇒ Object private
Methods inherited from PTypeWithContainedType
#accept, #eql?, #generalize, #hash, #initialize, #normalize, #resolve
Methods inherited from PAnyType
#==, #accept, #assignable?, #callable?, #callable_args?, #check_self_recursion, #eql?, #generalize, #hash, #kind_of_callable?, #name, new_function, #new_function, #normalize, #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
This class inherits a constructor from Puppet::Pops::Types::PTypeWithContainedType
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.
1267 1268 1269 1270 1271 1272 1273 1274 |
# File 'lib/puppet/pops/types/types.rb', line 1267 def self.register_ptype(loader, ir) create_ptype(loader, ir, 'AnyType', 'element_type' => { KEY_TYPE => POptionalType.new(PType::DEFAULT), KEY_VALUE => nil } ) end |
Instance Method Details
#element_type ⇒ 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.
1276 1277 1278 |
# File 'lib/puppet/pops/types/types.rb', line 1276 def element_type @type end |
#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.
1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 |
# File 'lib/puppet/pops/types/types.rb', line 1280 def instance?(o, guard = nil) if @type.nil? || @type.assignable?(PAnyType::DEFAULT, guard) # Any element_type will do case o when Iterable, String, Hash, Array, Range, PEnumType true when Integer o >= 0 when PIntegerType o.finite_range? else false end else assignable?(TypeCalculator.infer(o), guard) end end |
#iterable?(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.
1298 1299 1300 |
# File 'lib/puppet/pops/types/types.rb', line 1298 def iterable?(guard = nil) true end |
#iterable_type(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.
1302 1303 1304 |
# File 'lib/puppet/pops/types/types.rb', line 1302 def iterable_type(guard = nil) self end |