Class: Deprewriter::Transformer

Inherits:
Object
  • Object
show all
Defined in:
lib/deprewriter/transformer.rb

Overview

Handles source code transformation for deprecated methods

Instance Method Summary collapse

Constructor Details

#initialize(source, node, transform_with) ⇒ Transformer

Returns a new instance of Transformer.

Parameters:

  • source (String)

    The source code

  • node (Prism::CallNode)

    The node to transform

  • transform_with (String)

    The transformation pattern



11
12
13
14
15
# File 'lib/deprewriter/transformer.rb', line 11

def initialize(source, node, transform_with)
  @source = source
  @node = node
  @transform_with = transform_with
end

Instance Method Details

#transformString

Returns The transformed source code.

Returns:

  • (String)

    The transformed source code



18
19
20
21
22
23
24
25
# File 'lib/deprewriter/transformer.rb', line 18

def transform
  return @source if @node.nil?

  before_node = @source[0...@node.location.start_offset]
  new_code = transform_call_node
  after_node = @source[@node.location.end_offset..]
  before_node + new_code + after_node
end