module Fileconv::Base
Public Instance Methods
conv(**opts)
click to toggle source
Run file conversion
# File lib/fileconv/base.rb, line 192 def conv(**opts) @meta = {} @opts = opts @opts[:read_file_opts] ||= {} @opts[:write_file_opts] ||= {} pre_init_conv() init_conv() post_init_conv() glob = input_ext ? "*." + input_ext : "*" files = Dir.glob(::File.join(input_dir, glob)) files = pre_input_files(files) files = input_files(files) files = post_input_files(files) files.each do |filename| process_file(filename) end pre_conv_result result = conv_result post_result = post_conv_result(result) if post_result Dir.mkdir output_dir if !Dir.exists? output_dir ::File.write(::File.join(output_dir, result_filename), post_result, @opts[:write_file_opts]) end end
Private Instance Methods
process_file(filename)
click to toggle source
# File lib/fileconv/base.rb, line 149 def process_file(filename) if FileTest.directory? filename return end acc = {orig_filename: filename} pre_init_acc(acc) init_acc(acc) post_init_acc(acc) raw = nil unless @opts[:disable_read_file] raw = read_file(filename, acc) raw = ::File.read(filename, @opts[:read_file_opts]) unless raw end converted_file = pre_convert_file(raw, acc) if @opts[:line_mode] # Line mode converted_file = process_line(converted_file, acc) end converted_file = convert_file(converted_file, acc) converted_file = post_convert_file(converted_file, acc) if converted_file out = output_filename(::File.basename(filename), acc) Dir.mkdir output_dir if !Dir.exists? output_dir ::File.write(::File.join(output_dir, out), converted_file, @opts[:read_file_opts]) end end
process_line(raw_lines, acc)
click to toggle source
# File lib/fileconv/base.rb, line 180 def process_line(raw_lines, acc) lines = [] raw_lines.each do |line| converted_line = pre_convert_line(line, acc) converted_line = convert_line(converted_line, acc) converted_line = post_convert_line(converted_line, acc) lines.push *converted_line end lines end