Sha256: cb68a9be4945af48457f2534e44e27d625d0c11a192ca4f6bc0b869d70eb21ea
Contents?: true
Size: 866 Bytes
Versions: 3
Compression:
Stored size: 866 Bytes
Contents
# frozen_string_literal: true Excon.defaults[:middlewares].delete(Excon::Addressable::Middleware) Excon.defaults[:middlewares].unshift(Excon::Addressable::Middleware) module Excon module HyperMedia # Middleware # # This middleware sets the `hypermedia` datum to `true`, if the returned # `Content-Type` header contains `hal+json`. # # If the `hypermedia` attribute is already set for the connection, it # will be left alone by this middleware. # class Middleware < Excon::Middleware::Base def response_call(datum) return super unless (content_type = datum.dig(:response, :headers, 'Content-Type').to_s) datum[:response][:hypermedia] = if datum[:hypermedia].nil? content_type.include?('hal+json') else datum[:hypermedia] end super end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
excon-hypermedia-0.4.3 | lib/excon/hypermedia/middleware.rb |
excon-hypermedia-0.4.2 | lib/excon/hypermedia/middleware.rb |
excon-hypermedia-0.4.1 | lib/excon/hypermedia/middleware.rb |