Sha256: 3aa9ede33c75ca489d14b3e2ba79916cfa0a21f14853bd8280bc851df1d65e6b

Contents?: true

Size: 446 Bytes

Versions: 77

Compression:

Stored size: 446 Bytes

Contents

require 'cgi'

class PostData < Hash
  class_inheritable_accessor :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_method :to_s, :to_post_data
  
  private
  def required?(key)
    required_fields.include?(key)
  end
end

Version data entries

77 entries across 77 versions & 22 rubygems

Version Path
mysmallidea-activemerchant-1.5.1 lib/active_merchant/lib/post_data.rb
mcmire-activemerchant-1.5.2 lib/active_merchant/lib/post_data.rb
active_shipping-0.1.3 lib/active_shipping/lib/post_data.rb
active_shipping-0.1.2 lib/active_shipping/lib/post_data.rb
smulube-activemerchant-1.5.1 lib/active_merchant/lib/post_data.rb
easy-testmode-activemerchant-1.5.1 lib/active_merchant/lib/post_data.rb
noctivityinc-activemerchant-1.5.2 lib/active_merchant/lib/post_data.rb
ghazel-activemerchant-1.4.2 lib/active_merchant/lib/post_data.rb
noctivityinc-activemerchant-1.5.1 lib/active_merchant/lib/post_data.rb
activemerchant-1.5.1 lib/active_merchant/lib/post_data.rb
activemerchant-est-1.4.2.6 lib/active_merchant/lib/post_data.rb
activemerchant-1.5.0 lib/active_merchant/lib/post_data.rb
active_shipping-0.1.1 lib/active_shipping/lib/post_data.rb
active_shipping-0.1.0 lib/active_shipping/lib/post_data.rb
patmaddox-activemerchant-1.4.2.6 lib/active_merchant/lib/post_data.rb
patmaddox-activemerchant-1.4.2.5 lib/active_merchant/lib/post_data.rb
patmaddox-activemerchant-1.4.2.4 lib/active_merchant/lib/post_data.rb
patmaddox-activemerchant-1.4.2.3 lib/active_merchant/lib/post_data.rb
patmaddox-activemerchant-1.4.2.2 lib/active_merchant/lib/post_data.rb
patmaddox-activemerchant-1.4.2.1 lib/active_merchant/lib/post_data.rb