class BankTransfer # Formatter module DataFormatter def format_data(data_collection, data_parser, config) row = [] data_collection.each do |data| config.attr_keys.each do |key| data_parsed = data_parser.new(data, config) attr_data = data_parsed.send(key) row << attr_format(attr_data, config.attrs[key]) end row << "\n" end row.join end private def attr_format(input, config) if [:rigth].include? config[:fill_side] input.to_s.ljust(config[:max_length], config[:fill]) elsif [:left].include? config[:fill_side] input.to_s.rjust(config[:max_length], config[:fill]) end end end end