Module: File_Checking
- 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!", # different thing :type => "is not of the sought file-type (not '%s', but '%s')!", :mime => "does not have the sought mime-type (not '%s', but '%s')!", }
Class Method Summary collapse
-
.file_check(file, *messages) ⇒ Object
Checks if the file with the name from the first parameter has the properties, listed in the second.
- .magic_check(file, magic) ⇒ Object
- .mime_check(file, mime_type) ⇒ Object
Instance Method Summary collapse
-
#file_check(file, *messages) ⇒ Object
Checks if the file with the name from the first parameter has the properties, listed in the second.
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.
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/file_checking.rb', line 69 def self.file_check(file, *) msg = nil if(file && .respond_to?(:to_ary) && !.empty?) .each do |k| if( k != :mime && k != :type) 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 end msg end |
.magic_check(file, magic) ⇒ Object
96 97 98 99 100 101 102 103 |
# File 'lib/file_checking.rb', line 96 def self.magic_check(file, magic) fm = FileMagic.fm fd = fm.fd(File.new(file) ).split(';')[0] if fd != magic.strip return file.dup << ' ' << ([:type] %[magic, fd]) end return nil end |
.mime_check(file, mime_type) ⇒ Object
87 88 89 90 91 92 93 94 |
# File 'lib/file_checking.rb', line 87 def self.mime_check(file, mime_type) fm = FileMagic.mime fd = fm.fd(File.new(file) ).split(';')[0] if fd != mime_type.strip return file.dup << ' ' << ([:mime] %[mime_type, fd]) end return nil 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.
57 58 59 |
# File 'lib/file_checking.rb', line 57 def file_check(file, *) File_Checking.file_check(file, *) end |