Class: MetaCommit::Extension::RubySupport::Parsers::Ruby
- Inherits:
-
Contracts::Parser
- Object
- Contracts::Parser
- MetaCommit::Extension::RubySupport::Parsers::Ruby
- Defined in:
- lib/meta_commit_ruby_support/parsers/ruby.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.supported_file_extensions ⇒ Array<String>
7 8 9 |
# File 'lib/meta_commit_ruby_support/parsers/ruby.rb', line 7 def self.supported_file_extensions ['.rb'] end |
.supports_syntax?(source_code) ⇒ Boolean
12 13 14 15 16 17 18 19 |
# 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 |
Instance Method Details
#parse(source_code) ⇒ MetaCommit::Extension::RubySupport::Models::Ast
23 24 25 26 27 28 29 30 |
# 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 |