Class: BitBucket::ParamsHash
- Includes:
- Normalizer
- Defined in:
- lib/bitbucket_rest_api/params_hash.rb
Overview
Class responsible for holding request parameters
Class Method Summary collapse
-
.empty ⇒ Object
Create empty hash.
Instance Method Summary collapse
-
#accept ⇒ Object
Return accept header if present.
-
#data ⇒ Object
Extract request data from parameters.
- #encoder ⇒ Object
-
#initialize(hash) ⇒ ParamsHash
constructor
A new instance of ParamsHash.
-
#media ⇒ Object
Extract and parse media type param.
-
#merge_default(defaults) ⇒ Object
Update hash with default parameters for non existing keys.
-
#options ⇒ Object
Any client configuration options.
-
#strict_encode64(key) ⇒ Object
Base64 encode string removing newline characters.
Methods included from Normalizer
Methods inherited from Hash
#all_keys, #except, #except!, #has_deep_key?, #serialize, #symbolize_keys, #symbolize_keys!
Constructor Details
#initialize(hash) ⇒ ParamsHash
Returns a new instance of ParamsHash.
12 13 14 |
# File 'lib/bitbucket_rest_api/params_hash.rb', line 12 def initialize(hash) super(normalize!(Hash[hash])) end |
Class Method Details
.empty ⇒ Object
Create empty hash
18 19 20 |
# File 'lib/bitbucket_rest_api/params_hash.rb', line 18 def self.empty new({}) end |
Instance Method Details
#accept ⇒ Object
Return accept header if present
32 33 34 35 36 37 38 39 40 |
# File 'lib/bitbucket_rest_api/params_hash.rb', line 32 def accept if has_key?('accept') delete('accept') elsif has_key?('media') media else nil end end |
#data ⇒ Object
Extract request data from parameters
44 45 46 47 48 49 50 |
# File 'lib/bitbucket_rest_api/params_hash.rb', line 44 def data if has_key?('data') && !self['data'].nil? return delete('data') else return to_hash end end |
#encoder ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/bitbucket_rest_api/params_hash.rb', line 52 def encoder if has_key?('encoder') && self['encoder'] return delete('encoder') else return {} end end |
#media ⇒ Object
Extract and parse media type param
[.version].param[+json]
26 27 28 |
# File 'lib/bitbucket_rest_api/params_hash.rb', line 26 def media parse(delete('media')) end |
#merge_default(defaults) ⇒ Object
Update hash with default parameters for non existing keys
78 79 80 81 82 83 84 85 |
# File 'lib/bitbucket_rest_api/params_hash.rb', line 78 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 ⇒ Object
Any client configuration options
62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/bitbucket_rest_api/params_hash.rb', line 62 def 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) ⇒ Object
Base64 encode string removing newline characters
89 90 91 92 93 94 95 96 97 |
# File 'lib/bitbucket_rest_api/params_hash.rb', line 89 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 |