class MetaCommit::Extension::RubySupport::Parsers::Ruby

Public Class Methods

supported_file_extensions() click to toggle source

@return [Array<String>]

# File lib/meta_commit_ruby_support/parsers/ruby.rb, line 7
def self.supported_file_extensions
  ['.rb']
end
supports_syntax?(source_code) click to toggle source

@return [Boolean]

# File lib/meta_commit_ruby_support/parsers/ruby.rb, line 12
def self.supports_syntax?(source_code)
  begin
    Parser::CurrentRuby.parse(source_code)
  rescue Parser::SyntaxError
    return false
  end
  true
end

Public Instance Methods

parse(source_code) click to toggle source

@param [String] source_code @return [MetaCommit::Extension::RubySupport::Models::Ast]

# File lib/meta_commit_ruby_support/parsers/ruby.rb, line 23
def parse(source_code)
  begin
    parsed_ast = parser.parse(source_code)
    MetaCommit::Extension::RubySupport::Models::Ast.new(parsed_ast)
  rescue Parser::SyntaxError
    raise MetaCommit::Contracts::Errors::SourceCodeParsingError.new("can't parse '#{source_code}' using #{self.class}")
  end
end

Protected Instance Methods

parser() click to toggle source
# File lib/meta_commit_ruby_support/parsers/ruby.rb, line 32
def parser
  @parser ||= Parser::CurrentRuby
end