Class: File
Overview
COSMOS specific additions to the Ruby File class
Direct Known Subclasses
Constant Summary collapse
- NON_ASCII_PRINTABLE =
/[^\x21-\x7e\s]/
Class Method Summary collapse
-
.build_timestamped_filename(tags = nil, extension = '.txt', time = Time.now) ⇒ 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) ⇒ String
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/cosmos/core_ext/file.rb', line 45 def self.( = nil, extension = '.txt', time = Time.now) = 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.
61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/cosmos/core_ext/file.rb', line 61 def self.find_in_search_path(filename) $:.each do |load_path| begin Find.find(load_path) do |path| Find.prune if path =~ /\.svn/ return path if File.basename(path) == filename end rescue Errno::ENOENT # Ignore non-existent folders next end end return nil end |
.is_ascii?(filename) ⇒ Boolean
Returns Whether the file only contains ASCII characters.
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/cosmos/core_ext/file.rb', line 18 def self.is_ascii?(filename) return_value = true File.open(filename) do |file| while buf = file.read(1024) if buf =~ NON_ASCII_PRINTABLE return_value = false break end end end return return_value end |