aftership 4.0.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 95e99df0b3b1522828ddaf64e07858cd9d228f4a
4
- data.tar.gz: c231c24fadd60141df19f072cfa2e695c779d34f
3
+ metadata.gz: bd8c2c1d56f929b7428547ca2a26ed0f2ccaf913
4
+ data.tar.gz: d60ee98fd8c674f9cc08f3049cda733892eec988
5
5
  SHA512:
6
- metadata.gz: 38a094cd9ee88231bfccb13c34e8c14d53b236757f273b5ab4e0212aa637cfd23b8e2c7a7239614f45ae01de44a2781556c70020eb73782e93ac27d371d5029c
7
- data.tar.gz: 51093f58e32cd3c1cf83a074371d8a79fbecb09ff1ed0dcbfe367162b431f170fd0999d4686c4dfae7189885f241adb86259569e1d90ed453096fff48db79da5
6
+ metadata.gz: 79e2489cd19d91abb55d60ae855d8f7fc02e9e308ebf0d7a68b7b6862cc95b053735cf4a4c7e0af28e4bd85295cf9d9fd80794eefa04bdc3c73f1a118b551534
7
+ data.tar.gz: a54a20436876fec125d6ab026402a7e5db5df70d6786d0bbdbcbc98cb1cbe82c057b20374cfbf75b0263363491b5e3d9349abbca7adbfaa8d86184159428377d
data/README.md CHANGED
@@ -9,16 +9,20 @@ This extension helps developers to integrate with AfterShip easily.
9
9
  AfterShip provides an automated way for online merchants to track packages and send their customers delivery status notifications. Customers no longer need to deal with tracking numbers and track packages on their own. With AfterShip, online merchants extend their customer service after the point of purchase by keeping their customers actively informed, while saving time and money by reducing customers’ questions about the status of their purchase delivery.
10
10
 
11
11
  ### Changes
12
+
13
+ * 2014-10-31 Pump version to 4.1.0
14
+ - Replaced HTTPI with HTTPClient
15
+
12
16
  * 2014-10-28 Pump version to 4.0.0, support latest v4 api
13
- * Adding deprecation messages
14
- * Adding new api endpoints
15
- * Make all changes regarding new API version
17
+ - Adding deprecation messages
18
+ - Adding new api endpoints
19
+ - Make all changes regarding new API version
16
20
 
17
21
  * 2014-04-11 Pump version to 3.0.1, support latest v3 api
18
- * Removed the debug message
22
+ - Removed the debug message
19
23
 
20
24
  * 2014-04-11 Pump version to 3.0.0, support latest v3 api
21
- * Change license to MIT
25
+ - Change license to MIT
22
26
 
23
27
 
24
28
  ## Installation
@@ -26,7 +30,7 @@ AfterShip provides an automated way for online merchants to track packages and s
26
30
  1. Add the following line to your application's Gemfile
27
31
 
28
32
  ```
29
- gem "aftership", "~> 3.0"
33
+ gem "aftership", "~> 4.1.0"
30
34
  ```
31
35
 
32
36
  2. Run bundler
@@ -35,7 +39,6 @@ AfterShip provides an automated way for online merchants to track packages and s
35
39
  bundle install
36
40
  ```
37
41
 
38
-
39
42
  ## Configuration
40
43
 
41
44
  1. Before you begin
@@ -51,7 +54,6 @@ AfterShip provides an automated way for online merchants to track packages and s
51
54
 
52
55
  https://www.aftership.com/apps/api
53
56
 
54
-
55
57
  ## Usage
56
58
 
57
59
  1. Setup
@@ -71,6 +73,28 @@ AfterShip provides an automated way for online merchants to track packages and s
71
73
 
72
74
  2. Coding
73
75
 
76
+
77
+ ### V4
78
+ ```
79
+ require('aftership')
80
+ AfterShip.api_key = 'YOUR_API_KEY'
81
+
82
+ AfterShip::V4::Courier.get
83
+ AfterShip::V4::Courier.get_all
84
+ AfterShip::V4::Courier.detect({:tracking_number => 'EJ276142450JP'})
85
+
86
+ AfterShip::V4::Tracking.create('1ZA6F598D992381375', {:emails => ['a@abcd.com', 'asdfasdfs@gmail.com']})
87
+ AfterShip::V4::Tracking.get('ups', '1ZA6F598D992381375')
88
+ AfterShip::V4::Tracking.get_all
89
+ AfterShip::V4::Tracking.update('ups', '1ZA6F598D992381375', {:title => 'Testing'})
90
+ AfterShip::V4::Tracking.retrack('ups', '1ZA6F598D992381375')
91
+ AfterShip::V4::Tracking.delete('ups', '1ZA6F598D992381375')
92
+
93
+ AfterShip::V4::LastCheckpoint.get('ups', '1ZA6F598D992381375')
94
+ ```
95
+
96
+ ### V3
97
+
74
98
  ```
