Sha256: aedeea383ff120c2085b09f7f1d480441e256059c730c42fd06c0d5f88b78065

Contents?: true

Size: 897 Bytes

Versions: 1

Compression:

Stored size: 897 Bytes

Contents

module Sparrow
  module Strategies
    class Ignore
      include Transformable

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

      def params
        ret = @params || @env['rack.input'].send(:read)
        @env['rack.input'].rewind
        ret
      end

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

      def handle
        # synchronize rack.input and form hash values
        input = @env['rack.input'].gets

        begin
          @env['rack.request.form_hash'] = MultiJson.load(input)
        rescue MultiJson::ParseError
          # ignore
        ensure
          @env['rack.input'].rewind
        end if input.present?

        @env
      end

      def json_body
        params
      end

      def transform_params
        ensure_json
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cp-sparrow-0.0.12 lib/sparrow/strategies/ignore.rb