aftership 1.0.3
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 +15 -0
- data/lib/aftership.rb +14 -0
- data/lib/aftership/base.rb +37 -0
- data/lib/aftership/courier.rb +11 -0
- data/lib/aftership/tracking.rb +26 -0
- metadata +61 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OTU5ZDMxZjI0NWY3NWNkYjgxODM5YWM5NzMzZGY2YjIwOTliNzg2YQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NDgyNGRlZThlNmViMzhlN2VjOWE5YmJmZTBmY2UxNzhlODM0YTIxZA==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ODgzMmY3NjBkMzU4ZDVkNGM5ODliYWZjNGQyNThkOWQ0YjdmZjg0Y2QwYzFi
|
10
|
+
Mjc0NTk4YzY5OTk2NzYzMzRjZDE0NjljNWFiMDYyMzcyMzZmOTQzM2IzY2M1
|
11
|
+
YzAyZjk1YWUzYTBkZWI5ODkwNjA5NmU5YjdjNGM1MDhhMjA0NmI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZWJhYzYxM2ZlZjA5YTFlMzJlMzhiMDkyMjdmZjk0MWFmMWJjOGUxMjBkNTIy
|
14
|
+
MTI5M2NjYzE3ZTE5ZmIwYmU5ZTVmMTkwODBkMTdiNDI5YmQ5YjU5NTcwODY3
|
15
|
+
ZWRkMjgyNmM0YmRlY2QyMDExMDJkZThkYzFmODc5MDNiNmZmMzU=
|
data/lib/aftership.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'httpi'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
HTTPI.log = false
|
5
|
+
|
6
|
+
module AfterShip
|
7
|
+
module V2
|
8
|
+
class Base
|
9
|
+
def self.call(http_verb_method, *args)
|
10
|
+
url = "#{AfterShip::URL}/v#{AfterShip::VERSION}/#{args.first.to_s}.#{AfterShip::FORMAT}"
|
11
|
+
req_body = {:api_key => AfterShip.api_key}
|
12
|
+
if args.last.is_a?(Hash)
|
13
|
+
args.last.each do |k, v|
|
14
|
+
HTTPI.logger.warn("this field #{k} should be array") if %w(emails smses).include?(k.to_s) && !v.is_a?(Array)
|
15
|
+
end
|
16
|
+
|
17
|
+
opt = {}
|
18
|
+
args.last.each {|k, v| v.is_a?(Array) ? opt["#{k}[]"] = v : opt[k] = v}
|
19
|
+
req_body.merge!(opt)
|
20
|
+
end
|
21
|
+
|
22
|
+
request = HTTPI::Request.new(url)
|
23
|
+
request.body = req_body
|
24
|
+
response = HTTPI.send(http_verb_method.to_sym, request)
|
25
|
+
|
26
|
+
if response.nil?
|
27
|
+
raise(AfterShipError.new("response is nil"))
|
28
|
+
else
|
29
|
+
return JSON.parse(response.raw_body)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class AfterShipError < StandardError;
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/base'
|
2
|
+
|
3
|
+
module AfterShip
|
4
|
+
module V2
|
5
|
+
class Tracking < AfterShip::V2::Base
|
6
|
+
def self.create(tracking_number, courier, opt = {})
|
7
|
+
if tracking_number.empty? || courier.empty?
|
8
|
+
raise ArgumentError.new("both tracking_number and courier are necessary for this method call")
|
9
|
+
end
|
10
|
+
|
11
|
+
query_hash = {:tracking_number => tracking_number, :courier => courier}
|
12
|
+
query_hash.merge!(opt)
|
13
|
+
call(:post, "trackings", query_hash)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.get(tracking_number, courier)
|
17
|
+
if tracking_number.empty? || courier.empty?
|
18
|
+
raise ArgumentError.new("both tracking_number and courier are necessary for this method call")
|
19
|
+
end
|
20
|
+
|
21
|
+
query_hash = {:tracking_number => tracking_number, :courier => courier}
|
22
|
+
call(:get, "trackings", query_hash)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: aftership
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- LU Wenlong
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-06-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: httpi
|
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
|
+
description: Developed for easy integration with AfterShip
|
28
|
+
email: wllu@aftership.com
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- lib/aftership.rb
|
34
|
+
- lib/aftership/base.rb
|
35
|
+
- lib/aftership/courier.rb
|
36
|
+
- lib/aftership/tracking.rb
|
37
|
+
homepage: http://www.aftership.com
|
38
|
+
licenses: []
|
39
|
+
metadata: {}
|
40
|
+
post_install_message:
|
41
|
+
rdoc_options: []
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ! '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.8.7
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
requirements:
|
55
|
+
- none
|
56
|
+
rubyforge_project:
|
57
|
+
rubygems_version: 2.0.3
|
58
|
+
signing_key:
|
59
|
+
specification_version: 4
|
60
|
+
summary: Formerly known as aftership_ruby and a wrapper for AfterShip API
|
61
|
+
test_files: []
|