module Stairs::Util::FileMutation
Public Class Methods
remove(pattern, filename)
click to toggle source
# File lib/stairs/util/file_mutation.rb, line 18 def remove(pattern, filename) return unless File.exist? filename contents = File.read filename return unless contents =~ pattern contents.slice!(pattern) write contents, filename end
replace_or_append(pattern, string, filename)
click to toggle source
# File lib/stairs/util/file_mutation.rb, line 5 def replace_or_append(pattern, string, filename) if File.exist? filename contents = File.read filename if contents =~ pattern contents.sub! pattern, string write contents, filename return end end write_line string, filename end
write(string, filename)
click to toggle source
# File lib/stairs/util/file_mutation.rb, line 38 def write(string, filename) File.open filename, 'w+' do |file| file.puts string end end
write_line(string, filename)
click to toggle source
# File lib/stairs/util/file_mutation.rb, line 28 def write_line(string, filename) File.open filename, 'a+' do |file| # ensure file ends with newline before appending last_line = file.each_line.reduce('') { |_m, l| l } file.puts '' unless last_line == '' || last_line =~ /(.*)\n/ file.puts string end end