Sha256: 0025a0fa5eb43e9debab47255a8069b2e3a68c9ccc316de5480585f21306606c

Contents?: true

Size: 824 Bytes

Versions: 2

Compression:

Stored size: 824 Bytes

Contents

require 'active_support/core_ext/object/blank'
require 'sparrow/transformable'

module Sparrow
  module Strategies
    class FormHash
      REQUEST_FORM_HASH_KEY = 'rack.request.form_hash'
      include Transformable

      attr_reader :env, :type

      def self.handle(env, type)
        self.new(env, type).handle
      end

      def initialize(env, type = :request, params = nil)
        @env    = env
        @params = params
        @type   = type
      end

      def handle
        super
        handle_form_hash
      end

      def params
        @params || env[REQUEST_FORM_HASH_KEY]
      end

      private

      def handle_form_hash
        if params.present?
          transformed_params = transform_params
          @env[REQUEST_FORM_HASH_KEY] = transformed_params
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cp-sparrow-0.0.12 lib/sparrow/strategies/form_hash.rb
cp-sparrow-0.0.11 lib/sparrow/strategies/form_hash.rb