class Retrospec::Puppet::SchemaDumper

Public Instance Methods

do_dump(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 44
def do_dump(o)
  @@dump_visitor.visit_this_0(self, o)
end
dump(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 40
def dump(o)
  do_dump(o)
end
dump_AccessExpression(o) click to toggle source

x prints as (slice x y)

# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 99
def dump_AccessExpression o
  if o.keys.size <= 1
    ["slice", do_dump(o.left_expr), do_dump(o.keys[0])]
  else
    ["slice", do_dump(o.left_expr), do_dump(o.keys)]
  end
end
dump_AndExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 151
def dump_AndExpression o
  ["&&", do_dump(o.left_expr), do_dump(o.right_expr)]
end
dump_Application(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 90
def dump_Application o
  ["application", o.name, do_dump(o.parameters), do_dump(o.body)]
end
dump_ArithmeticExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 94
def dump_ArithmeticExpression o
  [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
end
dump_Array(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 48
def dump_Array o
  'seq'
  #o.collect {|e| do_dump(e) }
end
dump_AssignmentExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 163
def dump_AssignmentExpression o
  [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
end
dump_AttributeOperation(o) click to toggle source

Produces (name => expr) or (name +> expr)

# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 168
def dump_AttributeOperation o
  [o.attribute_name, o.operator, do_dump(o.value_expr)]
end
dump_AttributesOperation(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 172
def dump_AttributesOperation o
  ['* =>', do_dump(o.expr)]
end
dump_BlockExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 255
def dump_BlockExpression o
  result = ["block", :indent]
  o.statements.each {|x| result << :break; result << do_dump(x) }
  result << :dedent << :break
  result
end
dump_CollectExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 111
def dump_CollectExpression o
  result = ["collect", do_dump(o.type_expr), :indent, :break, do_dump(o.query), :indent]
  o.operations do |ao|
    result << :break << do_dump(ao)
  end
  result += [:dedent, :dedent ]
  result
end
dump_ComparisonExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 147
def dump_ComparisonExpression o
  [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
end
dump_ConcatenatedString(o) click to toggle source

Interpolated strings are shown as (cat seg0 seg1 … segN)

# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 263
def dump_ConcatenatedString o
  ["cat"] + o.segments.collect {|x| do_dump(x)}
end
dump_EppExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 120
def dump_EppExpression o
  result = ["epp"]
  #    result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size() > 0
  if o.body
    result << do_dump(o.body)
  else
    result << []
  end
  result
end
dump_ExportedQuery(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 131
def dump_ExportedQuery o
  result = ["<<| |>>"]
  result += dump_QueryExpression(o) unless is_nop?(o.expr)
  result
end
dump_Expression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 86
def dump_Expression o
  do_dump(o.value)
end
dump_InExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 159
def dump_InExpression o
  ["in", do_dump(o.left_expr), do_dump(o.right_expr)]
end
dump_KeyedEntry(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 186
def dump_KeyedEntry o
  [do_dump(o.key), do_dump(o.value)]
end
dump_LambdaExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 199
def dump_LambdaExpression o
  result = ["lambda"]
  result << ["parameters"] + o.parameters.collect {|p| do_dump(p) } if o.parameters.size > 0
  if o.body
    result << do_dump(o.body)
  else
    result << []
  end
  result
end
dump_LiteralBoolean(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 78
def dump_LiteralBoolean o
  'bool'
end
dump_LiteralDefault(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 210
def dump_LiteralDefault o
  ":default"
end
dump_LiteralFloat(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 70
def dump_LiteralFloat o
  'float'
end
dump_LiteralHash(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 181
def dump_LiteralHash o
  'map'
  #["{}"] + o.entries.collect {|x| do_dump(x)}
end
dump_LiteralInteger(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 74
def dump_LiteralInteger o
  'int'
end
dump_LiteralList(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 176
def dump_LiteralList o
  'seq'
  #["[]"] + o.values.collect {|x| do_dump(x)}
end
dump_LiteralRegularExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 218
def dump_LiteralRegularExpression o
  "/#{o.value.source}/"
end
dump_LiteralString(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 194
def dump_LiteralString o
  'str'
  #"'#{o.value}'"
end
dump_LiteralUndef(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 214
def dump_LiteralUndef o
  ":undef"
end
dump_LiteralValue(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 82
def dump_LiteralValue o
  type_table[o.class.to_s] || 'any'
end
dump_MatchExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 190
def dump_MatchExpression o
  [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
end
dump_MatchesExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 107
def dump_MatchesExpression o
  [o.operator.to_s, do_dump(o.left_expr), do_dump(o.right_expr)]
end
dump_NamedAccessExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 226
def dump_NamedAccessExpression o
  [".", do_dump(o.left_expr), do_dump(o.right_expr)]
end
dump_NilClass(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 230
def dump_NilClass o
  'any'
end
dump_Nop(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 222
def dump_Nop o
  ":nop"
end
dump_NotExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 234
def dump_NotExpression o
  ['!', dump(o.expr)]
end
dump_Object(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 36
def dump_Object o
  [o.class.to_s, o.to_s]
end
dump_OrExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 155
def dump_OrExpression o
  ["||", do_dump(o.left_expr), do_dump(o.right_expr)]
end
dump_Parameter(o) click to toggle source

Produces parameters as name, or (= name value)

# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 272
def dump_Parameter o
  name_prefix = o.captures_rest ? '*' : ''
  name_part = "#{name_prefix}#{o.name}"
  if o.value && o.type_expr
    {:type => do_dump(o.type_expr), :name => name_part, :default_value => do_dump(o.value)}
  elsif o.value
    {:type => nil, :name => name_part, :default_value => do_dump(o.value)}
  elsif o.type_expr
    {:type => do_dump(o.type_expr), :name => name_part, :default_value => nil}
  else
    {:type => nil, :name => name_part, :default_value => nil}
  end
end
dump_QualifiedName(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 66
def dump_QualifiedName o
  'any'  # return any until we can lookup the value of this variable name
end
dump_QueryExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 143
def dump_QueryExpression o
  [do_dump(o.expr)]
end
dump_ReservedWord(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 267
def dump_ReservedWord o
  [ 'reserved', o.word ]
end
dump_TextExpression(o) click to toggle source

Interpolation (to string) shown as (str expr)

# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 243
def dump_TextExpression o
  ["str", do_dump(o.expr)]
end
dump_UnaryMinusExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 247
def dump_UnaryMinusExpression o
  ['-', do_dump(o.expr)]
end
dump_UnfoldExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 251
def dump_UnfoldExpression o
  ['unfold', do_dump(o.expr)]
end
dump_VariableExpression(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 238
def dump_VariableExpression o
  do_dump(o.expr)
end
dump_VirtualQuery(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 137
def dump_VirtualQuery o
  result = ["<| |>"]
  result += dump_QueryExpression(o) unless is_nop?(o.expr)
  result
end
indent() click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 53
def indent
  "  " * indent_count
end
is_nop?(o) click to toggle source
# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 286
def is_nop? o
  o.nil? || o.is_a?(Puppet::Pops::Model::Nop)
end
to_kwalify_type(value) click to toggle source

convert the given class to a kwalify class, defaults to any

# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 58
def to_kwalify_type(value)
  if x = dump(value)
    x
  else
    'any'
  end
end
type_table() click to toggle source

conversion table from ruby types to kwalify types

# File lib/retrospec/plugins/v1/plugin/generators/serializers/schema_dumper.rb, line 11
def type_table
  @type_table ||= {
    'Array'=>"seq",
    'Hash'=>"map",
    'string' => 'str',
    'String'=>"str",
    'Integer'=>"int",
    'Float'=>"float",
    'Numeric'=>"number",
    'Date'=>"date",
    'Time'=>"timestamp",
    'Object'=>"any",
    'FalseClass' => 'bool',
    'TrueClass' => 'bool',
    'Fixnum' => 'number',
    'NilClass' => 'any',
    'Puppet::Pops::Model::LiteralBoolean' => 'bool',
    'Puppet::Parser::AST::Variable' => 'any',
    'Puppet::Parser::AST::Boolean' => 'bool',
    'Puppet::Parser::AST::String' => 'str',
    'Puppet::Parser::AST::ASTHash' => 'map',
    'Puppet::Parser::AST::ASTArray' => 'seq',
  }
end