module File_Checking

A module to facilitate frequently occuring checks on file-system objects

Public Class Methods

file_check(file, *messages) click to toggle source

Checks if the file with the name from the first parameter has the properties, listed in the second. The messages parameter is an array of one or all of :exist?, :readable?, :writable?, :directory? or their string-representations, respectively. Returns nil in case of success, otherwise an informative message, describing the first negative test-result.

# File lib/file_checking.rb, line 80
def self.file_check(file, *messages)
  msg = nil
  if(file && messages.respond_to?(:to_ary) && !messages.empty?)
    messages.each do |k|
      if(! k.to_s.end_with?('?'))     
        k = (k.to_s << '?').to_sym
      end
      @log.debug ('checking ' << k.to_s) if @log
      if(msg == nil && File.respond_to?(k) && ! File.send(k, file.to_s))
        msg = "#{file} #{@@text_messages[k.to_sym]}"
      end
    end
  end
  msg
end
file_type(file, mime = false) click to toggle source

find the file-type for a given file name

# File lib/file_checking.rb, line 48
def self::file_type(file, mime = false)
  fm = FileMagic.fm
  file_magic = fm.file(file)
  file_mime = nil
  if mime
  fm.flags = [:mime_type] 
  file_mime = fm.file(file)   
  end
  return file_magic, file_mime
end

Public Instance Methods

file_check(file, *messages) click to toggle source

Checks if the file with the name from the first parameter has the properties, listed in the second. The messages parameter is an array of one or several of :exist?, :readable?, :writable?, :directory? or their string-representations, respectively. Returns nil in case of success, otherwise an informative message, describing the first negative test-result.

# File lib/file_checking.rb, line 68
def file_check(file, *messages)
  File_Checking.file_check(file, *messages)
end