Sha256: 8dbdecf6b65f7974f69083ef911f68f8131b39d28886d008cdaa9f5fff31a7ca

Contents?: true

Size: 644 Bytes

Versions: 6

Compression:

Stored size: 644 Bytes

Contents

# frozen_string_literal: true

require "rack/utils"

module CarrierWave
  module Cloudflare
    module URL
      class QueryString < Hash
        Parser = Object.new.tap do |obj|
          obj.extend(Rack::Utils)

          # these methods are private in Rack::Utils
          obj.singleton_class.instance_eval { public :build_query, :parse_query }
        end

        def initialize(query = "")
          super()
          merge!(Parser.parse_query(query))
        end

        def to_query
          result = Parser.build_query(self)
          result unless result.empty?
        end

        alias to_s to_query
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
carrierwave-cloudflare-0.4.0 lib/carrierwave/cloudflare/url/query_string.rb
carrierwave-cloudflare-0.3.2 lib/carrierwave/cloudflare/url/query_string.rb
carrierwave-cloudflare-0.3.1 lib/carrierwave/cloudflare/url/query_string.rb
carrierwave-cloudflare-0.3.0 lib/carrierwave/cloudflare/url/query_string.rb
carrierwave-cloudflare-0.2.1 lib/carrierwave/cloudflare/url/query_string.rb
carrierwave-cloudflare-0.2.0 lib/carrierwave/cloudflare/url/query_string.rb