Sha256: dacadca6b264fc22b9ad8396749a31d6352c821d1a6a9c09068980fb4aa6a60b

Contents?: true

Size: 588 Bytes

Versions: 6

Compression:

Stored size: 588 Bytes

Contents

require 'msgpack'
require 'action_dispatch'

module Acfs
  module Middleware

    # Register msgpack mime type
    ::Mime::Type.register 'application/x-msgpack', :msgpack

    # A middleware to decode Message Pack responses.
    #
    class MessagePackDecoder < Base

      CONTENT_TYPES = %w(application/x-msgpack)

      def response(response, nxt)
        response.data = ::MessagePack.load(response.body) if message_pack?(response)
        nxt.call response
      end

      def message_pack?(response)
        CONTENT_TYPES.include? response.content_type
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
acfs-0.11.0 lib/acfs/middleware/msgpack_decoder.rb
acfs-0.10.0 lib/acfs/middleware/msgpack_decoder.rb
acfs-0.9.0 lib/acfs/middleware/msgpack_decoder.rb
acfs-0.8.0 lib/acfs/middleware/msgpack_decoder.rb
acfs-0.7.0 lib/acfs/middleware/msgpack_decoder.rb
acfs-0.6.0 lib/acfs/middleware/msgpack_decoder.rb