module File_Checking
A module to facilitate frequently occuring checks on file-system objects
Public Class Methods
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
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
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