Class: ZombieKiller

Inherits:
Object
  • Object
show all
Defined in:
lib/zombie_killer/killer.rb,
lib/zombie_killer/version.rb

Constant Summary collapse

VERSION =
"0.2"

Instance Method Summary collapse

Instance Method Details

#kill_file(filename, new_filename, unsafe: false) ⇒ Object



20
21
22
23
24
# File 'lib/zombie_killer/killer.rb', line 20

def kill_file(filename, new_filename, unsafe: false)
  new_string = kill_string(File.read(filename), filename, unsafe: unsafe)

  File.write(new_filename, new_string)
end

#kill_string(code, filename = "(inline code)", unsafe: false) ⇒ Object Also known as: kill



8
9
10
11
12
13
14
15
16
# File 'lib/zombie_killer/killer.rb', line 8

def kill_string(code, filename = "(inline code)", unsafe: false)
  fixed_point(code) do |c|
    parser   = Parser::CurrentRuby.new
    rewriter = ZombieKillerRewriter.new(unsafe: unsafe)
    buffer   = Parser::Source::Buffer.new(filename)
    buffer.source = c
    rewriter.rewrite(buffer, parser.parse(buffer))
  end
end