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