class Silicon::Routing::Parser

Public Class Methods

new(file_reader, routes_builder, syntax_parser, syntax_error_interpreter) click to toggle source
# File lib/silicon/routing/parser.rb, line 4
def initialize(file_reader, routes_builder,
               syntax_parser, syntax_error_interpreter)
  @file_reader = file_reader
  @routes_builder = routes_builder
  @syntax_parser = syntax_parser
  @syntax_error_interpreter = syntax_error_interpreter
end

Public Instance Methods

parse() click to toggle source
# File lib/silicon/routing/parser.rb, line 12
def parse
  content = @file_reader.read
  tree = @syntax_parser.parse(content)

  if tree.nil?
    error_message = @syntax_error_interpreter.interpret
    raise Silicon::SyntaxError, error_message
  end

  @routes_builder.build(tree.parse)
end