Module: Stackup::YAML

Defined in:
lib/stackup/yaml.rb

Overview

Modified YAML parsing, to support CloudFormation YAML shortcuts

Defined Under Namespace

Classes: CloudFormationToRuby

Class Method Summary collapse

Class Method Details

.dump(*args) ⇒ Object

Dump Ruby object o to a YAML string.



13
14
15
# File 'lib/stackup/yaml.rb', line 13

def dump(*args)
  ::YAML.dump(*args)
end

.load(yaml, filename = nil) ⇒ Object

Load YAML stream/string into a Ruby data structure.

Supports CloudFormation extensions:

`!Ref blah` as a shortcut for `{ "Ref" => blah }`
`!Foo blah` as a shortcut for `{ "Fn::Foo" => blah }`


24
25
26
27
28
29
# File 'lib/stackup/yaml.rb', line 24

def load(yaml, filename = nil)
  tree = ::YAML.parse(yaml, filename)
  return tree unless tree

  CloudFormationToRuby.create.accept(tree)
end

.load_file(filename) ⇒ Object

Load YAML file into a Ruby data structure.

Supports CloudFormation extensions as per ‘load`.



35
36
37
38
39
# File 'lib/stackup/yaml.rb', line 35

def load_file(filename)
  File.open(filename, "r:bom|utf-8") do |f|
    load(f, filename)
  end
end