Module: Airrecord::QueryString

Defined in:
lib/airrecord/query_string.rb

Overview

Airtable expects that arrays in query strings be encoded with indices. Faraday follows Rack conventions and encodes arrays without indices.

Airrecord::QueryString is a Faraday-compliant params_encoder that follows the Airtable spec.

Defined Under Namespace

Modules: Encodings

Class Method Summary collapse

Class Method Details

.decode(query) ⇒ Object



14
15
16
# File 'lib/airrecord/query_string.rb', line 14

def self.decode(query)
  Faraday::NestedParamsEncoder.decode(query)
end

.encode(params) ⇒ Object



10
11
12
# File 'lib/airrecord/query_string.rb', line 10

def self.encode(params)
  params.map { |key, val| Encodings[val].call(key, val) }.join('&')
end

.escape(*query) ⇒ Object



18
19
20
# File 'lib/airrecord/query_string.rb', line 18

def self.escape(*query)
  query.map { |qs| ERB::Util.url_encode(qs) }.join('')
end