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