Sha256: f6e7f972ff51e4fb5d5bfd90cd88be69ed10b63732497ea22c3e468c7aba74d7
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
# encoding: utf-8 require 'delegate' module Github # Class responsible for holding request parameters class ParamsHash < DelegateClass(Hash) include Normalizer include MimeType def initialize(hash) super(normalize!(Hash[hash])) end # Extract and parse media type param # # [.version].param[+json] # def media parse(self.delete('media')) end # Return accept header if present # def accept if has_key?('accept') self.delete('accept') elsif has_key?('media') media else nil end end # Extract request data from paramters # def data if has_key?('data') && !self['data'].nil? return self.delete('data') else return self.to_hash end end # Any client configuration options # 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 # Update hash with default parameters for non existing keys # 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 end # ParamsHash end # Github
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
github_api-0.10.1 | lib/github_api/params_hash.rb |