class Github::ParamsHash

Class responsible for holding request parameters

Public Class Methods

new(hash) click to toggle source
Calls superclass method
# File lib/github_api/params_hash.rb, line 12
def initialize(hash)
  super(normalize!(Hash[hash]))
end

Public Instance Methods

accept() click to toggle source

Return accept header if present

# File lib/github_api/params_hash.rb, line 26
def accept
  if has_key?('accept')
    self.delete('accept')
  elsif has_key?('media')
    media
  else
    nil
  end
end
data() click to toggle source

Extract request data from paramters

# File lib/github_api/params_hash.rb, line 38
def data
  if has_key?('data') && !self['data'].nil?
    return self.delete('data')
  else
    return self.to_hash
  end
end
media() click to toggle source

Extract and parse media type param

[.version].param[+json]
# File lib/github_api/params_hash.rb, line 20
def media
  parse(self.delete('media'))
end
merge_default(defaults) click to toggle source

Update hash with default parameters for non existing keys

# File lib/github_api/params_hash.rb, line 60
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
options() click to toggle source

Any client configuration options

# File lib/github_api/params_hash.rb, line 48
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
strict_encode64(key) click to toggle source

Base64 encode string removing newline characters

# File lib/github_api/params_hash.rb, line 71
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