class Puppet::Pops::Evaluator::JsonStrictLiteralEvaluator
Literal values for
* String * Numbers * Booleans * Undef (produces nil) * Array * Hash where keys must be Strings * QualifiedName
Not considered literal:
* QualifiedReference # i.e. File, FooBar * Default is not accepted as being literal * Regular Expression is not accepted as being literal * Hash with non String keys * String with interpolation
Constants
- COMMA_SEPARATOR
include
Puppet::Pops::Utils
Public Class Methods
new()
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 25 def initialize 26 @@literal_visitor ||= Puppet::Pops::Visitor.new(self, "literal", 0, 0) 27 end
Public Instance Methods
literal(ast)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 29 def literal(ast) 30 @@literal_visitor.visit_this_0(self, ast) 31 end
literal_ConcatenatedString(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 65 def literal_ConcatenatedString(o) 66 # use double quoted string value if there is no interpolation 67 throw :not_literal unless o.segments.size == 1 && o.segments[0].is_a?(Puppet::Pops::Model::LiteralString) 68 o.segments[0].value 69 end
literal_Factory(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 37 def literal_Factory(o) 38 literal(o.model) 39 end
literal_LiteralBoolean(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 57 def literal_LiteralBoolean(o) 58 o.value 59 end
literal_LiteralHash(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 75 def literal_LiteralHash(o) 76 o.entries.reduce({}) do |result, entry| 77 key = literal(entry.key) 78 throw :not_literal unless key.is_a?(String) 79 result[key] = literal(entry.value) 80 result 81 end 82 end
literal_LiteralList(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 71 def literal_LiteralList(o) 72 o.values.map {|v| literal(v) } 73 end
literal_LiteralNumber(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 53 def literal_LiteralNumber(o) 54 o.value 55 end
literal_LiteralString(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 45 def literal_LiteralString(o) 46 o.value 47 end
literal_LiteralUndef(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 61 def literal_LiteralUndef(o) 62 nil 63 end
literal_Object(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 33 def literal_Object(o) 34 throw :not_literal 35 end
literal_Program(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 41 def literal_Program(o) 42 literal(o.body) 43 end
literal_QualifiedName(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 49 def literal_QualifiedName(o) 50 o.value 51 end