dhl_memnosyne 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,12 @@
|
|
1
|
+
# This is the main class. To get the shipment details user has to call
|
2
|
+
# DHLMemnosyne.track method. DHLMemnosyne.track method receives 3 arguments. First argument is tracking number of a shipment.
|
3
|
+
# second argument is DHL id provided by DHL. Third argument is Password provided by DHL. DHL id and password can be specified in
|
4
|
+
# rails_root/config/dhl_config.yml. User can also can the track method by directly providing DHL id and password as second
|
5
|
+
# and third argument to track method.
|
6
|
+
class DHLRuby
|
7
|
+
#require 'dhl_memnosyne/credentials/credentials'
|
8
|
+
def self.track(tracking_number, dhl_id, dhl_password)
|
9
|
+
require 'dhl_memnosyne/web_interface/dhl_call'
|
10
|
+
DhlCall.response(tracking_number, dhl_id, dhl_password)
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module DhlCall
|
2
|
+
require 'uri'
|
3
|
+
require 'net/http'
|
4
|
+
require 'net/https'
|
5
|
+
require 'openssl'
|
6
|
+
|
7
|
+
# This method gets called by main class DHLMemnosyne.
|
8
|
+
# It makes actual http request to get the shipment details.
|
9
|
+
def self.response(tracking_number,dhl_id,dhl_password)
|
10
|
+
uri = URI.parse 'HTTPS://eCommerce.airborne.com/ApiLanding.asp'
|
11
|
+
http = Net::HTTP.new uri.host, uri.port
|
12
|
+
http.use_ssl, http.verify_mode = use_ssl?(uri)
|
13
|
+
request = dhl_request(tracking_number,dhl_id,dhl_password)
|
14
|
+
return http.post(uri.path, request).body
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.dhl_request(tracking_number,dhl_id,dhl_password)
|
18
|
+
require 'rubygems'
|
19
|
+
require 'nokogiri'
|
20
|
+
xml_request = Nokogiri::XML::Builder.new do |xml|
|
21
|
+
xml.ECommerce('action' => 'Request', 'version' => '1.1') {
|
22
|
+
xml.Requestor {
|
23
|
+
xml.ID_ dhl_id
|
24
|
+
xml.Password_ dhl_password
|
25
|
+
}
|
26
|
+
xml.Track('action' => 'Get', 'version' => '1.0'){
|
27
|
+
xml.Shipment{
|
28
|
+
xml.TrackingNbr_ tracking_number
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
end
|
33
|
+
xml_request.to_xml
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.use_ssl?(uri)
|
37
|
+
uri.port == 443 ?
|
38
|
+
(return true, OpenSSL::SSL::VERIFY_NONE) : (return false, OpenSSL::SSL::VERIFY_NONE)
|
39
|
+
end
|
40
|
+
end
|
metadata
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dhl_memnosyne
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Pratik Ganvir
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-03-28 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: nokogiri
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - '>='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: 1.5.2
|
21
|
+
none: false
|
22
|
+
requirement: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.5.2
|
27
|
+
none: false
|
28
|
+
prerelease: false
|
29
|
+
type: :runtime
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rake
|
32
|
+
version_requirements: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - '>='
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0.9'
|
37
|
+
none: false
|
38
|
+
requirement: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0.9'
|
43
|
+
none: false
|
44
|
+
prerelease: false
|
45
|
+
type: :runtime
|
46
|
+
description: Track DHL shipment.
|
47
|
+
email: pratikganvir@yahoo.in
|
48
|
+
executables: []
|
49
|
+
extensions: []
|
50
|
+
extra_rdoc_files: []
|
51
|
+
files:
|
52
|
+
- lib/dhl_memnosyne.rb
|
53
|
+
- lib/dhl_memnosyne/credentials/credentials.rb
|
54
|
+
- lib/dhl_memnosyne/web_interface/dhl_call.rb
|
55
|
+
- lib/tasks/rakefile.rb
|
56
|
+
- lib/tasks/dhl_config.yml
|
57
|
+
homepage: http://rubygems.org/gems/dhl_memnosyne
|
58
|
+
licenses: []
|
59
|
+
post_install_message:
|
60
|
+
rdoc_options: []
|
61
|
+
require_paths:
|
62
|
+
- lib
|
63
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - '>='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '0'
|
68
|
+
none: false
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - '>='
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
none: false
|
75
|
+
requirements: []
|
76
|
+
rubyforge_project:
|
77
|
+
rubygems_version: 1.8.24
|
78
|
+
signing_key:
|
79
|
+
specification_version: 3
|
80
|
+
summary: Gem for DHL api.
|
81
|
+
test_files: []
|