Module: RemoteRuby::ParserFactory

Defined in:
lib/remote_ruby/parser_factory.rb

Overview

Serves to dynamically require the parser gem and configure it. This is done in a separate module to have a possibility to suppress parser gem warnings about Ruby compatibility.

Class Method Summary collapse

Class Method Details

.require_parserObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/remote_ruby/parser_factory.rb', line 8

def self.require_parser
  begin
    prev = $VERBOSE
    $VERBOSE = nil if RemoteRuby.suppress_parser_warnings
    require 'parser/current'
    require 'unparser'
  ensure
    $VERBOSE = prev
  end

  # Opt-in to most recent AST format
  Parser::Builders::Default.emit_lambda              = true
  Parser::Builders::Default.emit_procarg0            = true
  Parser::Builders::Default.emit_encoding            = true
  Parser::Builders::Default.emit_index               = true
  Parser::Builders::Default.emit_arg_inside_procarg0 = true
  Parser::Builders::Default.emit_forward_arg         = true
  Parser::Builders::Default.emit_kwargs              = true
  Parser::Builders::Default.emit_match_pattern       = true
end