Class: File
Overview
COSMOS specific additions to the Ruby File class
Direct Known Subclasses
Constant Summary collapse
- NON_ASCII_PRINTABLE =
Non printable ASCII characters
/[^\x21-\x7e\s]/
Class Method Summary collapse
-
.build_timestamped_filename(tags = nil, extension = '.txt', time = Time.now.sys) ⇒ String
Builds a String for use in creating a file.
-
.find_in_search_path(filename) ⇒ String
The full path to the filename if it was found in the Ruby search path.
-
.is_ascii?(filename) ⇒ Boolean
Whether the file only contains ASCII characters.
Class Method Details
.build_timestamped_filename(tags = nil, extension = '.txt', time = Time.now.sys) ⇒ String
55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/cosmos/core_ext/file.rb', line 55 def self.( = nil, extension = '.txt', time = Time.now.sys) = sprintf("%04u_%02u_%02u_%02u_%02u_%02u", time.year, time.month, time.mday, time.hour, time.min, time.sec) ||= [] .compact! = .join("_") if .length > 0 filename = + "_" + + extension else filename = + extension end return filename end |
.find_in_search_path(filename) ⇒ String
Returns The full path to the filename if it was found in the Ruby search path. nil if the fild was not found.
71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/cosmos/core_ext/file.rb', line 71 def self.find_in_search_path(filename) $:.each do |load_path| Find.find(load_path) do |path| Find.prune if /\.svn/.match?(path) return path if File.basename(path) == filename end rescue Errno::ENOENT # Ignore non-existent folders next end return nil end |
.is_ascii?(filename) ⇒ Boolean
Returns Whether the file only contains ASCII characters.
28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/cosmos/core_ext/file.rb', line 28 def self.is_ascii?(filename) return_value = true File.open(filename) do |file| while buf = file.read(1024) if NON_ASCII_PRINTABLE.match?(buf) return_value = false break end end end return return_value end |