Class: SafeFile
- Inherits:
-
Object
- Object
- SafeFile
- Defined in:
- lib/ndr_support/safe_file.rb
Class Method Summary collapse
- .basename(file_name, suffix = :none) ⇒ Object
- .basename_file ⇒ Object
- .delete(*list) ⇒ Object
- .directory?(file_name) ⇒ Boolean
- .dirname(path) ⇒ Object
- .exist?(file_name) ⇒ Boolean
- .exists?(file_name) ⇒ Boolean
- .extname(file_name) ⇒ Object
- .file?(file_name) ⇒ Boolean
- .open(*args) {|f| ... } ⇒ Object
- .read(file_name) ⇒ Object
- .readlines(*args) ⇒ Object
- .safepath_to_string(fname) ⇒ Object
- .zero?(file_name) ⇒ Boolean
Instance Method Summary collapse
- #close ⇒ Object
-
#initialize(*args) ⇒ SafeFile
constructor
A new instance of SafeFile.
- #path ⇒ Object
- #read ⇒ Object
- #write(data) ⇒ Object
Constructor Details
#initialize(*args) ⇒ SafeFile
Returns a new instance of SafeFile.
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/ndr_support/safe_file.rb', line 2 def initialize(*args) a = self.class.get_fname_mode_prms(*args) fname = a[0] mode = a[1] prms = a[2] if prms @file = File.new(fname, mode, prms) else @file = File.new(fname, mode) end # Just in case better clone the object # Ruby object are passed by reference @file_name = fname.clone end |
Class Method Details
.basename(file_name, suffix = :none) ⇒ Object
85 86 87 88 89 90 91 92 |
# File 'lib/ndr_support/safe_file.rb', line 85 def self.basename(file_name, suffix = :none) verify file_name if suffix == :none File.basename(file_name) else File.basename(file_name, suffix) end end |
.basename_file ⇒ Object
99 100 101 102 |
# File 'lib/ndr_support/safe_file.rb', line 99 def self.basename_file # SECURE: 02-08-2012 TPG Can't assign to __FILE__ File.basename(__FILE__) end |
.delete(*list) ⇒ Object
111 112 113 114 115 116 117 |
# File 'lib/ndr_support/safe_file.rb', line 111 def self.delete(*list) verify list, 'w' list.each do |file| File.delete(file) if File.exist?(file) end.length end |
.directory?(file_name) ⇒ Boolean
61 62 63 64 |
# File 'lib/ndr_support/safe_file.rb', line 61 def self.directory?(file_name) verify file_name File.directory?(file_name) end |
.dirname(path) ⇒ Object
104 105 106 107 108 109 |
# File 'lib/ndr_support/safe_file.rb', line 104 def self.dirname(path) verify path res = path.clone res.path = File.dirname(path) res end |
.exist?(file_name) ⇒ Boolean
66 67 68 |
# File 'lib/ndr_support/safe_file.rb', line 66 def self.exist?(file_name) self.exists?(file_name) end |
.exists?(file_name) ⇒ Boolean
70 71 72 73 |
# File 'lib/ndr_support/safe_file.rb', line 70 def self.exists?(file_name) verify file_name File.exist?(file_name) end |
.extname(file_name) ⇒ Object
45 46 47 48 |
# File 'lib/ndr_support/safe_file.rb', line 45 def self.extname(file_name) verify file_name File.extname(file_name) end |
.file?(file_name) ⇒ Boolean
75 76 77 78 |
# File 'lib/ndr_support/safe_file.rb', line 75 def self.file?(file_name) verify file_name File.file?(file_name) end |
.open(*args) {|f| ... } ⇒ Object
19 20 21 22 23 24 25 |
# File 'lib/ndr_support/safe_file.rb', line 19 def self.open(*args) return SafeFile.new(*args) unless block_given? f = SafeFile.new(*args) yield f f.close end |
.read(file_name) ⇒ Object
50 51 52 53 |
# File 'lib/ndr_support/safe_file.rb', line 50 def self.read(file_name) verify file_name, 'r' File.read(file_name) end |
.readlines(*args) ⇒ Object
55 56 57 58 59 |
# File 'lib/ndr_support/safe_file.rb', line 55 def self.readlines(*args) fail ArgumentError, "Incorrect number of arguments - #{args.length}" if args.length > 2 or args.length == 0 verify args[0], 'r' File.readlines(*args) end |
.safepath_to_string(fname) ⇒ Object
94 95 96 97 |
# File 'lib/ndr_support/safe_file.rb', line 94 def self.safepath_to_string(fname) verify fname fname.to_s end |
.zero?(file_name) ⇒ Boolean
80 81 82 83 |
# File 'lib/ndr_support/safe_file.rb', line 80 def self.zero?(file_name) verify file_name File.zero?(file_name) end |
Instance Method Details
#close ⇒ Object
27 28 29 |
# File 'lib/ndr_support/safe_file.rb', line 27 def close @file.close end |
#path ⇒ Object
41 42 43 |
# File 'lib/ndr_support/safe_file.rb', line 41 def path @file_name.clone end |
#read ⇒ Object
31 32 33 34 |
# File 'lib/ndr_support/safe_file.rb', line 31 def read verify @file_name, 'r' @file.read end |
#write(data) ⇒ Object
36 37 38 39 |
# File 'lib/ndr_support/safe_file.rb', line 36 def write(data) verify @file_name, 'w' @file.write(data) end |