class Thor::Actions::InjectIntoFile

:nodoc:

def initialize(base, destination, data, config)

def initialize(base, destination, data, config)
  super(base, destination, { :verbose => true }.merge(config))
  data = data.call if data.is_a?(Proc)
  @replacement = if @config.key?(:after)
    @flag = @config.delete(:after)
    @flag + data
  else
    @flag = @config.delete(:before)
    data + @flag
  end
end

def invoke!

def invoke!
  say_status :inject, config[:verbose]
  replace!(flag, replacement)
end

def replace!(regexp, string)


Adds the content to the file.
def replace!(regexp, string)
  unless base.options[:pretend]
    content = File.read(destination)
    content.gsub!(regexp, string)
    File.open(destination, 'wb') { |file| file.write(content) }
  end
end

def revoke!

def revoke!
  say_status :deinject, config[:verbose]
  replace!(replacement, flag)
end