Sha256: 2830a692c1f907d6d673b852e2fd95817d7d4e197b3e67f4fa8c5d52e4d7a6b9
Contents?: true
Size: 1.59 KB
Versions: 21
Compression:
Stored size: 1.59 KB
Contents
require 'rgen/ecore/ecore' # 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 # class Puppet::Pops::Evaluator::LiteralEvaluator #include Puppet::Pops::Utils EMPTY_STRING = ''.freeze COMMA_SEPARATOR = ', '.freeze def initialize @@literal_visitor ||= Puppet::Pops::Visitor.new(self, "literal", 0, 0) end def literal(ast) @@literal_visitor.visit_this_0(self, ast) end def literal_Object(o) throw :not_literal end def literal_Factory(o) literal(o.model) end def literal_Program(o) literal(o.body) end def literal_LiteralString(o) o.value end def literal_QualifiedName(o) o.value end def literal_LiteralNumber(o) o.value end def literal_LiteralBoolean(o) o.value end def literal_LiteralUndef(o) nil end def literal_LiteralDefault(o) :default end def literal_LiteralRegularExpression(o) o.value end 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 def literal_LiteralList(o) o.values.map {|v| literal(v) } end def literal_LiteralHash(o) o.entries.reduce({}) do |result, entry| result[literal(entry.key)] = literal(entry.value) result end end end
Version data entries
21 entries across 21 versions & 1 rubygems