class Github::ParamsHash

Class responsible for holding request parameters

def accept


Return accept header if present
def accept
  if has_key?('accept')
    self.delete('accept')
  elsif has_key?('media')
    media
  else
    nil
  end
end

def data


Extract request data from paramters
def data
  if has_key?('data') && !self['data'].nil?
    return self.delete('data')
  else
    return self.to_hash
  end
end

def initialize(hash)

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

def media


[.version].param[+json]

Extract and parse media type param
def media
  parse(self.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.has_key?(key)
    end
  end
  self
end

def options


Any client configuration options
def options
  hash = has_key?('options') ? self.delete('options') : {}
  if value = accept
    hash[:headers] = {} unless hash.has_key?(:headers)
    hash[:headers]['Accept'] = value
  end
  hash[:raw] = has_key?('raw') ? self.delete('raw') : false
  hash
end