class FileManipulator::Splitter
Attributes
config[R]
Public Class Methods
new(config = FileManipulator.configuration)
click to toggle source
# File lib/file_manipulator/splitter.rb, line 5 def initialize(config = FileManipulator.configuration) @config = config end
Public Instance Methods
run()
click to toggle source
# File lib/file_manipulator/splitter.rb, line 9 def run index = 0 encoding = File.read(file_name).encoding.to_s File.open(file_name, 'r') do |input| until input.eof? File.open(File.join(config.split_files_directory, output_file_name(index)), 'w') do |output| output << input.read(config.size).force_encoding(encoding) end index += 1 end end end
Private Instance Methods
basename()
click to toggle source
# File lib/file_manipulator/splitter.rb, line 26 def basename File.basename(file_name, File.extname(file_name)) end
extname()
click to toggle source
# File lib/file_manipulator/splitter.rb, line 30 def extname File.extname(file_name).delete('.') end
file_name()
click to toggle source
# File lib/file_manipulator/splitter.rb, line 34 def file_name config.file_name end
number_of_digits()
click to toggle source
# File lib/file_manipulator/splitter.rb, line 38 def number_of_digits @number_of_digits ||= (File.size(file_name).to_f / config.size).ceil.to_s.size end
output_file_name(index)
click to toggle source
# File lib/file_manipulator/splitter.rb, line 42 def output_file_name(index) output_file_basename = sprintf("#{basename}_%0#{number_of_digits}d", index) output_file_basename = "#{prefix}_#{output_file_basename}" unless prefix == '' extname == '' ? output_file_basename : "#{output_file_basename}.#{extname}" end
prefix()
click to toggle source
# File lib/file_manipulator/splitter.rb, line 48 def prefix config.prefix end