Class: File
Overview
OpenC3 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.
Instance Method Summary collapse
Class Method Details
.build_timestamped_filename(tags = nil, extension = '.txt', time = Time.now.sys) ⇒ String
58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/openc3/core_ext/file.rb', line 58 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.
74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/openc3/core_ext/file.rb', line 74 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.
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/openc3/core_ext/file.rb', line 31 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 |