Sha256: 2990132eb3fd892ff121454cc2a49516050b8eef6c4fddf942b5586dfca828d6

Contents?: true

Size: 1000 Bytes

Versions: 24

Compression:

Stored size: 1000 Bytes

Contents

# encoding: utf-8

module Faraday
  module Utils

    class ParamsHash
      def params_encoder(encoder = nil)
        if encoder
          @encoder = encoder
        else
          @encoder
        end
      end

      def to_query(encoder = nil)
        Utils.build_nested_query(self, nil, params_encoder)
      end
    end

    def build_nested_query(value, prefix = nil, encoder = nil)
      case value
      when Array
        value.map { |v| build_nested_query(v, "#{prefix}%5B%5D", encoder) }.join("&")
      when Hash
        value.map { |k, v|
          processed_value = encoder ? encoder.escape(k) : escape(k)
          build_nested_query(v, prefix ? "#{prefix}%5B#{processed_value}%5D" : processed_value, encoder)
        }.join("&")
      when NilClass
        prefix
      else
        raise ArgumentError, "value must be a Hash" if prefix.nil?
        processed_value = encoder ? encoder.escape(value) : escape(value)
        "#{prefix}=#{processed_value}"
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 4 rubygems

Version Path
codenamev_bitbucket_api-0.4.1 lib/bitbucket_rest_api/ext/faraday.rb
codenamev_bitbucket_api-0.4.0 lib/bitbucket_rest_api/ext/faraday.rb
github_api-0.17.0 lib/github_api/ext/faraday.rb
github_api-0.16.0 lib/github_api/ext/faraday.rb
github_api-0.15.0 lib/github_api/ext/faraday.rb
github_api-0.14.5 lib/github_api/ext/faraday.rb
github_api-0.14.4 lib/github_api/ext/faraday.rb
github_api-0.14.3 lib/github_api/ext/faraday.rb
github_api-0.14.2 lib/github_api/ext/faraday.rb
github_api-0.14.1 lib/github_api/ext/faraday.rb
github_api-0.14.0 lib/github_api/ext/faraday.rb
github_api-0.13.1 lib/github_api/ext/faraday.rb
github_api-0.13.0 lib/github_api/ext/faraday.rb
github_api-0.12.4 lib/github_api/ext/faraday.rb
reenhanced_bitbucket_api-0.3.2 lib/bitbucket_rest_api/ext/faraday.rb
reenhanced_bitbucket_api-0.3.1 lib/bitbucket_rest_api/ext/faraday.rb
reenhanced_bitbucket_api-0.3.0 lib/bitbucket_rest_api/ext/faraday.rb
github_api-0.12.3 lib/github_api/ext/faraday.rb
github_api-0.12.2 lib/github_api/ext/faraday.rb
assembla_api-0.1.2 lib/assembla_api/ext/faraday.rb