Module: Metamorpher::Transformer::Base

Included in:
Mutator, Refactorer
Defined in:
lib/metamorpher/transformer/base.rb

Instance Method Summary collapse

Instance Method Details

#driverObject



27
28
29
# File 'lib/metamorpher/transformer/base.rb', line 27

def driver
  @driver ||= Metamorpher::Drivers::Ruby.new
end

#transform(src, &block) ⇒ Object



9
10
11
12
13
# File 'lib/metamorpher/transformer/base.rb', line 9

def transform(src, &block)
  literal = driver.parse(src)
  replacements = reduce_to_replacements(src, literal)
  merge(src, replacements, &block)
end

#transform_file(path, &block) ⇒ Object



15
16
17
# File 'lib/metamorpher/transformer/base.rb', line 15

def transform_file(path, &block)
  transform(File.read(path), &block)
end

#transform_files(paths, &block) ⇒ Object



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

def transform_files(paths, &block)
  paths.each_with_object({}) do |path, result|
    changes = []
    result[path] = transform_file(path) { |change| changes << change }
    block.call(path, result[path], changes) if block
  end
end