class Packwerk::Parsers::Ruby
Public Class Methods
new(parser_class: RaiseExceptionsParser)
click to toggle source
# File lib/packwerk/parsers/ruby.rb, line 23 def initialize(parser_class: RaiseExceptionsParser) @builder = TolerateInvalidUtf8Builder.new @parser_class = parser_class end
Public Instance Methods
call(io:, file_path: "<unknown>")
click to toggle source
# File lib/packwerk/parsers/ruby.rb, line 28 def call(io:, file_path: "<unknown>") buffer = Parser::Source::Buffer.new(file_path) buffer.source = io.read parser = @parser_class.new(@builder) parser.parse(buffer) rescue EncodingError => e result = ParseResult.new(file: file_path, message: e.message) raise Parsers::ParseError, result rescue Parser::SyntaxError => e result = ParseResult.new(file: file_path, message: "Syntax error: #{e}") raise Parsers::ParseError, result end