Class: RETS4R::Auth::ResponseHeader
- Inherits:
-
Object
- Object
- RETS4R::Auth::ResponseHeader
- Defined in:
- lib/rets4r/auth.rb
Constant Summary collapse
- ACCEPTABLE_KEYS =
%w[realm domain nonce opaque stale algorithm qop]
Class Method Summary collapse
Instance Method Summary collapse
-
#to_h ⇒ Object
convert the header to a hash.
Class Method Details
.parse(header) ⇒ Object
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
# File 'lib/rets4r/auth.rb', line 146 def self.parse(header) new.tap do |auth| auth.strategy = header[0, header.index(' ')].downcase.to_sym args = header[header.index(' '), header.length].strip.split(',') args.each do |arg| key, value = arg.split('=') key = key.downcase.strip value = value.tr('"', '').strip if ACCEPTABLE_KEYS.include? key auth.send("#{key}=".to_sym, value) else warn "#{caller.first}: warning: response header contained unknown value #{key}: \"#{value}\", skipping" end end end end |
Instance Method Details
#to_h ⇒ Object
convert the header to a hash. Uses strings for keys, with ‘type containing the Examples:
header = 'Digest qop="auth", realm="REALM", nonce="2006-03-03T17:37:10", opaque="", stale="false", domain="test-domain"'
ResponseHeader.parse(header).to_h
=> { "type" => "digest", "qop" => "auth", "realm" => "REALM", "nonce" => "2006-03-03T17:37:10", "opaque" => "", "stale" => "false", "domain" => "test-domain"}
169 170 171 172 173 174 175 176 |
# File 'lib/rets4r/auth.rb', line 169 def to_h result = {} result['type'] = self.strategy ACCEPTABLE_KEYS.each do |key| result[key] = self.send(key) end result end |