Class: FileManipulator::Merger

Inherits:
Object
  • Object
show all
Defined in:
lib/file_manipulator/merger.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = FileManipulator.configuration) ⇒ Merger

Returns a new instance of Merger.



5
6
7
# File 'lib/file_manipulator/merger.rb', line 5

def initialize(config = FileManipulator.configuration)
  @config = config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



3
4
5
# File 'lib/file_manipulator/merger.rb', line 3

def config
  @config
end

Instance Method Details

#merged_fileObject



19
20
21
22
23
24
25
# File 'lib/file_manipulator/merger.rb', line 19

def merged_file
  sample_split_file = Dir.glob("#{config.split_files_directory}/#{config.prefix}_*").first
  basename = File.basename(sample_split_file)
  extname = File.extname(sample_split_file)
  basename = basename.sub(/^#{config.prefix}_/, '').sub(/#{extname}$/, '').sub(/_\d*$/, '')
  File.join(config.merged_file_directory, "#{basename}#{extname}")
end

#runObject



9
10
11
12
13
14
15
16
17
# File 'lib/file_manipulator/merger.rb', line 9

def run
  string_io = StringIO.new

  Dir.glob("#{config.split_files_directory}/#{config.prefix}_*").sort.each do |file|
    string_io.puts File.read(file)
  end

  File.write(merged_file, string_io.string)
end