class Assembla::ParamsHash
Class responsible for holding request parameters
Public Class Methods
empty()
click to toggle source
Create empty hash
# File lib/assembla_api/params_hash.rb, line 19 def self.empty new({}) end
new(hash)
click to toggle source
Calls superclass method
# File lib/assembla_api/params_hash.rb, line 13 def initialize(hash) super(normalize!(Hash[hash])) end
Public Instance Methods
accept()
click to toggle source
Return accept header if present
# File lib/assembla_api/params_hash.rb, line 33 def accept if has_key?('accept') delete('accept') elsif has_key?('media') media else nil end end
data()
click to toggle source
Extract request data from parameters
# File lib/assembla_api/params_hash.rb, line 45 def data if has_key?('data') && !self['data'].nil? return delete('data') else return to_hash end end
encoder()
click to toggle source
# File lib/assembla_api/params_hash.rb, line 53 def encoder if has_key?('encoder') && self['encoder'] return delete('encoder') else return {} end end
media()
click to toggle source
Extract and parse media type param
[.version].param[+json]
# File lib/assembla_api/params_hash.rb, line 27 def media parse(delete('media')) end
merge_default(defaults)
click to toggle source
Update hash with default parameters for non existing keys
# File lib/assembla_api/params_hash.rb, line 79 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/assembla_api/params_hash.rb, line 63 def options opts = has_key?('options') ? delete('options') : {} headers = opts.fetch(:headers) { {} } if value = accept headers[:accept] = value end if value = delete('content_type') headers[:content_type] = value end opts[:raw] = has_key?('raw') ? delete('raw') : false opts[:headers] = headers unless headers.empty? opts end
strict_encode64(key)
click to toggle source
Base64 encode string removing newline characters
# File lib/assembla_api/params_hash.rb, line 90 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