dhl_express 1.0.0

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4c482cf75a564a668a2d07b6ae09d0364c3f86ba
4
+ data.tar.gz: 0a3f2875e127dbf21ea1547d1caf5d6da7d350da
5
+ SHA512:
6
+ metadata.gz: c49ad635687427bb2076102a663567c01460ab18cfc1f76da55b031bc5b69bf4b8178b58f4b3742351c7c700fd7c6453475454055d1bab3e52360c046869d5b8
7
+ data.tar.gz: fb81f0980e20644727dfdd5894cc474fc4f1bc245aebbf66611439ea85605ff23096590f22ae70847d2c3aba6b12857adec2e8e9a2e6f2b623c6e786468fdaa5
data/.gitignore ADDED
@@ -0,0 +1,18 @@
1
+ # osx noise
2
+ .DS_Store
3
+ profile
4
+
5
+ # xcode noise
6
+ build/*
7
+ *.mode1
8
+ *.mode1v3
9
+ *.mode2v3
10
+ *.perspective
11
+ *.perspectivev3
12
+ *.pbxuser
13
+ *.xcworkspace
14
+ xcuserdata
15
+
16
+ # svn & cvs
17
+ .svn
18
+ CVS
data/.pryrc ADDED
@@ -0,0 +1,9 @@
1
+ Pry.config.editor = "gvim --nofork"
2
+
3
+ # Print Ruby version at startup
4
+ Pry.config.hooks.add_hook(:when_started, :say_hi) do
5
+ puts "Using Ruby version #{RUBY_VERSION}"
6
+ end
7
+
8
+ # Require Sinatra application
9
+ require './lib/dhl_express.rb'
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,75 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ jp_post (1.0.0)
5
+ chronic
6
+ nokogiri
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ celluloid (0.16.0)
12
+ timers (~> 4.0.0)
13
+ chronic (0.10.2)
14
+ coderay (1.1.0)
15
+ diff-lcs (1.2.5)
16
+ ethon (0.7.1)
17
+ ffi (>= 1.3.0)
18
+ ffi (1.9.6)
19
+ formatador (0.2.5)
20
+ guard (2.8.0)
21
+ formatador (>= 0.2.4)
22
+ listen (~> 2.7)
23
+ lumberjack (~> 1.0)
24
+ pry (>= 0.9.12)
25
+ thor (>= 0.18.1)
26
+ guard-rspec (4.3.1)
27
+ guard (~> 2.1)
28
+ rspec (>= 2.14, < 4.0)
29
+ hitimes (1.2.2)
30
+ listen (2.7.11)
31
+ celluloid (>= 0.15.2)
32
+ rb-fsevent (>= 0.9.3)
33
+ rb-inotify (>= 0.9)
34
+ lumberjack (1.0.9)
35
+ method_source (0.8.2)
36
+ mini_portile (0.6.0)
37
+ nokogiri (1.6.3.1)
38
+ mini_portile (= 0.6.0)
39
+ pry (0.10.1)
40
+ coderay (~> 1.1.0)
41
+ method_source (~> 0.8.1)
42
+ slop (~> 3.4)
43
+ rb-fsevent (0.9.4)
44
+ rb-inotify (0.9.5)
45
+ ffi (>= 0.5.0)
46
+ rspec (3.1.0)
47
+ rspec-core (~> 3.1.0)
48
+ rspec-expectations (~> 3.1.0)
49
+ rspec-mocks (~> 3.1.0)
50
+ rspec-core (3.1.7)
51
+ rspec-support (~> 3.1.0)
52
+ rspec-expectations (3.1.2)
53
+ diff-lcs (>= 1.2.0, < 2.0)
54
+ rspec-support (~> 3.1.0)
55
+ rspec-mocks (3.1.3)
56
+ rspec-support (~> 3.1.0)
57
+ rspec-support (3.1.2)
58
+ slop (3.6.0)
59
+ thor (0.19.1)
60
+ timers (4.0.1)
61
+ hitimes
62
+ typhoeus (0.6.9)
63
+ ethon (>= 0.7.1)
64
+ vcr (2.9.3)
65
+
66
+ PLATFORMS
67
+ ruby
68
+
69
+ DEPENDENCIES
70
+ bundler
71
+ guard-rspec
72
+ jp_post!
73
+ rspec
74
+ typhoeus
75
+ vcr
data/Guardfile ADDED
@@ -0,0 +1,8 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard :rspec, cmd: "bundle exec rspec" do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+ end
data/LICENCE.txt ADDED
File without changes
data/README.md ADDED
@@ -0,0 +1,49 @@
1
+ ## DHL Express :package:
2
+ [![Build Status](https://travis-ci.org/SebastianSzturo/dhl_express.svg?branch=master)](https://travis-ci.org/SebastianSzturo/jp_post) [![Code Climate](https://codeclimate.com/github/SebastianSzturo/dhl_express/badges/gpa.svg)](https://codeclimate.com/github/SebastianSzturo/jp_post)
3
+
4
+ A gem to track international DHL Express package without the DHL SOAP/XML API.
5
+
6
+ ## Requirements
7
+ - Ruby 1.9
8
+
9
+ ## Installation
10
+
11
+ Add this to your gemfile
12
+
13
+ ```ruby
14
+ gem 'dhl_express'
15
+ ```
16
+
17
+ and
18
+
19
+ ```
20
+ bundle
21
+ ```
22
+
23
+ ## Tracking :round_pushpin:
24
+
25
+ Track a package with it's waybill tracking number.
26
+
27
+ ```ruby
28
+ package = DhlExpress::Tracking.new("123456789")
29
+ ```
30
+
31
+ Access tracking information.
32
+
33
+ ```ruby
34
+ package = DhlExpress::Tracking.new("123456789")
35
+
36
+ package.origin # e.g. "TOKYO - TOKYO - JAPAN"
37
+ package.destination # e.g. "GREENSBORO, NC - GREENSBORO - USA"
38
+ package.status # e.g. String of current history status point
39
+
40
+ package.history # Array of package movement history in chronological order
41
+ ```
42
+
43
+ ## Contributing
44
+
45
+ 1. Fork it
46
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
47
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
48
+ 4. Push to the branch (`git push origin my-new-feature`)
49
+ 5. Create new Pull Request
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'dhl_express/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "dhl_express"
8
+ spec.version = DhlExpress::VERSION
9
+ spec.authors = ["Sebastian Szturo"]
10
+ spec.email = ["s.szturo@me.com"]
11
+ spec.description = "Gem to access international DHL Express Services."
12
+ spec.summary = "Gem to access international DHL Express Services."
13
+ spec.homepage = "http://github.com/SebastianSzturo/dhl_express"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "nokogiri"
22
+ spec.add_dependency "chronic"
23
+ spec.add_development_dependency "bundler"
24
+ spec.add_development_dependency "rspec"
25
+ spec.add_development_dependency "guard-rspec"
26
+ spec.add_development_dependency "vcr"
27
+ spec.add_development_dependency "typhoeus"
28
+ end
@@ -0,0 +1,5 @@
1
+ require "dhl_express/version"
2
+ require "dhl_express/tracking"
3
+
4
+ module DhlExpress
5
+ end
@@ -0,0 +1,81 @@
1
+ require "typhoeus"
2
+ require "json"
3
+ require "chronic"
4
+
5
+ module DhlExpress
6
+ class Tracking
7
+ # Create a new Tracking object.
8
+ #
9
+ # tracking_number - tracking number of the package to lookup.
10
+ #
11
+ # Returns an instance of DhlExpress::Tracking.
12
+ def initialize(tracking_number)
13
+ raise ArgumentError unless tracking_number
14
+
15
+ @tracking_number = tracking_number
16
+ tracking_url = "https://www.mydhl.dhl.com/shipmentTracking?AWB=#{@tracking_number}"
17
+
18
+ @tracking_json = JSON.parse(Typhoeus.get(tracking_url).body)
19
+
20
+ raise RuntimeError, "No Tracking found." if @tracking_json["results"].nil?
21
+ end
22
+
23
+ # Origin of the package
24
+ #
25
+ # Returns origin as String.
26
+ def origin
27
+ origin = @tracking_json["results"][0]["origin"]["value"].strip
28
+ return origin
29
+ end
30
+
31
+ # Destination of the packaage
32
+ #
33
+ # Returns destination as String.
34
+ def destination
35
+ destination = @tracking_json["results"][0]["destination"]["value"].strip
36
+ return destination
37
+ end
38
+
39
+ # Current status of the package in the history
40
+ #
41
+ # Returns status as String.
42
+ def status
43
+ status = @tracking_json["results"][0]["description"].strip
44
+ return status
45
+ end
46
+
47
+ # History of package checkpoints in chronological order
48
+ #
49
+ # Returns tracking history as Array.
50
+ def history
51
+ checkpoints = @tracking_json["results"][0]["checkpoints"]
52
+
53
+ history = []
54
+
55
+ checkpoints.each do |checkpoint|
56
+ date = dhl_date_string_as_date(checkpoint)
57
+ action = checkpoint["description"].strip
58
+ location = checkpoint["location"].strip
59
+
60
+ history << { date: date, action: action, location: location }
61
+ end
62
+
63
+ history.sort_by! { |h| h[:date] }
64
+
65
+ return history
66
+ end
67
+
68
+ private
69
+
70
+ def dhl_date_string_as_date(checkpoint)
71
+ date_string = checkpoint["date"]
72
+ month_string_position = date_string.index(",")+2
73
+ date_without_weekday = date_string[month_string_position...date_string.length]
74
+ time = checkpoint["time"]
75
+
76
+ date = Chronic.parse("#{date_without_weekday} at #{time}") rescue nil
77
+ return date
78
+ end
79
+
80
+ end
81
+ end
@@ -0,0 +1,3 @@
1
+ module DhlExpress
2
+ VERSION = "1.0.0"
3
+ end
@@ -0,0 +1,59 @@
1
+ require 'spec_helper'
2
+
3
+ describe DhlExpress::Tracking do
4
+ describe "#initialize" do
5
+ it "should not initialize without tracking number argument" do
6
+ expect { DhlExpress::Tracking.new() }.to raise_error(ArgumentError)
7
+ end
8
+
9
+ it "should not initialize with empty tracking" do
10
+ VCR.use_cassette 'empty_tracking' do
11
+ expect { DhlExpress::Tracking.new("1234567") }.to raise_error(RuntimeError)
12
+ end
13
+ end
14
+
15
+ it "should initialize a tracking object" do
16
+ VCR.use_cassette 'working_tracking' do
17
+ package = DhlExpress::Tracking.new("6476119576")
18
+ expect(package).to be_kind_of(DhlExpress::Tracking)
19
+ end
20
+ end
21
+ end
22
+
23
+ describe "#origin" do
24
+ it "should return a origin string" do
25
+ VCR.use_cassette 'working_tracking' do
26
+ package = DhlExpress::Tracking.new("6476119576")
27
+ expect(package.origin).to be_kind_of(String)
28
+ end
29
+ end
30
+ end
31
+
32
+ describe "#destination" do
33
+ it "should return a destination string" do
34
+ VCR.use_cassette 'working_tracking' do
35
+ package = DhlExpress::Tracking.new("6476119576")
36
+ expect(package.destination).to be_kind_of(String)
37
+ end
38
+ end
39
+ end
40
+
41
+ describe "#status" do
42
+ it "should return a status string" do
43
+ VCR.use_cassette 'working_tracking' do
44
+ package = DhlExpress::Tracking.new("6476119576")
45
+ expect(package.status).to be_kind_of(String)
46
+ end
47
+ end
48
+ end
49
+
50
+ describe "#history" do
51
+ it "should return a history array" do
52
+ VCR.use_cassette 'working_tracking' do
53
+ package = DhlExpress::Tracking.new("6476119576")
54
+ expect(package.history).to be_kind_of(Array)
55
+ end
56
+ end
57
+ end
58
+
59
+ end
@@ -0,0 +1,14 @@
1
+ require 'dhl_express'
2
+ require 'vcr'
3
+
4
+ # VCR Setup
5
+ VCR.configure do |c|
6
+ c.cassette_library_dir = 'spec/vcr'
7
+ c.hook_into :typhoeus
8
+ end
9
+
10
+ # RSpec Setup
11
+ RSpec.configure do |config|
12
+ config.run_all_when_everything_filtered = true
13
+ config.order = 'random'
14
+ end
@@ -0,0 +1,52 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.mydhl.dhl.com/shipmentTracking?AWB=1234567
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Typhoeus - https://github.com/typhoeus/typhoeus
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ X-Frame-Options:
18
+ - SAMEORIGIN
19
+ Cache-Control:
20
+ - s-maxage=172800
21
+ - max-age=172800
22
+ Content-Type:
23
+ - application/json;charset=UTF-8
24
+ Expires:
25
+ - Mon, 10 Nov 2014 06:20:33 GMT
26
+ MyHeader:
27
+ - D=37339
28
+ Content-Length:
29
+ - '165'
30
+ Date:
31
+ - Sat, 08 Nov 2014 06:20:33 GMT
32
+ Connection:
33
+ - keep-alive
34
+ Set-Cookie:
35
+ - TS017581b3=012d4839b318947c44326df3f5ecad656d3a45b00b5a5ef3b3f7bc08c8b390e91389419794;
36
+ Path=/; Secure; HTTPOnly
37
+ body:
38
+ encoding: UTF-8
39
+ string: |-
40
+ {
41
+ "errors" : [ {
42
+ "code" : 404,
43
+ "label" : "Not found",
44
+ "message" : "No result found for your DHL query. Please try again.",
45
+ "id" : "1234567"
46
+ } ]
47
+ }
48
+ http_version: '1.1'
49
+ adapter_metadata:
50
+ effective_url: https://www.mydhl.dhl.com/shipmentTracking?AWB=1234567
51
+ recorded_at: Sat, 08 Nov 2014 06:20:33 GMT
52
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,84 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://www.mydhl.dhl.com/shipmentTracking?AWB=6476119576
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Typhoeus - https://github.com/typhoeus/typhoeus
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Cache-Control:
18
+ - s-maxage=172800
19
+ Expires:
20
+ - Mon, 10 Nov 2014 05:37:23 GMT
21
+ MyHeader:
22
+ - D=454085
23
+ X-Frame-Options:
24
+ - SAMEORIGIN
25
+ Content-Length:
26
+ - '1404'
27
+ Content-Type:
28
+ - application/json;charset=UTF-8
29
+ Date:
30
+ - Sat, 08 Nov 2014 06:20:33 GMT
31
+ Connection:
32
+ - keep-alive
33
+ Set-Cookie:
34
+ - TS016f3c0b=01914b743d55f0dfe481a6f14f9bc17ce30eb4edd08abab906ac918865663d03d83d32b156;
35
+ Path=/
36
+ - TS017581b3=012d4839b38099af17f13f251b42089167c25acb0b0d839e5ed0d86c977ba6852bec27780bf8dd29a4441c4ee72715fae48a420d94;
37
+ Path=/; Secure; HTTPOnly
38
+ body:
39
+ encoding: UTF-8
40
+ string: |-
41
+ {
42
+ "results" : [ {
43
+ "id" : "6476119576",
44
+ "label" : "Waybill",
45
+ "type" : "airwaybill",
46
+ "duplicate" : false,
47
+ "origin" : {
48
+ "value" : "TOKYO - HIGASHIKURUME - JAPAN",
49
+ "label" : "Origin Service Area",
50
+ "url" : "http://www.dhl.co.jp/en/country_profile.html"
51
+ },
52
+ "destination" : {
53
+ "value" : "GREENSBORO, NC - GREENSBORO - USA",
54
+ "label" : "Destination Service Area",
55
+ "url" : "http://www.dhl-usa.com/en/country_profile.html"
56
+ },
57
+ "description" : "Shipment information received : Friday, November 07, 2014 at 15:34",
58
+ "hasDuplicateShipment" : false,
59
+ "signature" : {
60
+ "link" : {
61
+ "url" : "https://proview.dhl.com/GC3/proview/adhocnotify?id=mAtE%2F0oL0r0wvmjggydn8Zh%2FkrRB7XethXdun71Ou1A%3D&appuid=ONWLDos95lgDjSxbiEfEsg%3D%3D&locale=en_G0&token=R3Fk9Yr1tYl7WI25yMeMGrA0V4qA124LF2O22zX5298%3D",
62
+ "label" : "Sign up for shipment notifications"
63
+ },
64
+ "type" : "proview",
65
+ "description" : "Friday, November 07, 2014 at 15:34",
66
+ "signatory" : "Shipment information received ",
67
+ "help" : "help"
68
+ },
69
+ "checkpoints" : [ {
70
+ "counter" : 1,
71
+ "description" : "Shipment information received",
72
+ "time" : "15:34",
73
+ "date" : "Friday, November 07, 2014 ",
74
+ "location" : "TOKYO - JAPAN"
75
+ } ],
76
+ "checkpointLocationLabel" : "Location",
77
+ "checkpointTimeLabel" : "Time"
78
+ } ]
79
+ }
80
+ http_version: '1.1'
81
+ adapter_metadata:
82
+ effective_url: https://www.mydhl.dhl.com/shipmentTracking?AWB=6476119576
83
+ recorded_at: Sat, 08 Nov 2014 06:20:33 GMT
84
+ recorded_with: VCR 2.9.3
metadata ADDED
@@ -0,0 +1,161 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dhl_express
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Sebastian Szturo
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-11-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: nokogiri
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: chronic
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: vcr
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: typhoeus
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Gem to access international DHL Express Services.
112
+ email:
113
+ - s.szturo@me.com
114
+ executables: []
115
+ extensions: []
116
+ extra_rdoc_files: []
117
+ files:
118
+ - ".gitignore"
119
+ - ".pryrc"
120
+ - Gemfile
121
+ - Gemfile.lock
122
+ - Guardfile
123
+ - LICENCE.txt
124
+ - README.md
125
+ - dhl_express.gemspec
126
+ - lib/dhl_express.rb
127
+ - lib/dhl_express/tracking.rb
128
+ - lib/dhl_express/version.rb
129
+ - spec/dhl_express/tracking_spec.rb
130
+ - spec/spec_helper.rb
131
+ - spec/vcr/empty_tracking.yml
132
+ - spec/vcr/working_tracking.yml
133
+ homepage: http://github.com/SebastianSzturo/dhl_express
134
+ licenses:
135
+ - MIT
136
+ metadata: {}
137
+ post_install_message:
138
+ rdoc_options: []
139
+ require_paths:
140
+ - lib
141
+ required_ruby_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ required_rubygems_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ requirements: []
152
+ rubyforge_project:
153
+ rubygems_version: 2.2.2
154
+ signing_key:
155
+ specification_version: 4
156
+ summary: Gem to access international DHL Express Services.
157
+ test_files:
158
+ - spec/dhl_express/tracking_spec.rb
159
+ - spec/spec_helper.rb
160
+ - spec/vcr/empty_tracking.yml
161
+ - spec/vcr/working_tracking.yml