class Nito::Sed

Public Class Methods

new(file, regex, change) click to toggle source
# File lib/nito/sed.rb, line 5
def initialize(file, regex, change)
  @file = file
  @regex = regex
  @change = change
  apply
end

Public Instance Methods

apply() click to toggle source
# File lib/nito/sed.rb, line 12
def apply
  raise ArgumentError "No file #{@file} exist" if ! File.exist? @file
  tmp = Tempfile.new('sed')
  File.open(@file).each { |l|
    if l.match(@regex)
      File.write(tmp, "#{@change}\n", mode: 'a')
    else
      File.write(tmp, l, mode: 'a')
    end
  }
  Nito::Cp.new(tmp.path, @file)
end