Class: Puppet::Pops::Types::TypeFormatter
- Defined in:
- lib/puppet/pops/types/type_formatter.rb
Direct Known Subclasses
Constant Summary collapse
- NAME_SEGMENT_SEPARATOR =
'::'.freeze
- STARTS_WITH_ASCII_CAPITAL =
/^[A-Z]/
Class Method Summary collapse
-
.singleton ⇒ TypeCalculator
private
The singleton instance.
-
.string(t) ⇒ String
Produces a String representation of the given type.
Instance Method Summary collapse
-
#alias_expanded_string(t) ⇒ Object
Produces a string representing the type where type aliases have been expanded.
- #append_callable_params(t) ⇒ Object
- #append_default ⇒ Object
- #append_indented_string(t, indent = 0, indent_width = 2, skip_initial_indent = false) ⇒ Object private
- #append_string(t) ⇒ Object
-
#capitalize_segments(qualified_name) ⇒ String
private
Capitalizes each segment in a name separated with the NAME_SEPARATOR conditionally.
-
#debug_string(t) ⇒ Object
Produces a debug string representing the type (possibly with more information that the regular string format).
- #format_type_alias_type(t, expand) ⇒ Object private
-
#indented_string(t, indent = 0, indent_width = 2) ⇒ Object
Produces an string containing newline characters and indentation that represents the given type or literal t.
- #ruby_string(ref_ctor, indent, t) ⇒ Object private
-
#string(t) ⇒ Object
Produces a string representing the type.
- #string_Array(t) ⇒ Object private
- #string_FalseClass(t) ⇒ Object private
- #string_Hash(t) ⇒ Object private
- #string_Module(t) ⇒ Object private
- #string_NilClass(t) ⇒ Object private
- #string_Numeric(t) ⇒ Object private
- #string_PAnnotatedMember(m) ⇒ Object private
- #string_PAnyType(_) ⇒ Object private
- #string_PArrayType(t) ⇒ Object private
- #string_PBinaryType(_) ⇒ Object private
- #string_PBooleanType(_) ⇒ Object private
- #string_PCallableType(t) ⇒ Object private
- #string_PCatalogEntryType(_) ⇒ Object private
- #string_PCollectionType(t) ⇒ Object private
- #string_PDataType(_) ⇒ Object private
- #string_PDefaultType(_) ⇒ Object private
- #string_PEnumType(t) ⇒ Object private
- #string_PFloatType(t) ⇒ Object private
- #string_PHashType(t) ⇒ Object private
- #string_PHostClassType(t) ⇒ Object private
- #string_PIntegerType(t) ⇒ Object private
- #string_PIterableType(t) ⇒ Object private
- #string_PIteratorType(t) ⇒ Object private
- #string_PNotUndefType(t) ⇒ Object private
- #string_PNumericType(_) ⇒ Object private
- #string_PObjectType(t) ⇒ Object private
- #string_POptionalType(t) ⇒ Object private
- #string_PPatternType(t) ⇒ Object private
- #string_PRegexpType(t) ⇒ Object private
- #string_PResourceType(t) ⇒ Object private
- #string_PRuntimeType(t) ⇒ Object private
- #string_PScalarType(_) ⇒ Object private
- #string_PSemVerRangeType(t) ⇒ Object private
- #string_PSemVerType(t) ⇒ Object private
- #string_PSensitiveType(t) ⇒ Object private
- #string_PStringType(t) ⇒ Object private
- #string_PStructType(t) ⇒ Object private
- #string_PTimespanType(t) ⇒ Object private
- #string_PTimestampType(t) ⇒ Object private
- #string_PTupleType(t) ⇒ Object private
- #string_PType(t) ⇒ Object private
- #string_PTypeAliasType(t) ⇒ Object private
- #string_PTypeReferenceType(t) ⇒ Object private
- #string_PTypeSetType(t) ⇒ Object private
- #string_PUndefType(_) ⇒ Object private
- #string_PUnitType(_) ⇒ Object private
- #string_PuppetObject(t) ⇒ Object
- #string_PVariantType(t) ⇒ Object private
- #string_Regexp(t) ⇒ Object private
- #string_String(t) ⇒ Object private
- #string_Symbol(t) ⇒ Object private
- #string_Timespan(t) ⇒ Object private
- #string_Timestamp(t) ⇒ Object private
- #string_TrueClass(t) ⇒ Object private
- #string_Version(t) ⇒ Object private
- #string_VersionRange(t) ⇒ Object private
- #struct_element_pair(t) ⇒ Object private
-
#symbolic_key(key) ⇒ Object
private
Used when printing names of well known keys in an Object type.
-
#to_s ⇒ Object
Debugging to_s to reduce the amount of output.
Class Method Details
.singleton ⇒ TypeCalculator
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 the singleton instance.
23 24 25 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 23 def self.singleton @singleton end |
.string(t) ⇒ String
Produces a String representation of the given type.
16 17 18 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 16 def self.string(t) @singleton.string(t) end |
Instance Method Details
#alias_expanded_string(t) ⇒ Object
Produces a string representing the type where type aliases have been expanded
101 102 103 104 105 106 107 108 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 101 def (t) @expanded = true begin string(t) ensure @expanded = false end end |
#append_callable_params(t) ⇒ Object
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 261 def append_callable_params(t) # translate to string, and skip Unit types append_strings(t.param_types.types.reject {|t2| t2.class == PUnitType }, true) if t.param_types.types.empty? append_strings([0, 0], true) else append_elements(range_array_part(t.param_types.size_type), true) end # Add block T last (after min, max) if present) # append_strings([t.block_type], true) unless t.block_type.nil? chomp_list end |
#append_default ⇒ Object
79 80 81 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 79 def append_default @bld << 'default' end |
#append_indented_string(t, indent = 0, indent_width = 2, skip_initial_indent = false) ⇒ 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.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 51 def append_indented_string(t, indent = 0, indent_width = 2, skip_initial_indent = false) save_indent = @indent save_indent_width = @indent_width @indent = indent @indent_width = indent_width begin (@indent * @indent_width).times { @bld << ' ' } unless skip_initial_indent append_string(t) @bld << "\n" ensure @indent = save_indent @indent_width = save_indent_width end end |
#append_string(t) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 83 def append_string(t) if @ruby && t.is_a?(PAnyType) @ruby = false begin @bld << @ref_ctor << "('" @@string_visitor.visit_this_0(self, t) @bld << "')" ensure @ruby = true end else @@string_visitor.visit_this_0(self, t) end end |
#capitalize_segments(qualified_name) ⇒ String
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.
Capitalizes each segment in a name separated with the NAME_SEPARATOR conditionally. The name will not be subject to capitalization if it already starts with a capital letter. This to avoid that existing camel casing is lost.
552 553 554 555 556 557 558 559 560 561 562 563 564 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 552 def capitalize_segments(qualified_name) if !qualified_name.is_a?(String) || qualified_name =~ STARTS_WITH_ASCII_CAPITAL qualified_name else segments = qualified_name.split(NAME_SEGMENT_SEPARATOR) if segments.size == 1 qualified_name.capitalize else segments.each(&:capitalize!) segments.join(NAME_SEGMENT_SEPARATOR) end end end |
#debug_string(t) ⇒ Object
Produces a debug string representing the type (possibly with more information that the regular string format)
113 114 115 116 117 118 119 120 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 113 def debug_string(t) @debug = true begin string(t) ensure @debug = false end end |
#format_type_alias_type(t, expand) ⇒ 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.
464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 464 def format_type_alias_type(t, ) if @type_set.nil? @bld << t.name if @bld << ' = ' append_string(t.resolved_type) end else if && @type_set.defines_type?(t) append_string(t.resolved_type) else @bld << @type_set.name_for(t, t.name) end end end |
#indented_string(t, indent = 0, indent_width = 2) ⇒ Object
Produces an string containing newline characters and indentation that represents the given type or literal t.
44 45 46 47 48 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 44 def indented_string(t, indent = 0, indent_width = 2) @bld = '' append_indented_string(t, indent, indent_width) @bld end |
#ruby_string(ref_ctor, indent, t) ⇒ 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.
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 67 def ruby_string(ref_ctor, indent, t) @ruby = true @ref_ctor = ref_ctor begin indented_string(t, indent) ensure @ruby = nil @ref_ctor = nil end end |
#string(t) ⇒ Object
Produces a string representing the type
30 31 32 33 34 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 30 def string(t) @bld = '' append_string(t) @bld end |
#string_Array(t) ⇒ 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.
486 487 488 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 486 def string_Array(t) append_array('') { append_strings(t) } end |
#string_FalseClass(t) ⇒ 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.
491 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 491 def string_FalseClass(t) ; @bld << 'false' ; end |
#string_Hash(t) ⇒ 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.
494 495 496 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 494 def string_Hash(t) append_hash(t) end |
#string_Module(t) ⇒ 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.
499 500 501 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 499 def string_Module(t) append_string(TypeCalculator.singleton.type(t)) end |
#string_NilClass(t) ⇒ 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.
504 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 504 def string_NilClass(t) ; @bld << (@ruby ? 'nil' : '?') ; end |
#string_Numeric(t) ⇒ 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 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 507 def string_Numeric(t) ; @bld << t.to_s ; end |
#string_PAnnotatedMember(m) ⇒ 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.
382 383 384 385 386 387 388 389 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 382 def string_PAnnotatedMember(m) hash = m.i12n_hash if hash.size == 1 string(m.type) else string(hash) end end |
#string_PAnyType(_) ⇒ 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.
123 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 123 def string_PAnyType(_) ; @bld << 'Any' ; end |
#string_PArrayType(t) ⇒ 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.
325 326 327 328 329 330 331 332 333 334 335 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 325 def string_PArrayType(t) if t.has_empty_range? append_array('Array') { append_strings([0, 0]) } else append_array('Array', t == PArrayType::DATA) do append_strings([t.element_type], true) append_elements(range_array_part(t.size_type), true) chomp_list end end end |
#string_PBinaryType(_) ⇒ 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.
144 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 144 def string_PBinaryType(_) ; @bld << 'Binary' ; end |
#string_PBooleanType(_) ⇒ 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.
132 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 132 def string_PBooleanType(_) ; @bld << 'Boolean' ; end |
#string_PCallableType(t) ⇒ 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.
245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 245 def string_PCallableType(t) if t.return_type.nil? append_array('Callable', t.param_types.nil?) { append_callable_params(t) } else if t.param_types.nil? append_array('Callable', false) { append_strings([[], t.return_type], false) } else append_array('Callable', false) do append_array('', false) { append_callable_params(t) } @bld << COMMA_SEP append_string(t.return_type) end end end end |
#string_PCatalogEntryType(_) ⇒ 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.
351 352 353 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 351 def string_PCatalogEntryType(_) @bld << 'CatalogEntry' end |
#string_PCollectionType(t) ⇒ 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.
301 302 303 304 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 301 def string_PCollectionType(t) range = range_array_part(t.size_type) append_array('Collection', range.empty? ) { append_elements(range) } end |
#string_PDataType(_) ⇒ 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.
138 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 138 def string_PDataType(_) ; @bld << 'Data' ; end |
#string_PDefaultType(_) ⇒ 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.
129 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 129 def string_PDefaultType(_) ; @bld << 'Default' ; end |
#string_PEnumType(t) ⇒ 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.
190 191 192 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 190 def string_PEnumType(t) append_array('Enum', t.values.empty?) { append_strings(t.values) } end |
#string_PFloatType(t) ⇒ 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.
167 168 169 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 167 def string_PFloatType(t) append_array('Float', t.unbounded? ) { append_elements(range_array_part(t)) } end |
#string_PHashType(t) ⇒ 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.
338 339 340 341 342 343 344 345 346 347 348 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 338 def string_PHashType(t) if t.has_empty_range? append_array('Hash') { append_strings([0, 0]) } else append_array('Hash', t == PHashType::DATA) do append_strings([t.key_type, t.value_type], true) append_elements(range_array_part(t.size_type), true) chomp_list end end end |
#string_PHostClassType(t) ⇒ 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.
356 357 358 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 356 def string_PHostClassType(t) append_array('Class', t.class_name.nil?) { append_elements([t.class_name]) } end |
#string_PIntegerType(t) ⇒ 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.
147 148 149 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 147 def string_PIntegerType(t) append_array('Integer', t.unbounded?) { append_elements(range_array_part(t)) } end |
#string_PIterableType(t) ⇒ 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.
157 158 159 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 157 def string_PIterableType(t) append_array('Iterable', t.element_type.nil?) { append_string(t.element_type) } end |
#string_PIteratorType(t) ⇒ 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.
162 163 164 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 162 def string_PIteratorType(t) append_array('Iterator', t.element_type.nil?) { append_string(t.element_type) } end |
#string_PNotUndefType(t) ⇒ 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.
370 371 372 373 374 375 376 377 378 379 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 370 def string_PNotUndefType(t) contained_type = t.type append_array('NotUndef', contained_type.nil? || contained_type.class == PAnyType) do if contained_type.is_a?(PStringType) && !contained_type.value.nil? append_string(contained_type.value) else append_string(contained_type) end end end |
#string_PNumericType(_) ⇒ 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.
141 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 141 def string_PNumericType(_) ; @bld << 'Numeric' ; end |
#string_PObjectType(t) ⇒ 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.
427 428 429 430 431 432 433 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 427 def string_PObjectType(t) if @expanded append_object_hash(t.i12n_hash(@type_set.nil? || !@type_set.defines_type?(t))) else @bld << (@type_set ? @type_set.name_for(t, t.label) : t.label) end end |
#string_POptionalType(t) ⇒ 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.
441 442 443 444 445 446 447 448 449 450 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 441 def string_POptionalType(t) optional_type = t.optional_type append_array('Optional', optional_type.nil?) do if optional_type.is_a?(PStringType) && !optional_type.value.nil? append_string(optional_type.value) else append_string(optional_type) end end end |
#string_PPatternType(t) ⇒ 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.
296 297 298 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 296 def string_PPatternType(t) append_array('Pattern', t.patterns.empty?) { append_strings(t.patterns.map(&:regexp)) } end |
#string_PRegexpType(t) ⇒ 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.
172 173 174 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 172 def string_PRegexpType(t) append_array('Regexp', t.pattern.nil?) { append_string(t.regexp) } end |
#string_PResourceType(t) ⇒ 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.
361 362 363 364 365 366 367 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 361 def string_PResourceType(t) if t.type_name append_array(capitalize_segments(t.type_name), t.title.nil?) { append_string(t.title) } else @bld << 'Resource' end end |
#string_PRuntimeType(t) ⇒ 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.
320 321 322 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 320 def string_PRuntimeType(t) append_array('Runtime') { append_strings([t.runtime, t.name_or_pattern]) } end |
#string_PScalarType(_) ⇒ 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.
135 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 135 def string_PScalarType(_) ; @bld << 'Scalar' ; end |
#string_PSemVerRangeType(t) ⇒ 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.
205 206 207 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 205 def string_PSemVerRangeType(t) @bld << 'SemVerRange' end |
#string_PSemVerType(t) ⇒ 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.
200 201 202 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 200 def string_PSemVerType(t) append_array('SemVer', t.ranges.empty?) { append_strings(t.ranges) } end |
#string_PSensitiveType(t) ⇒ 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.
436 437 438 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 436 def string_PSensitiveType(t) append_array('Sensitive') { append_string(t.type) } end |
#string_PStringType(t) ⇒ 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.
177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 177 def string_PStringType(t) range = range_array_part(t.size_type) append_array('String', range.empty? && !(@debug && !t.value.nil?)) do if @debug append_elements(range, !t.value.nil?) append_string(t.value) unless t.value.nil? else append_elements(range) end end end |
#string_PStructType(t) ⇒ 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.
278 279 280 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 278 def string_PStructType(t) append_array('Struct', t.elements.empty?) { append_hash(Hash[t.elements.map {|e| struct_element_pair(e) }]) } end |
#string_PTimespanType(t) ⇒ 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.
223 224 225 226 227 228 229 230 231 232 233 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 223 def string_PTimespanType(t) min = t.from max = t.to append_array('Timespan', min.nil? && max.nil?) do min.nil? ? append_default : append_string(min) unless max.nil? || max == min @bld << COMMA_SEP append_string(max) end end end |
#string_PTimestampType(t) ⇒ 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.
210 211 212 213 214 215 216 217 218 219 220 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 210 def string_PTimestampType(t) min = t.from max = t.to append_array('Timestamp', min.nil? && max.nil?) do min.nil? ? append_default : append_string(min) unless max.nil? || max == min @bld << COMMA_SEP append_string(max) end end end |
#string_PTupleType(t) ⇒ 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.
236 237 238 239 240 241 242 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 236 def string_PTupleType(t) append_array('Tuple', t.types.empty?) do append_strings(t.types, true) append_elements(range_array_part(t.size_type), true) chomp_list end end |
#string_PType(t) ⇒ 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.
152 153 154 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 152 def string_PType(t) append_array('Type', t.type.nil?) { append_string(t.type) } end |
#string_PTypeAliasType(t) ⇒ 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.
453 454 455 456 457 458 459 460 461 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 453 def string_PTypeAliasType(t) = @expanded if && t.self_recursion? @guard ||= RecursionGuard.new @guard.with_this(t) { |state| format_type_alias_type(t, (state & RecursionGuard::SELF_RECURSION_IN_THIS) == 0) } else format_type_alias_type(t, ) end end |
#string_PTypeReferenceType(t) ⇒ 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.
481 482 483 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 481 def string_PTypeReferenceType(t) append_array('TypeReference') { append_string(t.type_string) } end |
#string_PTypeSetType(t) ⇒ 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.
399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 399 def string_PTypeSetType(t) append_array('TypeSet') do append_hash(t.i12n_hash.each, proc { |k| @bld << symbolic_key(k) }) do |k,v| case k when KEY_TYPES old_ts = @type_set @type_set = t begin append_hash(v, proc { |tk| @bld << symbolic_key(tk) }) do |tk, tv| if tv.is_a?(Hash) append_object_hash(tv) else append_string(tv) end end rescue @type_set = old_ts end when KEY_REFERENCES append_hash(v, proc { |tk| @bld << symbolic_key(tk) }) else append_string(v) end end end end |
#string_PUndefType(_) ⇒ 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.
126 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 126 def string_PUndefType(_) ; @bld << 'Undef' ; end |
#string_PUnitType(_) ⇒ 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.
315 316 317 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 315 def string_PUnitType(_) @bld << 'Unit' end |
#string_PuppetObject(t) ⇒ Object
306 307 308 309 310 311 312 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 306 def string_PuppetObject(t) @bld << t._ptype.name << '(' append_indented_string(t.i12n_hash, @indent || 0, @indent_width || 2, true) @bld.chomp! @bld << ')' newline if @indent end |
#string_PVariantType(t) ⇒ 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.
195 196 197 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 195 def string_PVariantType(t) append_array('Variant', t.types.empty?) { append_strings(t.types) } end |
#string_Regexp(t) ⇒ 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.
510 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 510 def string_Regexp(t) ; @bld << t.inspect; end |
#string_String(t) ⇒ 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.
513 514 515 516 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 513 def string_String(t) # Use single qoute on strings that does not contain single quotes, control characters, or backslashes. @bld << StringConverter.singleton.puppet_quote(t) end |
#string_Symbol(t) ⇒ 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.
519 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 519 def string_Symbol(t) ; @bld << t.to_s ; end |
#string_Timespan(t) ⇒ 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.
531 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 531 def string_Timespan(t) ; @bld << "'#{t}'" ; end |
#string_Timestamp(t) ⇒ 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.
534 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 534 def string_Timestamp(t) ; @bld << "'#{t}'" ; end |
#string_TrueClass(t) ⇒ 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.
522 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 522 def string_TrueClass(t) ; @bld << 'true' ; end |
#string_Version(t) ⇒ 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.
525 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 525 def string_Version(t) ; @bld << "'#{t}'" ; end |
#string_VersionRange(t) ⇒ 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.
528 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 528 def string_VersionRange(t) ; @bld << "'#{t}'" ; end |
#struct_element_pair(t) ⇒ 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.
283 284 285 286 287 288 289 290 291 292 293 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 283 def struct_element_pair(t) k = t.key_type value_optional = t.value_type.assignable?(PUndefType::DEFAULT) if k.is_a?(POptionalType) # Output as literal String k = t.name if value_optional else k = value_optional ? PNotUndefType.new(k) : t.name end [k, t.value_type] end |
#symbolic_key(key) ⇒ 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.
Used when printing names of well known keys in an Object type. Placed in a separate method to allow override.
394 395 396 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 394 def symbolic_key(key) @ruby ? "'#{key}'" : key end |
#to_s ⇒ Object
Debugging to_s to reduce the amount of output
537 538 539 |
# File 'lib/puppet/pops/types/type_formatter.rb', line 537 def to_s '[a TypeFormatter]' end |