Sha256: 3809088a56df3f40d60821512ab9bb50716348df732b718e4aa8e5a6ae29b311

Contents?: true

Size: 480 Bytes

Versions: 33

Compression:

Stored size: 480 Bytes

Contents

require 'cgi'

module ActiveUtils
  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_method :to_s, :to_post_data

    private
    def required?(key)
      required_fields.include?(key)
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
active_utils-3.4.2 lib/active_utils/post_data.rb
active_utils-3.4.1 lib/active_utils/post_data.rb
active_utils-3.4.0 lib/active_utils/post_data.rb
active_utils-3.3.19 lib/active_utils/post_data.rb
active_utils-3.3.18 lib/active_utils/post_data.rb
active_utils-3.3.17 lib/active_utils/post_data.rb
active_utils-3.3.16 lib/active_utils/post_data.rb
active_utils-3.3.15 lib/active_utils/post_data.rb
active_utils-3.3.14 lib/active_utils/post_data.rb
active_utils-3.3.13 lib/active_utils/post_data.rb
active_utils-3.3.12 lib/active_utils/post_data.rb
active_utils-3.3.11 lib/active_utils/post_data.rb
active_utils-3.3.10 lib/active_utils/post_data.rb
active_utils-3.3.9 lib/active_utils/post_data.rb
active_utils-3.3.8 lib/active_utils/post_data.rb
active_utils-3.3.7 lib/active_utils/post_data.rb
active_utils-3.3.6 lib/active_utils/post_data.rb
active_utils-3.3.5 lib/active_utils/post_data.rb
active_utils-3.3.4 lib/active_utils/post_data.rb
active_utils-3.3.3 lib/active_utils/post_data.rb