Class: RXFReadWrite
- Inherits:
-
RXFReader
- Object
- RXFReader
- RXFReadWrite
- Defined in:
- lib/rxfreadwrite.rb
Constant Summary collapse
- @@fs =
:local
Class Method Summary collapse
- .chdir(x) ⇒ Object
- .exist?(filename) ⇒ Boolean
- .exists?(filename) ⇒ Boolean
- .filetype(x) ⇒ Object
-
.fs ⇒ Object
identifies the working file system.
- .glob(s) ⇒ Object
- .mkdir(x) ⇒ Object
- .mkdir_p(x) ⇒ Object
- .pwd ⇒ Object
- .rm(filename) ⇒ Object
- .rm_r(filename, force: false) ⇒ Object
- .rm_rf(filename) ⇒ Object
- .touch(filename, mtime: Time.now) ⇒ Object
- .write(location, s = nil) ⇒ Object
Class Method Details
.chdir(x) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/rxfreadwrite.rb', line 79 def self.chdir(x) # We can use @@fs within chdir() to flag the current file system. # Allowing us to use relative paths with FileX operations instead # of explicitly stating the path each time. e.g. touch 'foo.txt' # if x[/^file:\/\//] or File.exist?(File.dirname(x)) then @@fs = :local FileUtils.chdir x elsif x[/^dfs:\/\//] host = x[/(?<=dfs:\/\/)[^\/]+/] @@fs = 'dfs://' + host DfsFile.chdir x end end |
.exist?(filename) ⇒ Boolean
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# File 'lib/rxfreadwrite.rb', line 101 def self.exist?(filename) #puts 'inside readwrite exists?' type = self.filetype(filename) filex = case type when :file File when :dfs DfsFile else nil end return nil unless filex filex.exist? filename end |
.exists?(filename) ⇒ Boolean
120 121 122 |
# File 'lib/rxfreadwrite.rb', line 120 def self.exists?(filename) self.exist?(filename) end |
.filetype(x) ⇒ Object
124 125 126 127 128 129 130 |
# File 'lib/rxfreadwrite.rb', line 124 def self.filetype(x) return :string if x.lines.length > 1 return :dfs if @@fs[0..2] == 'dfs' RXFReader.filetype(x) end |
.fs ⇒ Object
identifies the working file system
75 76 77 |
# File 'lib/rxfreadwrite.rb', line 75 def self.fs() @@fs end |
.glob(s) ⇒ Object
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/rxfreadwrite.rb', line 132 def self.glob(s) if s[/^dfs:\/\//] then basepath = s[/^(dfs:\/\/[^\/]+)/,1] pos = s.length - basepath.length DfsFile.glob(s).map do |x| pos2 = x =~ /#{s[pos..-1]}/ basepath + x[pos2..-1] end else Dir.glob(s) end end |
.mkdir(x) ⇒ Object
150 151 152 153 154 155 156 157 158 |
# File 'lib/rxfreadwrite.rb', line 150 def self.mkdir(x) if x[/^file:\/\//] or File.exist?(File.dirname(x)) then FileUtils.mkdir x elsif x[/^dfs:\/\//] DfsFile.mkdir x end end |
.mkdir_p(x) ⇒ Object
160 161 162 163 164 165 166 167 168 |
# File 'lib/rxfreadwrite.rb', line 160 def self.mkdir_p(x) if x[/^dfs:\/\//] then DfsFile.mkdir_p x else FileUtils.mkdir_p x end end |
.pwd ⇒ Object
170 171 172 |
# File 'lib/rxfreadwrite.rb', line 170 def self.pwd() DfsFile.pwd end |
.rm(filename) ⇒ Object
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
# File 'lib/rxfreadwrite.rb', line 174 def self.rm(filename) case filename[/^\w+(?=:\/\/)/] when 'dfs' DfsFile.rm filename else if File.basename(filename) =~ /\*/ then Dir.glob(filename).each do |file| begin FileUtils.rm file rescue puts ('RXFReadWrite#rm: ' + file + ' is a Directory').warning end end else FileUtils.rm filename end end end |
.rm_r(filename, force: false) ⇒ Object
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 |
# File 'lib/rxfreadwrite.rb', line 201 def self.rm_r(filename, force: false) case filename[/^\w+(?=:\/\/)/] when 'dfs' DfsFile.rm_r filename, force: force else if File.basename(filename) =~ /\*/ then Dir.glob(filename).each do |file| begin FileUtils.rm_r file, force: force rescue puts ('RXFReadWrite#rm_r: ' + file + ' is a Directory').warning end end else FileUtils.rm_r filename, force: force end end end |
.rm_rf(filename) ⇒ Object
228 229 230 |
# File 'lib/rxfreadwrite.rb', line 228 def self.rm_rf(filename) rm_r(filename, force: true) end |
.touch(filename, mtime: Time.now) ⇒ Object
232 233 234 235 236 237 238 239 240 241 |
# File 'lib/rxfreadwrite.rb', line 232 def self.touch(filename, mtime: Time.now) case filename[/^\w+(?=:\/\/)/] when 'dfs' DfsFile.touch filename, mtime: mtime else FileUtils.touch filename, mtime: mtime end end |
.write(location, s = nil) ⇒ Object
243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 |
# File 'lib/rxfreadwrite.rb', line 243 def self.write(location, s=nil) case location when /^dfs:\/\// DfsFile.write location, s else if DfsFile.exist?(File.dirname(location)) then DfsFile.write location, s else File.write(location, s) end end end |