class File

Changes since 0.1:

  1. Using the built-in class-method now.

Changes:

  1. /File.gsubX/File/self.gsubX/.

Public Class Methods

gsub!(filename, replacement_pattern, replacement_text, selection_pattern = nil) click to toggle source
# File lib/File/self.gsubX.rb, line 17
def self.gsub!(filename, replacement_pattern, replacement_text, selection_pattern = nil)
  replacement_pattern = (
    case replacement_pattern
    when String; Regexp.new(Regexp.escape(replacement_pattern))
    when Regexp; replacement_pattern
    else; raise
    end
  )
  selection_pattern = replacement_pattern unless selection_pattern
  selection_pattern = (
    case selection_pattern
    when String; Regexp.new(Regexp.escape(selection_pattern))
    when Regexp; selection_pattern
    else; raise
    end
  )
  file_handle = self.open(filename, 'r')
  tmp_file_handle = self.new(filename + '.tmp', 'w')
  modified = false
  file_handle.each do |line|
    if line =~ Regexp.new(selection_pattern)
      tmp_file_handle.print line.gsub(Regexp.new(replacement_pattern), replacement_text)
      modified = true
    else
      tmp_file_handle.print line
    end
  end
  file_handle.close
  tmp_file_handle.close
  if modified
    self.delete(filename)
    self.rename(filename + '.tmp', filename)
  else
    self.delete(filename + '.tmp')
  end
end

Public Instance Methods

basename_without_extname() click to toggle source
# File lib/File/basename_without_extname.rb, line 13
def basename_without_extname
  File.basename(path, extname)
end
extname() click to toggle source
# File lib/File/extname.rb, line 14
def extname
  File.extname(path)
end