75
99
  require('aftership')
76
100
  AfterShip.api_key = 'YOUR_API_KEY'
@@ -78,19 +102,17 @@ AfterShip provides an automated way for online merchants to track packages and s
78
102
  AfterShip::V3::Courier.get
79
103
  AfterShip::V3::Courier.detect('1ZA6F598D992381375')
80
104
 
81
- AfterShip::V3::Tracking.create('1ZA6F598D992381375', {"emails"=>["a@abcd.com", "asdfasdfs@gmail.com"]})
105
+ AfterShip::V3::Tracking.create('1ZA6F598D992381375', {'emails' => ['a@abcd.com', 'asdfasdfs@gmail.com']})
82
106
  AfterShip::V3::Tracking.get('ups', '1ZA6F598D992381375')
83
- AfterShip::V3::Tracking.get_multi()
84
- AfterShip::V3::Tracking.delete('ups', '1ZA6F598D992381375')
85
- AfterShip::V3::Tracking.update('ups', '1ZA6F598D992381375', {:title=>"Testing"})
107
+ AfterShip::V3::Tracking.get_multi
108
+ AfterShip::V3::Tracking.update('ups', '1ZA6F598D992381375', {:title => 'Testing'})
86
109
  AfterShip::V3::Tracking.reactivate('ups', '1ZA6F598D992381375')
110
+ AfterShip::V3::Tracking.delete('ups', '1ZA6F598D992381375')
87
111
 
88
112
  AfterShip::V3::LastCheckpoint.get('ups', '1ZA6F598D992381375')
89
113
 
