Module: Mir::Utils
- Defined in:
- lib/mir/utils.rb
Class Method Summary collapse
-
.filename_with_sequence(name, seq) ⇒ Object
Generates filename for a split file filename_with_sequence(“foobar.txt”, 23) => foobar.txt.00000023.
-
.recombine(source_dir, dest) ⇒ Object
Recombines a file from pieces.
-
.split_file(file, chunk_size, dest) ⇒ Object
Splits a file into pieces that may be reassembled later.
- .try_create_dir(path) ⇒ Object
Class Method Details
.filename_with_sequence(name, seq) ⇒ Object
Generates filename for a split file filename_with_sequence(“foobar.txt”, 23) => foobar.txt.00000023
8 9 10 |
# File 'lib/mir/utils.rb', line 8 def self.filename_with_sequence(name, seq) [name, ".", "%08d" % seq].join end |
.recombine(source_dir, dest) ⇒ Object
Recombines a file from pieces
39 40 41 42 43 44 45 46 47 |
# File 'lib/mir/utils.rb', line 39 def self.recombine(source_dir, dest) parts = Dir.glob(File.join(source_dir, "*")) open(File.(dest), "wb") do |file| parts.each do |part| p_io = File.new(part) file.write p_io.read end end end |
.split_file(file, chunk_size, dest) ⇒ Object
Splits a file into pieces that may be reassembled later
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/mir/utils.rb', line 20 def self.split_file(file, chunk_size, dest) try_create_dir(dest) unless Dir.exist?(dest) fname = File.join(dest, File.basename(file)) seq = 1 open(file, "rb") do |f| while split_data = f.read(chunk_size) do split_name = self.filename_with_sequence(fname, seq) open(split_name, "wb") { |dest| dest.write(split_data) } seq += 1 end end end |
.try_create_dir(path) ⇒ Object
12 13 14 |
# File 'lib/mir/utils.rb', line 12 def self.try_create_dir(path) Dir.mkdir(path) unless Dir.exist?(path) end |