Class: Puppet::Pops::Lookup::Explainer
- Inherits:
-
ExplainNode
- Object
- ExplainNode
- Puppet::Pops::Lookup::Explainer
- Defined in:
- lib/puppet/pops/lookup/explainer.rb
Direct Known Subclasses
Instance Method Summary collapse
- #accept_found(key, value) ⇒ Object
- #accept_found_in_defaults(key, value) ⇒ Object
- #accept_found_in_overrides(key, value) ⇒ Object
- #accept_location_not_found ⇒ Object
- #accept_merge_source(merge_source) ⇒ Object
- #accept_module_not_found(module_name) ⇒ Object
- #accept_module_provider_not_found(module_name) ⇒ Object
- #accept_not_found(key) ⇒ Object
- #accept_result(result) ⇒ Object
- #accept_text(text) ⇒ Object
- #dump_on(io, indent, first_indent) ⇒ Object
- #explain_options? ⇒ Boolean
-
#initialize(explain_options = false, only_explain_options = false) ⇒ Explainer
constructor
A new instance of Explainer.
- #only_explain_options? ⇒ Boolean
- #pop ⇒ Object
- #push(qualifier_type, qualifier) ⇒ Object
- #to_hash ⇒ Object
Methods inherited from ExplainNode
#branches, #dump_texts, #explain, #inspect, #text, #to_s
Constructor Details
#initialize(explain_options = false, only_explain_options = false) ⇒ Explainer
Returns a new instance of Explainer.
463 464 465 466 467 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 463 def initialize( = false, = false) @current = self = = end |
Instance Method Details
#accept_found(key, value) ⇒ Object
521 522 523 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 521 def accept_found(key, value) @current.found(key, value) end |
#accept_found_in_defaults(key, value) ⇒ Object
517 518 519 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 517 def accept_found_in_defaults(key, value) @current.found_in_defaults(key, value) end |
#accept_found_in_overrides(key, value) ⇒ Object
513 514 515 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 513 def accept_found_in_overrides(key, value) @current.found_in_overrides(key, value) end |
#accept_location_not_found ⇒ Object
533 534 535 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 533 def accept_location_not_found @current.location_not_found end |
#accept_merge_source(merge_source) ⇒ Object
525 526 527 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 525 def accept_merge_source(merge_source) @current.branches << ExplainMergeSource.new(merge_source) end |
#accept_module_not_found(module_name) ⇒ Object
537 538 539 540 541 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 537 def accept_module_not_found(module_name) push(:module, module_name) @current.module_not_found pop end |
#accept_module_provider_not_found(module_name) ⇒ Object
543 544 545 546 547 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 543 def accept_module_provider_not_found(module_name) push(:module, module_name) @current.module_provider_not_found pop end |
#accept_not_found(key) ⇒ Object
529 530 531 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 529 def accept_not_found(key) @current.not_found(key) end |
#accept_result(result) ⇒ Object
549 550 551 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 549 def accept_result(result) @current.result(result) end |
#accept_text(text) ⇒ Object
553 554 555 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 553 def accept_text(text) @current.text(text) end |
#dump_on(io, indent, first_indent) ⇒ Object
557 558 559 560 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 557 def dump_on(io, indent, first_indent) branches.each { |b| b.dump_on(io, indent, first_indent) } dump_texts(io, indent) end |
#explain_options? ⇒ Boolean
505 506 507 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 505 def end |
#only_explain_options? ⇒ Boolean
501 502 503 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 501 def end |
#pop ⇒ Object
509 510 511 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 509 def pop @current = @current.parent unless @current.parent.nil? end |
#push(qualifier_type, qualifier) ⇒ Object
469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 469 def push(qualifier_type, qualifier) node = case (qualifier_type) when :global ExplainGlobal.new(@current, qualifier) when :location ExplainLocation.new(@current, qualifier) when :interpolate ExplainInterpolate.new(@current, qualifier) when :data_provider ExplainDataProvider.new(@current, qualifier) when :merge ExplainMerge.new(@current, qualifier) when :module ExplainModule.new(@current, qualifier) when :scope ExplainScope.new(@current, qualifier) when :sub_lookup ExplainSubLookup.new(@current, qualifier) when :segment ExplainKeySegment.new(@current, qualifier) when :meta, :data ExplainTop.new(@current, qualifier_type, qualifier) when :invalid_key ExplainInvalidKey.new(@current, qualifier) else #TRANSLATORS 'Explain' is referring to the 'Explainer' class and should not be translated raise ArgumentError, _("Unknown Explain type %{qualifier_type}") % { qualifier_type: qualifier_type } end @current.branches << node @current = node end |
#to_hash ⇒ Object
562 563 564 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 562 def to_hash branches.size == 1 ? branches[0].to_hash : super end |