Module: Fileconv::Base

Includes:
Convertor, MetaConvertor
Included in:
CSV, Data, File, JSON, Line
Defined in:
lib/fileconv/base.rb

Instance Method Summary collapse

Methods included from Convertor

#conv_result, #convert_file, #convert_line, #init_acc, #init_conv, #input_dir, #input_ext, #input_files, #output_dir, #output_filename, #read_file, #result_filename

Methods included from MetaConvertor

#post_conv_result, #post_convert_file, #post_convert_line, #post_init_acc, #post_init_conv, #post_input_files, #pre_conv_result, #pre_convert_file, #pre_convert_line, #pre_init_acc, #pre_init_conv, #pre_input_files

Instance Method Details

#conv(**opts) ⇒ Object

Run file conversion



192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
# 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