90
114
  ```
91
115
 
92
-
93
-
94
116
  ## The License (MIT)
95
117
 
96
118
  Released under the MIT license. See the LICENSE file for the complete wording.
data/lib/aftership.rb CHANGED
@@ -1,17 +1,17 @@
1
1
  $:.unshift File.dirname(__FILE__)
2
2
 
3
- require "aftership/v3/courier"
4
- require "aftership/v3/tracking"
5
- require "aftership/v3/last_checkpoint"
3
+ require 'aftership/v3/courier'
4
+ require 'aftership/v3/tracking'
5
+ require 'aftership/v3/last_checkpoint'
6
6
 
7
- require "aftership/v4/courier"
8
- require "aftership/v4/tracking"
9
- require "aftership/v4/last_checkpoint"
7
+ require 'aftership/v4/courier'
8
+ require 'aftership/v4/tracking'
9
+ require 'aftership/v4/last_checkpoint'
10
10
 
11
11
  module AfterShip
12
12
  class << self;
13
13
  attr_accessor :api_key
14
14
  end
15
15
 
16
- URL = "https://api.aftership.com"
16
+ URL = 'https://api.aftership.com'
17
17
  end
@@ -1,41 +1,47 @@
1
- require 'httpi'
1
+ require 'httpclient'
2
2
  require 'json'
3
3
 
4
- HTTPI.log = false
5
-
6
4
  module AfterShip
7
- module V3
8
- class Base
9
-
10
- def self.call(http_verb_method, end_point, params = {}, body = {})
11
- url = "#{AfterShip::URL}/v3/#{end_point.to_s}"
12
- unless params.empty?
13
- url += '?' + Rack::Utils.build_query(params)
14
- end
15
-
16
- unless body.empty?
17
- body.each do |k, v|
18
- HTTPI.logger.warn("the #{k} field should be an array") if %w(emails smses).include?(k.to_s) && !v.is_a?(Array)
19
- end
20
- end
21
-
22
- request = HTTPI::Request.new(url)
23
- request.headers = {"aftership-api-key" => AfterShip.api_key, 'Content-Type' => 'application/json'}
24
- request.body = body.to_json
25
-
26
- response = HTTPI.send(http_verb_method.to_sym, request)
27
-
28
- # different
29
- if response.nil?
30
- raise(AfterShipError.new("response is nil"))
31
- else
32
- return JSON.parse(response.raw_body)
33
- end
34
- end
35
-
36
- class AfterShipError < StandardError;
37
-
38
- end
39
- end
40
- end
5
+ module V3
6
+ class Base
7
+ class AfterShipError < StandardError;
8
+ end
9
+ attr_reader :http_verb_method, :end_point, :query, :body
10
+
11
+ def initialize(http_verb_method, end_point, query = {}, body = {})
12
+ @http_verb_method = http_verb_method
13
+ @end_point = end_point
14
+ @query = query
15
+ @body = body
16
+
17
+ @client = HTTPClient.new
18
+ end
19
+
20
+ def call
21
+ header = {'aftership-api-key' => AfterShip.api_key, 'Content-Type' => 'application/json'}
22
+
23
+ parameters = {
24
+ :query => query,
25
+ :body => body.to_json,
26
+ :header => header
27
+ }
28
+
29
+ response = @client.send(http_verb_method, url, parameters)
30
+
31
+ if response.body
32
+ JSON.parse(response.body)
33
+ else
34
+ raise(AfterShipError.new('response is nil'))
35
+ end
36
+
37
+ end
38
+
39
+ private
40
+
41
+ def url
42
+ "#{AfterShip::URL}/v3/#{end_point.to_s}"
43
+ end
44
+
45
+ end
46
+ end
41
47
  end
@@ -1,21 +1,21 @@
1
1
  require File.dirname(__FILE__) + '/base'
2
2
 
3
3
  module AfterShip
4
- module V3
5
- class Courier < AfterShip::V3::Base
4
+ module V3
5
+ class Courier < AfterShip::V3::Base
6
6
 
7
- def self.get
8
- call(:get, "couriers")
9
- end
7
+ def self.get
8
+ new(:get, 'couriers').call
9
+ end
10
10
 
11
- def self.detect(tracking_number = '')
12
- if tracking_number.empty?
13
- raise ArgumentError.new("tracking_number is required.")
14
- else
15
- call(:get, "couriers/detect/#{tracking_number}")
16
- end
17
- end
11
+ def self.detect(tracking_number = '')
12
+ if tracking_number.empty?
13
+ raise ArgumentError.new('tracking_number is required.')
14
+ else
15
+ new(:get, "couriers/detect/#{tracking_number}").call
16
+ end
17
+ end
18
18
 
19
- end
20
- end
19
+ end
20
+ end
21
21
  end
@@ -1,17 +1,17 @@
1
1
  require File.dirname(__FILE__) + '/base'
2
2
 
3
3
  module AfterShip
4
- module V3
5
- class LastCheckpoint < AfterShip::V3::Base
4
+ module V3
5
+ class LastCheckpoint < AfterShip::V3::Base
6
6
 
7
- def self.get(slug = '', tracking_number = '')
8
- if slug.empty? || tracking_number.empty?
9
- raise ArgumentError.new("slug and tracking_number are required.")
10
- else
11
- call(:get, "last_checkpoint/#{slug}/#{tracking_number}")
12
- end
13
- end
7
+ def self.get(slug = '', tracking_number = '')
8
+ if slug.empty? || tracking_number.empty?
9
+ raise ArgumentError.new('slug and tracking_number are required.')
10
+ else
11
+ new(:get, "last_checkpoint/#{slug}/#{tracking_number}").call
12
+ end
13
+ end
14
14
 
15
- end
16
- end
15
+ end
16
+ end
17
17
  end
@@ -1,61 +1,61 @@
1
1
  require File.dirname(__FILE__) + '/base'
2
2
 
3
3
  module AfterShip
4
- module V3
5
- class Tracking < AfterShip::V3::Base
6
-
7
- #POST /trackings
8
- def self.create(tracking_number, params = {})
9
- if tracking_number.empty?
10
- raise ArgumentError.new("The tracking_number is required.")
11
- else
12
- query_hash = {:tracking_number => tracking_number}
13
- query_hash.merge!(params)
14
- body = {:tracking => query_hash}
15
- call(:post, "trackings", {}, body)
16
- end
17
- end
18
-
19
- #DELETE /trackings/:slug/:tracking_number
20
- def self.delete(slug, tracking_number)
21
- if slug.empty? || tracking_number.empty?
22
- raise ArgumentError.new("slug and tracking_number are required.")
23
- end
24
- call(:delete, "trackings/#{slug}/#{tracking_number}")
25
- end
26
-
27
- #GET /trackings
28
- def self.get_multi(params = {})
29
- call(:get, "trackings", params)
30
- end
31
-
32
- #GET /trackings/:slug/:tracking_number
33
- def self.get(slug, tracking_number, params = {})
34
- if slug.empty? || tracking_number.empty?
35
- raise ArgumentError.new("slug and tracking_number are required.")
36
- end
37
- call(:get, "trackings/#{slug}/#{tracking_number}", params)
38
- end
39
-
40
- #PUT /trackings/:slug/:tracking_number
41
- def self.update(slug, tracking_number, params = {})
42
- if slug.empty? || tracking_number.empty?
43
- raise ArgumentError.new("slug and tracking_number are required.")
44
- end
45
- body = {"tracking" => params}
46
- call(:put, "trackings/#{slug}/#{tracking_number}", {}, body)
47
- end
48
-
49
- #POST /trackings/:slug/:tracking_number/reactivate
50
- def self.reactivate(slug, tracking_number)
51
- puts "This method will be deprecate in AfterShipV4"
52
-
53
- if slug.empty? || tracking_number.empty?
54
- raise ArgumentError.new("slug and tracking_number are required.")
55
- end
56
- call(:post, "trackings/#{slug}/#{tracking_number}/reactivate")
57
- end
58
-
59
- end
60
- end
4
+ module V3
5
+ class Tracking < AfterShip::V3::Base
6
+
7
+ #POST /trackings
8
+ def self.create(tracking_number, params = {})
9
+ if tracking_number.empty?
10
+ raise ArgumentError.new('tracking_number is required.')
11
+ else
12
+ query_hash = {:tracking_number => tracking_number}
13
+ query_hash.merge!(params)
14
+ body = {:tracking => query_hash}
15
+ new(:post, 'trackings', {}, body).call
16
+ end
17
+ end
18
+
19
+ #DELETE /trackings/:slug/:tracking_number
20
+ def self.delete(slug, tracking_number)
21
+ if slug.empty? || tracking_number.empty?
22
+ raise ArgumentError.new('slug and tracking_number are required.')
23
+ end
24
+ new(:delete, "trackings/#{slug}/#{tracking_number}").call
25
+ end
26
+
27
+ #GET /trackings
28
+ def self.get_multi(params = {})
29
+ new(:get, 'trackings', params).call
30
+ end
31
+
32
+ #GET /trackings/:slug/:tracking_number
33
+ def self.get(slug, tracking_number, params = {})
34
+ if slug.empty? || tracking_number.empty?
35
+ raise ArgumentError.new('slug and tracking_number are required.')
36
+ end
37
+ new(:get, "trackings/#{slug}/#{tracking_number}", params).call
38
+ end
39
+
40
+ #PUT /trackings/:slug/:tracking_number
41
+ def self.update(slug, tracking_number, params = {})
42
+ if slug.empty? || tracking_number.empty?
43
+ raise ArgumentError.new('slug and tracking_number are required.')
44
+ end
45
+ body = {:tracking => params}
46
+ new(:put, "trackings/#{slug}/#{tracking_number}", {}, body).call
47
+ end
48
+
49
+ #POST /trackings/:slug/:tracking_number/reactivate
50
+ def self.reactivate(slug, tracking_number)
51
+ puts 'This method will be deprecate in AfterShipV4'
52
+
53
+ if slug.empty? || tracking_number.empty?
54
+ raise ArgumentError.new('slug and tracking_number are required.')
55
+ end
56
+ new(:post, "trackings/#{slug}/#{tracking_number}/reactivate").call
57
+ end
58
+
59
+ end
60
+ end
61
61
  end
@@ -1,54 +1,47 @@
1
- require 'httpi'
1
+ require 'httpclient'
2
2
  require 'json'
3
3
 
4
- HTTPI.log = false
5
-
6
4
  module AfterShip
7
- module V4
8
- class Base
9
- class AfterShipError < StandardError; end
10
- attr_reader :http_verb_method, :end_point, :params, :body
11
-
12
- def initialize(http_verb_method, end_point, params = {}, body = {})
13
- @body = body
14
- @params = params
15
- @end_point = end_point
16
- @http_verb_method = http_verb_method
17
- end
18
-
19
- def call
20
- validate
21
- if response = HTTPI.send(http_verb_method.to_sym, request)
22
- return JSON.parse(response.raw_body)
23
- else
24
- raise(AfterShipError.new("response is nil"))
25
- end
26
- end
27
-
28
- private
29
-
30
- def validate
31
- body.each do |key, value|
32
- if %w(emails smses).include?(key.to_s) && !value.is_a?(Array)
33
- HTTPI.logger.warn("the #{key} field should be an array")
34
- end
35
- end
36
- end
37
-
38
- def url
39
- api_url = "#{AfterShip::URL}/v4/#{end_point.to_s}"
40
- if !params.empty?
41
- api_url += '?' + Rack::Utils.build_query(params)
42
- end
43
- api_url
44
- end
45
-
46
- def request
47
- req = HTTPI::Request.new(url)
48
- req.headers = {"aftership-api-key" => AfterShip.api_key, 'Content-Type' => 'application/json'}
49
- req.body = body.to_json
50
- req
51
- end
52
- end
53
- end
5
+ module V4
6
+ class Base
7
+ class AfterShipError < StandardError;
8
+ end
9
+ attr_reader :http_verb_method, :end_point, :query, :body
10
+
11
+ def initialize(http_verb_method, end_point, query = {}, body = {})
12
+ @http_verb_method = http_verb_method
13
+ @end_point = end_point
14
+ @query = query
15
+ @body = body
16
+
17
+ @client = HTTPClient.new
18
+ end
19
+
20
+ def call
21
+ header = {'aftership-api-key' => AfterShip.api_key, 'Content-Type' => 'application/json'}
22
+
23
+ parameters = {
24
+ :query => query,
25
+ :body => body.to_json,
26
+ :header => header
27
+ }
28
+
29
+ response = @client.send(http_verb_method, url, parameters)
30
+
31
+ if response.body
32
+ JSON.parse(response.body)
33
+ else
34
+ raise(AfterShipError.new('response is nil'))
35
+ end
36
+
37
+ end
38
+
39
+ private
40
+
41
+ def url
42
+ "#{AfterShip::URL}/v4/#{end_point.to_s}"
43
+ end
44
+
45
+ end
46
+ end
54
47
  end
@@ -1,30 +1,30 @@
1
1
  require File.dirname(__FILE__) + '/base'
2
2
 
3
3
  module AfterShip
4
- module V4
5
- class Courier < AfterShip::V4::Base
4
+ module V4
5
+ class Courier < AfterShip::V4::Base
6
6
 
7
- #GET /couriers
8
- #Return a list of couriers activated at your AfterShip account.
9
- def self.get
10
- new(:get, "couriers").call
11
- end
7
+ #GET /couriers
8
+ #Return a list of couriers activated at your AfterShip account.
9
+ def self.get
10
+ new(:get, 'couriers').call
11
+ end
12
12
 
13
- #GET /couriers/all
14
- #Return a list of all couriers.
15
- def self.get
16
- new(:get, "couriers/all").call
17
- end
13
+ #GET /couriers/all
14
+ #Return a list of all couriers.
15
+ def self.get_all
16
+ new(:get, 'couriers/all').call
17
+ end
18
18
 
19
- #POST /couriers/detect
20
- #Return a list of matched couriers based on tracking number format and selected couriers or a list of couriers.
21
- def self.detect(tracking_number = '')
22
- if tracking_number.empty?
23
- raise ArgumentError.new("tracking_number is required.")
24
- else
25
- new(:get, "couriers/detect", {'tracking_number' => tracking_number}).call
26
- end
27
- end
28
- end
29
- end
19
+ #POST /couriers/detect
20
+ #Return a list of matched couriers based on tracking number format and selected couriers or a list of couriers.
21
+ def self.detect(tracking = nil)
22
+ if tracking == nil
23
+ raise ArgumentError.new('tracking object is required.')
24
+ else
25
+ new(:post, 'couriers/detect', {}, {:tracking => tracking}).call
26
+ end
27
+ end
28
+ end
29
+ end
30
30
  end
@@ -1,17 +1,17 @@
1
1
  require File.dirname(__FILE__) + '/base'
2
2
 
3
3
  module AfterShip
4
- module V4
5
- class LastCheckpoint < AfterShip::V4::Base
4
+ module V4
5
+ class LastCheckpoint < AfterShip::V4::Base
6
6
 
7
- def self.get(slug = '', tracking_number = '')
8
- if slug.empty? || tracking_number.empty?
9
- raise ArgumentError.new("slug and tracking_number are required.")
10
- else
11
- new(:get, "last_checkpoint/#{slug}/#{tracking_number}").call
12
- end
13
- end
7
+ def self.get(slug = '', tracking_number = '')
8
+ if slug.empty? || tracking_number.empty?
9
+ raise ArgumentError.new('slug and tracking_number are required.')
10
+ else
11
+ new(:get, "last_checkpoint/#{slug}/#{tracking_number}").call
12
+ end
13
+ end
14
14
 
15
- end
16
- end
15
+ end
16
+ end
17
17
  end
@@ -1,70 +1,64 @@
1
1
  require File.dirname(__FILE__) + '/base'
2
2
 
3
3
  module AfterShip
4
- module V4
5
- class Tracking < AfterShip::V4::Base
4
+ module V4
5
+ class Tracking < AfterShip::V4::Base
6
6
 
7
- #POST /trackings
8
- def self.create(tracking_number, params = {})
9
- if tracking_number.empty?
10
- raise ArgumentError.new("The tracking_number is required.")
11
- else
12
- query_hash = {:tracking_number => tracking_number}
13
- query_hash.merge!(params)
14
- body = {:tracking => query_hash}
15
- new(:post, "trackings", {}, body).call
16
- end
17
- end
7
+ #POST /trackings
8
+ def self.create(tracking_number, params = {})
9
+ if tracking_number.empty?
10
+ raise ArgumentError.new('tracking_number is required.')
11
+ else
12
+ query_hash = {:tracking_number => tracking_number}
13
+ query_hash.merge!(params)
14
+ body = {:tracking => query_hash}
15
+ new(:post, 'trackings', {}, body).call
16
+ end
17
+ end
18
18
 
19
- #POST /trackings/:slug/:tracking_number/retrack
20
- def self.retrack(slug, tracking_number)
21
- if slug.empty? || tracking_number.empty?
22
- raise ArgumentError.new("slug and tracking_number are required.")
23
- end
24
- new(:post, "trackings/#{slug}/#{tracking_number}/retrack").call
25
- end
19
+ #POST /trackings/:slug/:tracking_number/retrack
20
+ def self.retrack(slug, tracking_number)
21
+ if slug.empty? || tracking_number.empty?
22
+ raise ArgumentError.new('slug and tracking_number are required.')
23
+ end
24
+ new(:post, "trackings/#{slug}/#{tracking_number}/retrack").call
25
+ end
26
26
 
27
- #POST /trackings/batch
28
- def self.create_in_batch(tracking_numbers)
29
- raise ArgumentError.new("Not implemented yet")
30
- end
27
+ #DELETE /trackings/:slug/:tracking_number
28
+ def self.delete(slug, tracking_number)
29
+ if slug.empty? || tracking_number.empty?
30
+ raise ArgumentError.new('slug and tracking_number are required.')
31
+ end
32
+ new(:delete, "trackings/#{slug}/#{tracking_number}").call
33
+ end
31
34
 
32
- #DELETE /trackings/:slug/:tracking_number
33
- def self.delete(slug, tracking_number)
34
- if slug.empty? || tracking_number.empty?
35
- raise ArgumentError.new("slug and tracking_number are required.")
36
- end
37
- new(:delete, "trackings/#{slug}/#{tracking_number}").call
38
- end
35
+ #GET /trackings/:slug/:tracking_number
36
+ def self.get(slug, tracking_number, params = {})
37
+ if slug.empty? || tracking_number.empty?
38
+ raise ArgumentError.new('slug and tracking_number are required.')
39
+ end
40
+ new(:get, "trackings/#{slug}/#{tracking_number}", params).call
41
+ end
39
42
 
40
- #GET /trackings/:slug/:tracking_number
41
- def self.get(slug, tracking_number, params = {})
42
- if slug.empty? || tracking_number.empty?
43
- raise ArgumentError.new("slug and tracking_number are required.")
44
- end
45
- new(:get, "trackings/#{slug}/#{tracking_number}", params).call
46
- end
43
+ #GET /trackings
44
+ def self.get_all(params = {})
45
+ new(:get, 'trackings', params).call
46
+ end
47
47
 
48
- #GET /trackings
49
- #1_000_000 results is a limit
50
- def self.get_all(params = {})
51
- new(:get, "trackings", params).call
52
- end
48
+ #PUT /trackings/:slug/:tracking_number
49
+ def self.update(slug, tracking_number, params = {})
50
+ if slug.empty? || tracking_number.empty?
51
+ raise ArgumentError.new('slug and tracking_number are required.')
52
+ end
53
+ body = {:tracking => params}
54
+ new(:put, "trackings/#{slug}/#{tracking_number}", {}, body).call
55
+ end
53
56
 
54
- #PUT /trackings/:slug/:tracking_number
55
- def self.update(slug, tracking_number, params = {})
56
- if slug.empty? || tracking_number.empty?
57
- raise ArgumentError.new("slug and tracking_number are required.")
58
- end
59
- body = {"tracking" => params}
60
- new(:put, "trackings/#{slug}/#{tracking_number}", {}, body).call
61
- end
62
-
63
- #Deprecated
64
- #POST /trackings/:slug/:tracking_number/reactivate
65
- def self.reactivate(slug, tracking_number)
66
- raise StandartError.new("This method is deprecated please use 'retrack' instead")
67
- end
68
- end
69
- end
57
+ #Deprecated
58
+ #POST /trackings/:slug/:tracking_number/reactivate
59
+ def self.reactivate(slug, tracking_number)
60
+ raise StandardError.new('This method is deprecated, please use "retrack" instead')
61
+ end
62
+ end
63
+ end
70
64
  end
metadata CHANGED
@@ -1,44 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aftership
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.1.0
5
5
  platform: ruby
6
6
  authors:
7
- - AfterShip.com
8
- - Alex Topalov
7
+ - AfterShip Limited
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
11
  date: 2014-10-31 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: httpi
14
+ name: httpclient
16
15
  requirement: !ruby/object:Gem::Requirement
17
16
  requirements:
18
17
  - - ~>
19
18
  - !ruby/object:Gem::Version
20
- version: 2.2.7
19
+ version: 2.5.2
21
20
  type: :runtime
22
21
  prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
24
  - - ~>
26
25
  - !ruby/object:Gem::Version
27
- version: 2.2.7
28
- - !ruby/object:Gem::Dependency
29
- name: rubyntlm
30
- requirement: !ruby/object:Gem::Requirement
31
- requirements:
32
- - - ~>
33
- - !ruby/object:Gem::Version
34
- version: 0.4.0
35
- type: :runtime
36
- prerelease: false
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ~>
40
- - !ruby/object:Gem::Version
41
- version: 0.4.0
26
+ version: 2.5.2
42
27
  - !ruby/object:Gem::Dependency
43
28
  name: rspec
44
29
  requirement: !ruby/object:Gem::Requirement
@@ -70,7 +55,6 @@ dependencies:
70
55
  description: Developed for easy integration with AfterShip
71
56
  email:
72
57
  - support@aftership.com
73
- - me@alextopalov.com
74
58
  executables: []
75
59
  extensions: []
76
60
  extra_rdoc_files: []