Sha256: dc1ef952caddc8ab141c3081591ad41d0a682ef9b916ede926eb00ec9a543048

Contents?: true

Size: 494 Bytes

Versions: 5

Compression:

Stored size: 494 Bytes

Contents

module Attune
  # Faraday 0.8 can't make resuests like /?ids=123&ids=456 and forces the form
  # /?ids[]=123&ids[]=456 (this is fixed in faraday 0.9)
  #
  # Fortunately faraday's middleware is quite powerful. This just strips the
  # array syntax from the request.
  class ParamFlattener < Faraday::Middleware
    def call(env)
      url = env[:url]

      # replaces ?foo[]=123 with ?foo=123
      url.query = url.query.gsub('%5B%5D', '') if url.query

      @app.call(env)
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
attune-1.0.3 lib/attune/param_flattener.rb
attune-0.0.4 lib/attune/param_flattener.rb
attune-0.0.3 lib/attune/param_flattener.rb
attune-0.0.2 lib/attune/param_flattener.rb
attune-0.0.1 lib/attune/param_flattener.rb