g4s_client 0.1.2 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/g4s_client.gemspec +4 -4
- data/lib/g4s/g4s.rb +30 -20
- data/lib/g4s/g4si_auth_header.rb +21 -0
- data/lib/g4s/shipping/IPSShippingClient.rb +3 -0
- data/lib/g4s/shipping/default.rb +507 -504
- data/lib/g4s/shipping/defaultDriver.rb +61 -50
- data/lib/g4s/tracking/IPSTrackingClient.rb +5 -1
- data/lib/g4s/tracking/default.rb +813 -808
- data/lib/g4s/tracking/defaultDriver.rb +77 -67
- data/lib/g4s/tracking/defaultMappingRegistry.rb +4 -1
- data/lib/g4s/utilities/IPSUtilitiesClient.rb +3 -1
- data/lib/g4s/utilities/default.rb +401 -397
- data/lib/g4s/utilities/defaultDriver.rb +214 -203
- data/lib/g4s/utilities/defaultMappingRegistry.rb +3 -1
- data/lib/g4s_client.rb +85 -0
- data/lib/version.rb +5 -0
- metadata +11 -10
- data/lib/g4s/version.rb +0 -3
data/.gitignore
CHANGED
data/g4s_client.gemspec
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
$:.push File.expand_path("../lib", __FILE__)
|
2
|
-
require "
|
2
|
+
require "version" # path WITHIN the s.require_paths below
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = %q{g4s_client}
|
6
|
-
s.version =
|
7
|
-
s.platform = Gem::Platform::RUBY
|
6
|
+
s.version = G4sClient::VERSION
|
7
|
+
#s.platform = Gem::Platform::RUBY
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
9
9
|
s.authors = ["Rob Tierney"]
|
10
10
|
s.date = %q{2011-01-05}
|
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
|
22
22
|
s.homepage = %q{http://github.com/robtierney/g4s_client}
|
23
23
|
s.rdoc_options = ["--charset=UTF-8"]
|
24
|
-
s.require_paths = ["lib"]
|
24
|
+
s.require_paths = ["lib"] + ["lib/g4s"] + ['lib/g4s/shipping'] + ['lib/g4s/tracking'] + ['lib/g4s/utilities']
|
25
25
|
s.summary = %q{G4S SOAP Client}
|
26
26
|
|
27
27
|
if s.respond_to? :specification_version then
|
data/lib/g4s/g4s.rb
CHANGED
@@ -1,29 +1,39 @@
|
|
1
1
|
|
2
|
-
|
2
|
+
class G4s
|
3
|
+
|
4
|
+
CONFIG = YAML.load( ENV['G4S_CONFIG'] || File.read(Rails.root + 'config' + 'g4s.yml') )
|
3
5
|
|
4
|
-
|
5
|
-
class
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
@service = IPSShippingSoap.new(@endpoint)
|
10
|
-
end
|
6
|
+
class TEST; end
|
7
|
+
class LIVE; end
|
8
|
+
|
9
|
+
def self.instance
|
10
|
+
@@instance ||= self.new
|
11
11
|
end
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
@
|
17
|
-
@
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
if g4s_env == ::G4s::TEST
|
15
|
+
@shipping_client = G4sClient::ShippingTest.new
|
16
|
+
@utilities_client = G4sClient::UtilitiesTest.new
|
17
|
+
@tracking_client = G4sClient::TrackingTest.new
|
18
|
+
else
|
19
|
+
@shipping_client = G4sClient::ShippingLive.new
|
20
|
+
@utilities_client = G4sClient::UtilitiesLive.new
|
21
|
+
@tracking_client = G4sClient::TrackingLive.new
|
18
22
|
end
|
19
23
|
end
|
20
24
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
25
|
+
def shipping; @shipping_client; end
|
26
|
+
def utilities; @utilities_client; end
|
27
|
+
def tracking; @tracking_client; end
|
28
|
+
|
29
|
+
protected
|
30
|
+
|
31
|
+
def g4s_env
|
32
|
+
if (defined?(Rails) && Rails.env.development?) && !ENV['G4S_TEST_MODE']==false
|
33
|
+
G4s::TEST
|
34
|
+
else
|
35
|
+
G4s::LIVE
|
26
36
|
end
|
27
37
|
end
|
28
|
-
|
38
|
+
|
29
39
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
# Idea taken from: http://blog.willcannings.com/2008/07/06/wsse-authentication-in-ruby-soap4r/
|
3
|
+
# See also: http://journal.dedasys.com/2009/05/08/ruby-soap4r-wsse-authentication
|
4
|
+
|
5
|
+
require 'soap/header/simplehandler'
|
6
|
+
|
7
|
+
class G4SIAuthHeader < SOAP::Header::SimpleHandler
|
8
|
+
|
9
|
+
NAMESPACE = 'http://tempuri.org'
|
10
|
+
|
11
|
+
def initialize(username, password, accessKey)
|
12
|
+
@username, @password, @accessKey = username, password, accessKey
|
13
|
+
super(XSD::QName.new(NAMESPACE, 'G4SIAuthentication'))
|
14
|
+
end
|
15
|
+
|
16
|
+
def on_simple_outbound
|
17
|
+
{"Username" => @username, "Password" => @password, "AccessKey"=>@accessKey}
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
end
|