Sha256: 08b26dae30e47a57043cb174b8851cbe11043dd65e1e4737b73c4cd775f1fe30

Contents?: true

Size: 781 Bytes

Versions: 2

Compression:

Stored size: 781 Bytes

Contents

# frozen_string_literal: true

module Dolly
  module QueryArguments
    def last_item_in_range
      URI.escape("\ufff0")
    end

    def default_query_args
      {
        startkey: "#{name_paramitized}/",
        endkey: "#{name_paramitized}/#{last_item_in_range}"
      }
    end

    def descending_query_args
      {
        startkey: default_query_args[:endkey],
        endkey: default_query_args[:startkey],
        descending: true
      }
    end

    def escape_value(value)
      return value                if value.is_a? Numeric
      return escape_values(value) if value.is_a? Array
      return CGI.escape(value)    if value.is_a? String
      value
    end

    def escape_values *values
      values.flatten.map { |value| escape_value(value) }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dolly-3.0.1 lib/dolly/query_arguments.rb
dolly-3.0.0 lib/dolly/query_arguments.rb