Class: RailroadDiagrams::Importers::YamlGrammar

Inherits:
Object
  • Object
show all
Defined in:
lib/railroad_diagrams/importers/yaml_grammar.rb

Overview

Parses safe YAML shorthand for named grammar rules.

Examples:

YamlGrammar.parse("rules:\n  entry: hello\n")

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source, filename) ⇒ YamlGrammar

Returns a new instance of YamlGrammar.



25
26
27
28
29
# File 'lib/railroad_diagrams/importers/yaml_grammar.rb', line 25

def initialize(source, filename)
  @source = source
  @filename = filename || '<yaml>'
  @lines = source.is_a?(String) ? source.lines : []
end

Class Method Details

.parse(source, filename: '<yaml>') ⇒ Object

Returns a document containing YAML-defined rules.

Examples:

YamlGrammar.parse("rules:\n  entry: hello\n", filename: 'grammar.yml')


21
22
23
# File 'lib/railroad_diagrams/importers/yaml_grammar.rb', line 21

def self.parse(source, filename: '<yaml>')
  new(source, filename).parse
end