Class: Puppet::Pops::Evaluator::LiteralEvaluator
- Defined in:
- lib/puppet/pops/evaluator/literal_evaluator.rb
Overview
Literal values for String (not containing interpolation) Numbers Booleans Undef (produces nil) Array Hash QualifiedName Default (produced :default) Regular Expression (produces ruby reqular expression)
Not considered literal QualifiedReference # i.e. File, FooBar
Constant Summary collapse
- EMPTY_STRING =
include Puppet::Pops::Utils
''.freeze
- COMMA_SEPARATOR =
', '.freeze
Instance Method Summary collapse
-
#initialize ⇒ LiteralEvaluator
constructor
A new instance of LiteralEvaluator.
- #literal(ast) ⇒ Object
- #literal_ConcatenatedString(o) ⇒ Object
- #literal_Factory(o) ⇒ Object
- #literal_LiteralBoolean(o) ⇒ Object
- #literal_LiteralDefault(o) ⇒ Object
- #literal_LiteralHash(o) ⇒ Object
- #literal_LiteralList(o) ⇒ Object
- #literal_LiteralNumber(o) ⇒ Object
- #literal_LiteralRegularExpression(o) ⇒ Object
- #literal_LiteralString(o) ⇒ Object
- #literal_LiteralUndef(o) ⇒ Object
- #literal_Object(o) ⇒ Object
- #literal_Program(o) ⇒ Object
- #literal_QualifiedName(o) ⇒ Object
Constructor Details
#initialize ⇒ LiteralEvaluator
Returns a new instance of LiteralEvaluator.
23 24 25 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 23 def initialize @@literal_visitor ||= Puppet::Pops::Visitor.new(self, "literal", 0, 0) end |
Instance Method Details
#literal(ast) ⇒ Object
27 28 29 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 27 def literal(ast) @@literal_visitor.visit_this_0(self, ast) end |
#literal_ConcatenatedString(o) ⇒ Object
71 72 73 74 75 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 71 def literal_ConcatenatedString(o) # use double quoted string value if there is no interpolation throw :not_literal unless o.segments.size == 1 && o.segments[0].is_a?(Puppet::Pops::Model::LiteralString) o.segments[0].value end |
#literal_Factory(o) ⇒ Object
35 36 37 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 35 def literal_Factory(o) literal(o.model) end |
#literal_LiteralBoolean(o) ⇒ Object
55 56 57 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 55 def literal_LiteralBoolean(o) o.value end |
#literal_LiteralDefault(o) ⇒ Object
63 64 65 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 63 def literal_LiteralDefault(o) :default end |
#literal_LiteralHash(o) ⇒ Object
81 82 83 84 85 86 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 81 def literal_LiteralHash(o) o.entries.reduce({}) do |result, entry| result[literal(entry.key)] = literal(entry.value) result end end |
#literal_LiteralList(o) ⇒ Object
77 78 79 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 77 def literal_LiteralList(o) o.values.map {|v| literal(v) } end |
#literal_LiteralNumber(o) ⇒ Object
51 52 53 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 51 def literal_LiteralNumber(o) o.value end |
#literal_LiteralRegularExpression(o) ⇒ Object
67 68 69 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 67 def literal_LiteralRegularExpression(o) o.value end |
#literal_LiteralString(o) ⇒ Object
43 44 45 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 43 def literal_LiteralString(o) o.value end |
#literal_LiteralUndef(o) ⇒ Object
59 60 61 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 59 def literal_LiteralUndef(o) nil end |
#literal_Object(o) ⇒ Object
31 32 33 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 31 def literal_Object(o) throw :not_literal end |
#literal_Program(o) ⇒ Object
39 40 41 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 39 def literal_Program(o) literal(o.body) end |
#literal_QualifiedName(o) ⇒ Object
47 48 49 |
# File 'lib/puppet/pops/evaluator/literal_evaluator.rb', line 47 def literal_QualifiedName(o) o.value end |