HealthWave/suds

View on GitHub
lib/suds/cleaner/column_converter_cleaner.rb

Summary

Maintainability
A
45 mins
Test Coverage
require 'suds/cleaner'

class ColumnConverterCleaner < Cleaner
  def initialize convert_hash, force_strings = false
    @force_strings = force_strings
    @convert_hash = convert_hash
  end

  def clean data
    data.each do |row|
      keys = row.keys
      keys.each do |key|
        if new_key = @convert_hash[key]
          old_value = row[key]
          row.delete key
          if @force_strings
            new_key = new_key.to_s
          else
            new_key = new_key.to_sym
          end
          row[new_key] = old_value
        end
      end
    end
  end
end