class Github::ParamsHash

Class responsible for holding request parameters

def self.empty

Other tags:
    Api: - public
def self.empty
  new({})
end

def accept

Other tags:
    Api: - public
def accept
  if key?('accept') then self['accept']
  elsif key?('media') then media
  else nil
  end
end

def data

Other tags:
    Api: - public
def data
  if key?('data') && !self['data'].nil?
    self['data']
  else
    request_params
  end
end

def encoder

def encoder
  if key?('encoder') && self['encoder']
    self['encoder']
  else
    {}
  end
end

def initialize(hash)

def initialize(hash)
  super(normalize!(Hash[hash]))
end

def media

Other tags:
    Api: - public
def media
  parse(delete('media'))
end

def merge_default(defaults)


Update hash with default parameters for non existing keys
def merge_default(defaults)
  if defaults && !defaults.empty?
    defaults.each do |key, value|
      self[key] = value unless self.key?(key)
    end
  end
  self
end

def options

Other tags:
    Api: - public

Returns:
  • (Hash) -
def options
  opts    = fetch('options', {})
  headers = fetch('headers', {})
  if value = accept
    headers[:accept] = value
  end
  if self['content_type']
    headers[:content_type] = self['content_type']
  end
  opts[:raw]     = key?('raw') ? self['raw'] : false
  opts[:headers] = headers unless headers.empty?
  opts
end

def request_params

Other tags:
    Api: - public
def request_params
  to_hash.select do |key, value|
    !REQUEST_PARAMS.include?(key.to_sym)
  end
end

def strict_encode64(key)

Other tags:
    Api: - public
def strict_encode64(key)
  value = self[key]
  encoded = if Base64.respond_to?(:strict_encode64)
              Base64.strict_encode64(value)
            else
              [value].pack('m0')
            end
  self[key] = encoded.delete("\n\r")
end