module Gem::Comparator::DirUtils
Constants
- SHEBANG_REGEX
Attributes
files_first_line[RW]
Public Class Methods
dirs_of_files(file_list)
click to toggle source
Returns a unique list of directories and top level files out of an array of files
# File lib/rubygems/comparator/dir_utils.rb, line 34 def self.dirs_of_files(file_list) dirs_of_files = [] file_list.each do |file| unless Pathname.new(file).dirname.to_s == '.' dirs_of_files << "#{Pathname.new(file).dirname.to_s}/" else dirs_of_files << file end end dirs_of_files.uniq end
file_first_line(file)
click to toggle source
# File lib/rubygems/comparator/dir_utils.rb, line 9 def self.file_first_line(file) File.open(file){ |f| f.readline }.gsub(/(.*)\n/, '\1') rescue end
file_has_shebang?(file)
click to toggle source
# File lib/rubygems/comparator/dir_utils.rb, line 14 def self.file_has_shebang?(file) file_first_line(file) =~ SHEBANG_REGEX end
file_permissions(file)
click to toggle source
# File lib/rubygems/comparator/dir_utils.rb, line 22 def self.file_permissions(file) sprintf("%o", File.stat(file).mode) end
files_same_first_line?(file1, file2)
click to toggle source
# File lib/rubygems/comparator/dir_utils.rb, line 18 def self.files_same_first_line?(file1, file2) file_first_line(file1) == file_first_line(file2) end
gem_bin_file?(file)
click to toggle source
# File lib/rubygems/comparator/dir_utils.rb, line 26 def self.gem_bin_file?(file) file =~ /(\A|.*\/)bin\/.*/ end
remove_subdirs(dirs)
click to toggle source
# File lib/rubygems/comparator/dir_utils.rb, line 46 def self.remove_subdirs(dirs) dirs.dup.sort_by(&:length).reverse.each do |dir| dirs.delete_if{ |d| d =~ /#{dir}\/.+/ } end dirs end