Module: File_Checking

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

Overview

A module to facilitate frequently occuring checks on file-system objects. You can certainly do without this, but maybe you find it useful.

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!",
}

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.



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/file_checking.rb', line 65

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

Instance Method Details

#file_check(file, *messages) ⇒ Object Also known as: check_file

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.



53
54
55
# File 'lib/file_checking.rb', line 53

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