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
- #each(*args, &block) ⇒ Object (also: #each_line)
-
#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
91 92 93 94 95 96 97 98 |
# File 'lib/ndr_support/safe_file.rb', line 91 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
105 106 107 108 |
# File 'lib/ndr_support/safe_file.rb', line 105 def self.basename_file # SECURE: 02-08-2012 TPG Can't assign to __FILE__ File.basename(__FILE__) end |
.delete(*list) ⇒ Object
117 118 119 120 121 122 123 |
# File 'lib/ndr_support/safe_file.rb', line 117 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
67 68 69 70 |
# File 'lib/ndr_support/safe_file.rb', line 67 def self.directory?(file_name) verify file_name File.directory?(file_name) end |
.dirname(path) ⇒ Object
110 111 112 113 114 115 |
# File 'lib/ndr_support/safe_file.rb', line 110 def self.dirname(path) verify path res = path.clone res.path = File.dirname(path) res end |
.exist?(file_name) ⇒ Boolean
72 73 74 |
# File 'lib/ndr_support/safe_file.rb', line 72 def self.exist?(file_name) self.exists?(file_name) end |
.exists?(file_name) ⇒ Boolean
76 77 78 79 |
# File 'lib/ndr_support/safe_file.rb', line 76 def self.exists?(file_name) verify file_name File.exist?(file_name) end |
.extname(file_name) ⇒ Object
51 52 53 54 |
# File 'lib/ndr_support/safe_file.rb', line 51 def self.extname(file_name) verify file_name File.extname(file_name) end |
.file?(file_name) ⇒ Boolean
81 82 83 84 |
# File 'lib/ndr_support/safe_file.rb', line 81 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
56 57 58 59 |
# File 'lib/ndr_support/safe_file.rb', line 56 def self.read(file_name) verify file_name, 'r' File.read(file_name) end |
.readlines(*args) ⇒ Object
61 62 63 64 65 |
# File 'lib/ndr_support/safe_file.rb', line 61 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
100 101 102 103 |
# File 'lib/ndr_support/safe_file.rb', line 100 def self.safepath_to_string(fname) verify fname fname.to_s end |
.zero?(file_name) ⇒ Boolean
86 87 88 89 |
# File 'lib/ndr_support/safe_file.rb', line 86 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 |
#each(*args, &block) ⇒ Object Also known as: each_line
41 42 43 44 |
# File 'lib/ndr_support/safe_file.rb', line 41 def each(*args, &block) verify @file_name, 'r' @file.each(*args, &block) end |
#path ⇒ Object
47 48 49 |
# File 'lib/ndr_support/safe_file.rb', line 47 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 |