Class: SlimLint::RubyParser

Inherits:
Object
  • Object
show all
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

Constructor Details

#initializeRubyParser

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