Class: SlimLint::RubyParser
- Inherits:
-
Object
- Object
- SlimLint::RubyParser
- Defined in:
- lib/slim_lint/ruby_parser.rb
Overview
Parser for the Ruby language.
This provides a convenient wrapper around the parser gem and the astrolabe integration to go with it. It is intended to be used for linter checks that require deep inspection of Ruby code.
Instance Method Summary collapse
-
#initialize ⇒ RubyParser
constructor
Creates a reusable parser.
-
#parse(source) ⇒ Array
Parse the given Ruby source into an abstract syntax tree.
Constructor Details
#initialize ⇒ RubyParser
Creates a reusable parser.
15 16 17 18 |
# File 'lib/slim_lint/ruby_parser.rb', line 15 def initialize @builder = ::RuboCop::AST::Builder.new @parser = ::Parser::CurrentRuby.new(@builder) end |
Instance Method Details
#parse(source) ⇒ Array
Parse the given Ruby source into an abstract syntax tree.
24 25 26 27 28 29 30 |
# File 'lib/slim_lint/ruby_parser.rb', line 24 def parse(source) buffer = ::Parser::Source::Buffer.new('(string)') buffer.source = source @parser.reset @parser.parse(buffer) end |