class Github::ParamsHash

Class responsible for holding request parameters

Constants

REQUEST_PARAMS

Public Class Methods

empty() click to toggle source

Create empty hash

@api public

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

Public Instance Methods

accept() click to toggle source

Get accept header

@api public

# File lib/github_api/params_hash.rb, line 40
def accept
  if key?('accept') then self['accept']
  elsif key?('media') then media
  else nil
  end
end
data() click to toggle source

Extract request data from parameters

@api public

# File lib/github_api/params_hash.rb, line 50
def data
  if key?('data') && !self['data'].nil?
    self['data']
  else
    request_params
  end
end
encoder() click to toggle source
# File lib/github_api/params_hash.rb, line 58
def encoder
  if key?('encoder') && self['encoder']
    self['encoder']
  else
    {}
  end
end
media() click to toggle source

Extract and parse media type param

[.version].param[+json]

@api public

# File lib/github_api/params_hash.rb, line 33
def media
  parse(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 84
def merge_default(defaults)
  if defaults && !defaults.empty?
    defaults.each do |key, value|
      self[key] = value unless self.key?(key)
    end
  end
  self
end
options() click to toggle source

Configuration options from request

@return [Hash]

@api public

# File lib/github_api/params_hash.rb, line 71
def options
  opts    = fetch('options', {})
  headers = fetch('headers', {})
  if value = accept
    headers[:accept] = value
  end
  opts[:raw]     = key?('raw') ? self['raw'] : false
  opts[:headers] = headers unless headers.empty?
  opts
end
request_params() click to toggle source

Filter out request params

@api public

# File lib/github_api/params_hash.rb, line 109
def request_params
  to_hash.select do |key, value|
    !REQUEST_PARAMS.include?(key.to_sym)
  end
end
strict_encode64(key) click to toggle source

Base64 encode string removing newline characters

@api public

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