Class | SOAP::MIMEMessage::Headers |
In: |
lib/soap/mimemessage.rb
|
Parent: | Hash |
# File lib/soap/mimemessage.rb, line 93 93: def add(key, value) 94: if key != nil and value != nil 95: header = parse_rhs(value) 96: header.key = key 97: self[key.downcase] = header 98: end 99: end
# File lib/soap/mimemessage.rb, line 50 50: def parse(str) 51: header_cache = nil 52: str.each do |line| 53: case line 54: when /^\A[^\: \t]+:\s*.+$/ 55: parse_line(header_cache) if header_cache 56: header_cache = line.sub(/\r?\n\z/, '') 57: when /^\A\s+(.*)$/ 58: # a continuous line at the beginning line crashes here. 59: header_cache << line 60: else 61: raise RuntimeError.new("unexpected header: #{line.inspect}") 62: end 63: end 64: parse_line(header_cache) if header_cache 65: self 66: end
# File lib/soap/mimemessage.rb, line 68 68: def parse_line(line) 69: if /^\A([^\: \t]+):\s*(.+)\z/ =~ line 70: header = parse_rhs($2.strip) 71: header.key = $1.strip 72: self[header.key.downcase] = header 73: else 74: raise RuntimeError.new("unexpected header line: #{line.inspect}") 75: end 76: end
# File lib/soap/mimemessage.rb, line 78 78: def parse_rhs(str) 79: a = str.split(/;+\s+/) 80: header = Header.new 81: header.str = str 82: header.root = a.shift 83: a.each do |pair| 84: if pair =~ /(\w+)\s*=\s*"?([^"]+)"?/ 85: header[$1.downcase] = $2 86: else 87: raise RuntimeError.new("unexpected header component: #{pair.inspect}") 88: end 89: end 90: header 91: end