Module: YAMLSafeLoadStream

Defined in:
lib/yaml/safe_load_stream.rb

Class Method Summary collapse

Class Method Details

.safe_load_stream(yaml, filename = nil) {|document| ... } ⇒ Array

A safe version of YAML.load_stream. Parses a multi document stream and raises if it tries to instantiate any non-standard classes

Parameters:

  • yaml (String)

    yaml content

  • filename (String) (defaults to: nil)

    filename to be used in exception messages

Yields:

  • (document)

    each document in the stream is yielded if a block is given

Returns:

  • (Array)

    when a block is not given, returns an Array of documents



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/yaml/safe_load_stream.rb', line 14

module_function def safe_load_stream(yaml, filename = nil)
  result = []
  ::YAML.parse_stream(yaml, filename: filename) do |stream|
    raise_if_tags(stream, filename)
    result << if block_given?
                yield(stream.to_ruby)
              else
                stream.to_ruby
              end
  end
  result
end