Module: File_Checking

Included in:
Configuration
Defined in:
lib/file_checking.rb

Overview

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

Constant Summary collapse

@@text_messages =
{
  :exist? => "does not exist!",
  :exist => "does not exist!",
  :readable? => "is not readable!",
  :readable => "is not readable!",
  :executable? => "is not executable!",
  :executable => "is not executable!",
  :writable? => "is not writable!",
  :writable => "is not writable!",
  :directory? => "is not a directory!",
  :directory => "is not a directory!",
  :file? => "is not a file!",
  :file => "is not a file!",
  :type => "is not of the right file-type!",
  :mime => "does not have the right mime-type!",
}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.file_check(file, *messages) ⇒ Object

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.



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# 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) ⇒ Object

find the file-type for a given file name



48
49
50
51
52
53
54
55
56
57
# 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

Instance Method Details

#file_check(file, *messages) ⇒ Object

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.



68
69
70
# File 'lib/file_checking.rb', line 68

def file_check(file, *messages)
  File_Checking.file_check(file, *messages)
end