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