Class: OnlinePayments::SDK::Communication::ResponseHeader
- Inherits:
-
Object
- Object
- OnlinePayments::SDK::Communication::ResponseHeader
- Defined in:
- lib/onlinepayments/sdk/communication/response_header.rb
Overview
Represents HTTP response headers Each header is immutable has a #name and #value attribute
Instance Attribute Summary collapse
-
#name ⇒ String
readonly
HTTP header name.
-
#value ⇒ String
readonly
HTTP header value.
Class Method Summary collapse
-
.get_disposition_filename(headers) ⇒ Object
Returns the value of the filename parameter of the Content-Disposition header from parameter headers If this Response does not contain a header with the given name, return nil instead.
-
.get_header(headers, header_name) ⇒ Object
Return the ResponseHeader that goes by the given header_name, If this Response does not contain a header with the given name, return nil instead.
-
.get_header_value(headers, header_name) ⇒ Object
Returns the header value of the header that goes by the given header_name, If this response does not contain a header with the given name, return nil instead.
-
.trim_quotes(filename) ⇒ Object
Trims the single or double quotes at the beginning and end of parameter filename if they exist If they don’t exist, it returns the original filename instead.
Instance Method Summary collapse
-
#initialize(name, value) ⇒ ResponseHeader
constructor
Create a new header using the name and value given as parameters.
- #to_s ⇒ Object
Constructor Details
#initialize(name, value) ⇒ ResponseHeader
Create a new header using the name and value given as parameters.
12 13 14 15 16 |
# File 'lib/onlinepayments/sdk/communication/response_header.rb', line 12 def initialize(name, value) raise ArgumentError.new('name is required') if name.nil? or name.strip.empty? @name = name @value = value end |
Instance Attribute Details
#name ⇒ String (readonly)
HTTP header name
9 10 11 |
# File 'lib/onlinepayments/sdk/communication/response_header.rb', line 9 def name @name end |
#value ⇒ String (readonly)
HTTP header value
9 10 11 |
# File 'lib/onlinepayments/sdk/communication/response_header.rb', line 9 def value @value end |
Class Method Details
.get_disposition_filename(headers) ⇒ Object
Returns the value of the filename parameter of the Content-Disposition header from parameter headers If this Response does not contain a header with the given name, return nil instead
51 52 53 54 55 56 57 58 59 60 |
# File 'lib/onlinepayments/sdk/communication/response_header.rb', line 51 def self.get_disposition_filename(headers) header_value = get_header_value(headers, "Content-Disposition") unless header_value.nil? if header_value =~ /(?:^|;)\s*filename\s*=\s*(.*?)\s*(?:;|$)/i return trim_quotes($1) end end return nil end |
.get_header(headers, header_name) ⇒ Object
Return the OnlinePayments::SDK::Communication::ResponseHeader that goes by the given header_name, If this Response does not contain a header with the given name, return nil instead
27 28 29 30 31 32 33 34 |
# File 'lib/onlinepayments/sdk/communication/response_header.rb', line 27 def self.get_header(headers, header_name) selected_headers = headers.select { |h| h.name.casecmp(header_name) == 0 } if selected_headers.nil? || selected_headers.length == 0 return nil else return selected_headers[0] end end |
.get_header_value(headers, header_name) ⇒ Object
Returns the header value of the header that goes by the given header_name, If this response does not contain a header with the given name, return nil instead
38 39 40 41 42 43 44 45 46 |
# File 'lib/onlinepayments/sdk/communication/response_header.rb', line 38 def self.get_header_value(headers, header_name) header = get_header(headers, header_name) return ( if header.nil? nil else header.value end) end |
.trim_quotes(filename) ⇒ Object
Trims the single or double quotes at the beginning and end of parameter filename if they exist If they don’t exist, it returns the original filename instead
66 67 68 69 70 71 72 73 74 |
# File 'lib/onlinepayments/sdk/communication/response_header.rb', line 66 def self.trim_quotes(filename) unless filename.length < 2 if (filename.chars.first == '\'' && filename.chars.last == '\'') || (filename.chars.first == '"' && filename.chars.last == '"') return filename[1...-1] end end filename end |
Instance Method Details
#to_s ⇒ Object
21 22 23 |
# File 'lib/onlinepayments/sdk/communication/response_header.rb', line 21 def to_s "#{name}:#{value}" end |