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
-
.dump(*args) ⇒ Object
Dump Ruby object
o
to a YAML string. -
.load(yaml, filename = nil) ⇒ Object
Load YAML stream/string into a Ruby data structure.
-
.load_file(filename) ⇒ Object
Load YAML file into a Ruby data structure.
Class Method Details
.dump(*args) ⇒ Object
Dump Ruby object o
to a YAML string.
15 16 17 |
# File 'lib/stackup/yaml.rb', line 15 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 }`
26 27 28 29 30 31 32 |
# File 'lib/stackup/yaml.rb', line 26 def load(yaml, filename = nil) legacy_yaml = Gem::Version.new(RUBY_VERSION) < Gem::Version.new("3.0") tree = legacy_yaml ? ::YAML.parse(yaml, filename) : ::YAML.parse(yaml, :filename => 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`.
38 39 40 41 42 |
# File 'lib/stackup/yaml.rb', line 38 def load_file(filename) File.open(filename, "r:bom|utf-8") do |f| load(f, filename) end end |