Module: Mangrove::ControlFlow

Extended by:
T::Sig
Defined in:
lib/mangrove/control_flow.rb,
lib/mangrove/control_flow/rewriter.rb,
lib/mangrove/control_flow/control_signal.rb

Overview

Mangrove::ControlFlow

Defined Under Namespace

Modules: ControlSignal, Handler Classes: Rewriter

Class Method Summary collapse

Class Method Details

.impl!(method_to_be_rewritten) ⇒ String

Parameters:

  • method_to_be_rewritten (Method, UnboundMethod)

Returns:

  • (String)


16
17
18
19
20
21
22
23
24
# File 'lib/mangrove/control_flow/rewriter.rb', line 16

def impl!(method_to_be_rewritten)
  filename, line_number = method_to_be_rewritten.source_location

  source = method_to_be_rewritten.source
  ast = Parser::CurrentRuby.parse(source)
  source_buffer = Parser::Source::Buffer.new("#{filename}:#{line_number}", source:)
  rewriter = Rewriter.new
  rewriter.rewrite(source_buffer, ast)
end