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 24 def initialize 25 @@literal_visitor ||= Puppet::Pops::Visitor.new(self, "literal", 0, 0) 26 end
Public Instance Methods
literal(ast)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 28 def literal(ast) 29 @@literal_visitor.visit_this_0(self, ast) 30 end
literal_ConcatenatedString(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 64 def literal_ConcatenatedString(o) 65 # use double quoted string value if there is no interpolation 66 throw :not_literal unless o.segments.size == 1 && o.segments[0].is_a?(Puppet::Pops::Model::LiteralString) 67 o.segments[0].value 68 end
literal_Factory(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 36 def literal_Factory(o) 37 literal(o.model) 38 end
literal_LiteralBoolean(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 56 def literal_LiteralBoolean(o) 57 o.value 58 end
literal_LiteralHash(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 74 def literal_LiteralHash(o) 75 o.entries.reduce({}) do |result, entry| 76 key = literal(entry.key) 77 throw :not_literal unless key.is_a?(String) 78 result[key] = literal(entry.value) 79 result 80 end 81 end
literal_LiteralList(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 70 def literal_LiteralList(o) 71 o.values.map {|v| literal(v) } 72 end
literal_LiteralNumber(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 52 def literal_LiteralNumber(o) 53 o.value 54 end
literal_LiteralString(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 44 def literal_LiteralString(o) 45 o.value 46 end
literal_LiteralUndef(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 60 def literal_LiteralUndef(o) 61 nil 62 end
literal_Object(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 32 def literal_Object(o) 33 throw :not_literal 34 end
literal_Program(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 40 def literal_Program(o) 41 literal(o.body) 42 end
literal_QualifiedName(o)
click to toggle source
# File lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb 48 def literal_QualifiedName(o) 49 o.value 50 end