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
520 521 522 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 520 def accept_found(key, value) @current.found(key, value) end |
#accept_found_in_defaults(key, value) ⇒ Object
516 517 518 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 516 def accept_found_in_defaults(key, value) @current.found_in_defaults(key, value) end |
#accept_found_in_overrides(key, value) ⇒ Object
512 513 514 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 512 def accept_found_in_overrides(key, value) @current.found_in_overrides(key, value) end |
#accept_location_not_found ⇒ Object
532 533 534 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 532 def accept_location_not_found @current.location_not_found end |
#accept_merge_source(merge_source) ⇒ Object
524 525 526 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 524 def accept_merge_source(merge_source) @current.branches << ExplainMergeSource.new(merge_source) end |
#accept_module_not_found(module_name) ⇒ Object
536 537 538 539 540 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 536 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
542 543 544 545 546 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 542 def accept_module_provider_not_found(module_name) push(:module, module_name) @current.module_provider_not_found pop end |
#accept_not_found(key) ⇒ Object
528 529 530 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 528 def accept_not_found(key) @current.not_found(key) end |
#accept_result(result) ⇒ Object
548 549 550 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 548 def accept_result(result) @current.result(result) end |
#accept_text(text) ⇒ Object
552 553 554 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 552 def accept_text(text) @current.text(text) end |
#dump_on(io, indent, first_indent) ⇒ Object
556 557 558 559 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 556 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
504 505 506 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 504 def end |
#only_explain_options? ⇒ Boolean
500 501 502 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 500 def end |
#pop ⇒ Object
508 509 510 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 508 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 |
# 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 raise ArgumentError, "Unknown Explain type #{qualifier_type}" end @current.branches << node @current = node end |
#to_hash ⇒ Object
561 562 563 |
# File 'lib/puppet/pops/lookup/explainer.rb', line 561 def to_hash branches.size == 1 ? branches[0].to_hash : super end |