Class: XmlConv::Util::DestinationHttp
- Inherits:
-
RemoteDestination
- Object
- Destination
- RemoteDestination
- XmlConv::Util::DestinationHttp
- Defined in:
- lib/xmlconv/util/destination.rb
Constant Summary collapse
- HTTP_HEADERS =
{ 'content-type' => 'text/xml', }
Constants inherited from Destination
XmlConv::Util::Destination::STATUS_COMPARABLE
Instance Attribute Summary
Attributes inherited from RemoteDestination
Attributes inherited from Destination
Instance Method Summary collapse
- #do_deliver(delivery) ⇒ Object
-
#initialize(uri = URI.parse('http:/')) ⇒ DestinationHttp
constructor
A new instance of DestinationHttp.
Methods inherited from RemoteDestination
#deliver, #forget_credentials!, #host, #host=, #path, #path=, #uri=
Methods inherited from Destination
book, #deliver, #forget_credentials!, #sanitize, #status_comparable, #update_status
Constructor Details
#initialize(uri = URI.parse('http:/')) ⇒ DestinationHttp
Returns a new instance of DestinationHttp.
169 170 171 172 173 |
# File 'lib/xmlconv/util/destination.rb', line 169 def initialize(uri = URI.parse('http:/')) super() @uri = uri @transport = Net::HTTP end |
Instance Method Details
#do_deliver(delivery) ⇒ Object
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 |
# File 'lib/xmlconv/util/destination.rb', line 174 def do_deliver(delivery) if(delivery.is_a?(Array)) worst_status = '' delivery.each { |part| do_deliver(part) ## bogostatus: assume that the more information in the string, ## the worse the status is (ok < not found) ## rationale: DTSTTCPW if(@status.to_s > worst_status.to_s) worst_status = @status end } @status = worst_status else @transport.start(@uri.host, @uri.port) { |http| request = Net::HTTP::Post.new(@uri.path, HTTP_HEADERS) if(@uri.user || @uri.password) request.basic_auth(@uri.user, @uri.password) end response = http.request(request, delivery.to_s) status_str = response..downcase.gsub(/\s+/, "_") @status = "http_#{status_str}".intern } end end |