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, #pre_conv_result, #pre_convert_file, #pre_convert_line, #pre_init_acc, #pre_init_conv

Instance Method Details

#conv(**opts) ⇒ Object

Run file conversion



181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
# File 'lib/fileconv/base.rb', line 181

def conv(**opts)
  @meta = {}
  @opts = opts
  @opts[:read_file_opts] ||= {}
  @opts[:write_file_opts] ||= {}

  pre_init_conv()
  init_conv()
  post_init_conv()

  files = input_files()
  unless files
    glob = input_ext ?  "*." + input_ext : "*"
    files = Dir.glob(::File.join(input_dir, glob))
  end

  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