module Bismas::Filter
Public Instance Methods
run(klass, options, &block)
click to toggle source
# File lib/bismas/filter.rb 35 def run(klass, options, &block) 36 execute = execute_options(options, &block) 37 mapping = mapping(options[:mapping], &block) 38 39 key_format = options[:key_format] 40 41 reader_options, writer_options = input_options(options), { 42 encoding: encoding = options[:output_encoding], 43 key: options[:output_key], 44 sort: options[:sort], 45 padding_length: options[:padding_length], 46 category_length: options[:category_length] 47 } 48 49 execute[0][bind1 = binding] 50 51 klass.open(options[:output], writer_options) { |writer| 52 Reader.parse_file(options[:input], reader_options) { |id, record| 53 execute[1][bind2 = binding] 54 record = mapping.apply(encode(record, encoding)) 55 56 execute[2][bind2] 57 writer[key_format % id] = record 58 } 59 } 60 61 execute[3][bind1] 62 end