lib/active_merchant/post_data.rb
require 'cgi'
module ActiveMerchant
class PostData < Hash
class_attribute :required_fields, instance_writer: false
self.required_fields = []
def []=(key, value)
return if value.blank? && !required?(key)
super
end
def to_post_data
collect { |key, value| "#{key}=#{CGI.escape(value.to_s)}" }.join('&')
end
alias to_s to_post_data
private
def required?(key)
required_fields.include?(key)
end
end
end