class Patreon::Utils::JSONAPI::URLUtil

Public Class Methods

build_url(url, includes=nil, fields=nil) click to toggle source
# File lib/patreon/utils/jsonapi/url_util.rb, line 8
def self.build_url(url, includes=nil, fields=nil)
  parsed_url = URI.parse(url)
  params = parsed_url.query ? Rack::Utils.parse_query(parsed_url.query) : {}
  params['include'] = joined_or_null(includes) if includes
  fields.each do |name, val|
    params["fields[#{name}]"] = val
  end if fields
  query = params.empty? ? "" : "?#{Rack::Utils.build_query(params)}"

  "#{parsed_url.path}#{query}"
end

Private Class Methods

joined_or_null(list_or_string) click to toggle source
# File lib/patreon/utils/jsonapi/url_util.rb, line 21
def self.joined_or_null(list_or_string)
  list_or_string && list_or_string.empty? ? "null" : Array(list_or_string).join(',')
end