exact4r 0.5 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +8 -0
- data/LICENCE +3 -0
- data/README +122 -0
- data/Rakefile +41 -0
- data/VERSION +1 -0
- data/doc/classes/EWS/Transaction/Request.html +38 -38
- data/doc/classes/EWS/Transaction/Response.html +4 -4
- data/doc/classes/EWS/Transaction/Transporter.html +32 -33
- data/doc/created.rid +1 -1
- data/doc/files/CHANGELOG.html +115 -0
- data/doc/files/LICENCE.html +109 -0
- data/doc/files/README.html +23 -18
- data/doc/files/VERSION.html +107 -0
- data/doc/files/lib/ews/transaction/mapping_rb.html +2 -1
- data/doc/files/lib/ews/transaction/request_rb.html +1 -1
- data/doc/files/lib/ews/transaction/transporter_rb.html +1 -1
- data/doc/files/lib/exact4r_rb.html +1 -2
- data/doc/fr_file_index.html +3 -0
- data/doc/fr_method_index.html +1 -1
- data/lib/ews/transaction/mapping.rb +1 -0
- data/lib/ews/transaction/request.rb +3 -3
- data/lib/ews/transaction/transporter.rb +20 -18
- data/lib/exact4r.rb +0 -1
- data/spec/donncha.rb +46 -0
- data/spec/mapping_spec.rb +85 -0
- data/spec/request_spec.rb +123 -0
- data/spec/spec_helper.rb +41 -0
- data/spec/transporter_spec.rb +62 -0
- metadata +72 -36
data/CHANGELOG
ADDED
data/LICENCE
ADDED
data/README
ADDED
@@ -0,0 +1,122 @@
|
|
1
|
+
= exact4r
|
2
|
+
A gem which rrovides access to E-xact's Web Services API, allowing the submission
|
3
|
+
of financial transactions via REST, JSON or SOAP.
|
4
|
+
|
5
|
+
== Getting Started
|
6
|
+
|
7
|
+
=1. Submit a transaction
|
8
|
+
|
9
|
+
require 'rubygems'
|
10
|
+
require 'exact4r'
|
11
|
+
|
12
|
+
# build a purchase request
|
13
|
+
request = EWS::Transaction::Request.new({
|
14
|
+
:transaction_type => :purchase,
|
15
|
+
:amount => 10.50,
|
16
|
+
:cardholder_name => "Simon Brown",
|
17
|
+
:cc_number => "4111111111111111",
|
18
|
+
:cc_expiry => "1005", # MUST be YYMM format
|
19
|
+
:gateway_id => "XXXXXXX", # which gateway to submit the request to
|
20
|
+
:password => "YYYYYY" # your password for that gateway
|
21
|
+
})
|
22
|
+
|
23
|
+
transporter = EWS::Transaction::Transporter.new
|
24
|
+
response = transporter.submit(request) # submits using REST (XML) by default
|
25
|
+
|
26
|
+
# submit using JSON, or
|
27
|
+
response = transporter.submit(request, :json)
|
28
|
+
|
29
|
+
# submit using SOAP, or
|
30
|
+
response = transporter.submit(request, :soap)
|
31
|
+
|
32
|
+
# submit explicitly via REST
|
33
|
+
response = transporter.submit(request, :rest)
|
34
|
+
|
35
|
+
# The response object is independent of type of transport chosen.
|
36
|
+
# We decode the payload into a regular object
|
37
|
+
response.transaction_tag # 1234
|
38
|
+
response.exact_resp_code # "00"
|
39
|
+
response.exact_message # "Transaction Normal"
|
40
|
+
response.bank_resp_code # "00"
|
41
|
+
response.bank_message # "APPROVED"
|
42
|
+
|
43
|
+
=2. Find information on an existing transaction
|
44
|
+
|
45
|
+
require 'rubygems'
|
46
|
+
require 'exact4r'
|
47
|
+
|
48
|
+
# build a purchase request
|
49
|
+
request = EWS::Transaction::Request.new({
|
50
|
+
:transaction_type => :purchase,
|
51
|
+
:amount => 10.50,
|
52
|
+
:cardholder_name => "Simon Brown",
|
53
|
+
:cc_number => "4111111111111111",
|
54
|
+
:cc_expiry => "1005", # MUST be YYMM format
|
55
|
+
:gateway_id => "XXXXXXX", # which gateway to submit the request to
|
56
|
+
:password => "YYYYYY" # your password for that gateway
|
57
|
+
})
|
58
|
+
|
59
|
+
transporter = EWS::Transaction::Transporter.new
|
60
|
+
response = transporter.submit(request) # submits using REST (XML) by default
|
61
|
+
|
62
|
+
# you need to know the transaction tag of the transaction you are looking for
|
63
|
+
find_request = EWS::Transaction::Request.new({
|
64
|
+
:transaction_type => :transaction_details,
|
65
|
+
:transaction_tag => response.transaction_tag,
|
66
|
+
:gateway_id => "XXXXXXX",
|
67
|
+
:password => "YYYYYY"
|
68
|
+
})
|
69
|
+
|
70
|
+
find_response = transporter.submit(find_request, :json) # again, can choose your transport type as before
|
71
|
+
find_response.cc_number # 4111111111111111
|
72
|
+
find_response.amount # 10.50
|
73
|
+
|
74
|
+
=3. Re-using a Transporter
|
75
|
+
|
76
|
+
require 'rubygems'
|
77
|
+
require 'exact4r'
|
78
|
+
|
79
|
+
# The transporter object can be re-used across multiple transactions, so set it up once
|
80
|
+
# and forget about it.
|
81
|
+
# In this example, we will continue to use E-xact's default web-service URL, but we
|
82
|
+
# will specify a default transport_type of :soap
|
83
|
+
transporter = EWS::Transaction::Transporter.new(nil, {:transaction_type => :soap})
|
84
|
+
|
85
|
+
# now let's submit do a recurring seed purchase...
|
86
|
+
rsp_req = EWS::Transaction::Request.new({
|
87
|
+
:transaction_type => :recurring_seed_purchase,
|
88
|
+
:amount => 12.00,
|
89
|
+
:cardholder_name => "Simon Brown",
|
90
|
+
:cc_number => "4111111111111111",
|
91
|
+
:cc_expiry => "1005",
|
92
|
+
:gateway_id => "XXXXXX",
|
93
|
+
:password => "YYYYYY"
|
94
|
+
})
|
95
|
+
|
96
|
+
rsp_resp = transporter.submit(rsp_req)
|
97
|
+
raise "Seed Purchase failed" unless rsp_resp.approved?
|
98
|
+
|
99
|
+
# ...then do multiple refunds against it
|
100
|
+
1.upto(10) do
|
101
|
+
rf_req = EWS::Transaction::Request.new({
|
102
|
+
:transaction_type => :tagged_refund,
|
103
|
+
:transaction_tag => rsp_resp.transaction_tag, # need to know which transaction we're refunding against...
|
104
|
+
:auth_number => rsp_resp.auth_number, # and its auth_number
|
105
|
+
:amount => 1.00, # refund a dollar at a time
|
106
|
+
:gateway_id => "XXXXXX",
|
107
|
+
:password => "YYYYYY"
|
108
|
+
})
|
109
|
+
rf_resp = transporter.submit(rf_req)
|
110
|
+
raise "Refund failed: #{rf_resp.exact_resp_code}, #{rf_resp.exact_message}" unless rf_resp.approved?
|
111
|
+
end
|
112
|
+
|
113
|
+
== Rake tasks
|
114
|
+
|
115
|
+
spec
|
116
|
+
Run all test in spec/ folder (default)
|
117
|
+
|
118
|
+
rdoc
|
119
|
+
Generate rdoc html in doc/
|
120
|
+
|
121
|
+
gem
|
122
|
+
Build gem
|
data/Rakefile
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec/rake/spectask'
|
2
|
+
require 'rake/rdoctask'
|
3
|
+
require "rubygems"
|
4
|
+
Gem::manage_gems
|
5
|
+
require "rake/gempackagetask"
|
6
|
+
|
7
|
+
task :default => :spec
|
8
|
+
|
9
|
+
desc "Run all specs"
|
10
|
+
Spec::Rake::SpecTask.new(:spec) do |t|
|
11
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Build the RDoc"
|
15
|
+
Rake::RDocTask.new { |rdoc|
|
16
|
+
rdoc.rdoc_dir = 'doc'
|
17
|
+
rdoc.title = "exact4r"
|
18
|
+
rdoc.options << '--main' << 'README' << "--inline-source" << "--line-numbers"
|
19
|
+
rdoc.rdoc_files.include('CHANGELOG', 'LICENCE', 'README', 'VERSION', 'lib/**/*.rb')
|
20
|
+
}
|
21
|
+
|
22
|
+
desc "Build the exact4r gem"
|
23
|
+
spec = Gem::Specification.new do |s|
|
24
|
+
s.name="exact4r"
|
25
|
+
s.author = "E-xact Transactions Ltd."
|
26
|
+
s.homepage = "http://e-xact4r.rubyforge.org/"
|
27
|
+
s.rubyforge_project = "exact4r"
|
28
|
+
s.email = "dredmond@e-xact.com"
|
29
|
+
s.version=`cat VERSION`
|
30
|
+
s.summary = 'E-xact Web Services Client Library.'
|
31
|
+
s.files = FileList["./**/**"].to_a
|
32
|
+
s.has_rdoc = true
|
33
|
+
s.extra_rdoc_files = ['CHANGELOG', 'LICENCE', 'README', 'VERSION']
|
34
|
+
s.rdoc_options << '--main' << 'README' << '--inline-source' << '--line-numbers'
|
35
|
+
s.add_dependency('activesupport', '>= 2.0.2')
|
36
|
+
s.add_dependency('builder', '>= 2.1.2')
|
37
|
+
end
|
38
|
+
|
39
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
40
|
+
pkg.need_tar = true
|
41
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.5.1
|
@@ -362,11 +362,11 @@ Initialize a <a href="Request.html">Request</a> with a hash of values
|
|
362
362
|
onclick="toggleCode('M000004-source');return false;">[Source]</a></p>
|
363
363
|
<div class="method-source-code" id="M000004-source">
|
364
364
|
<pre>
|
365
|
-
<span class="ruby-comment cmt"># File lib/ews/transaction/request.rb, line 54</span>
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
365
|
+
<span class="ruby-comment cmt"># File lib/ews/transaction/request.rb, line 54</span>
|
366
|
+
54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">hash</span> = {})
|
367
|
+
55: <span class="ruby-identifier">hash</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span> <span class="ruby-node">"#{k.to_s}="</span>, <span class="ruby-identifier">v</span>}
|
368
|
+
56: <span class="ruby-ivar">@errors</span> = {}
|
369
|
+
57: <span class="ruby-keyword kw">end</span>
|
370
370
|
</pre>
|
371
371
|
</div>
|
372
372
|
</div>
|
@@ -392,10 +392,10 @@ Indicates whether or not this transaction is a
|
|
392
392
|
onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
|
393
393
|
<div class="method-source-code" id="M000006-source">
|
394
394
|
<pre>
|
395
|
-
<span class="ruby-comment cmt"># File lib/ews/transaction/request.rb, line 71</span>
|
396
|
-
|
397
|
-
|
398
|
-
|
395
|
+
<span class="ruby-comment cmt"># File lib/ews/transaction/request.rb, line 71</span>
|
396
|
+
71: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_find_transaction?</span>
|
397
|
+
72: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">transaction_type</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"CR"</span>
|
398
|
+
73: <span class="ruby-keyword kw">end</span>
|
399
399
|
</pre>
|
400
400
|
</div>
|
401
401
|
</div>
|
@@ -420,15 +420,15 @@ relevant code, e.g: for a purchase you can use either
|
|
420
420
|
onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
|
421
421
|
<div class="method-source-code" id="M000005-source">
|
422
422
|
<pre>
|
423
|
-
<span class="ruby-comment cmt"># File lib/ews/transaction/request.rb, line 61</span>
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
423
|
+
<span class="ruby-comment cmt"># File lib/ews/transaction/request.rb, line 61</span>
|
424
|
+
61: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">transaction_type=</span>(<span class="ruby-identifier">type_sym</span>)
|
425
|
+
62: <span class="ruby-comment cmt"># assume we're given a symbol, so look up the code</span>
|
426
|
+
63: <span class="ruby-identifier">value</span> = <span class="ruby-ivar">@@transaction_codes</span>[<span class="ruby-identifier">type_sym</span>]
|
427
|
+
64: <span class="ruby-comment cmt"># if nothing found, then maybe we were given an actual code?</span>
|
428
|
+
65: <span class="ruby-identifier">value</span> = <span class="ruby-identifier">type_sym</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">value</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-keyword kw">and</span> <span class="ruby-ivar">@@transaction_codes</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type_sym</span>)
|
429
|
+
66:
|
430
|
+
67: <span class="ruby-ivar">@transaction_type</span> = <span class="ruby-identifier">value</span>
|
431
|
+
68: <span class="ruby-keyword kw">end</span>
|
432
432
|
</pre>
|
433
433
|
</div>
|
434
434
|
</div>
|
@@ -448,26 +448,26 @@ relevant code, e.g: for a purchase you can use either
|
|
448
448
|
onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
|
449
449
|
<div class="method-source-code" id="M000007-source">
|
450
450
|
<pre>
|
451
|
-
<span class="ruby-comment cmt"># File lib/ews/transaction/request.rb, line 75</span>
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
451
|
+
<span class="ruby-comment cmt"># File lib/ews/transaction/request.rb, line 75</span>
|
452
|
+
75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">valid?</span>
|
453
|
+
76: <span class="ruby-identifier">errors</span>[<span class="ruby-identifier">:transaction_type</span>] = <span class="ruby-value str">"transaction_type must be supplied"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">transaction_type</span>.<span class="ruby-identifier">blank?</span>
|
454
|
+
77: <span class="ruby-identifier">errors</span>[<span class="ruby-identifier">:transaction_type</span>] = <span class="ruby-value str">"invalid transaction_type supplied"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@@transaction_codes</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">include?</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">transaction_type</span>
|
455
|
+
78:
|
456
|
+
79: <span class="ruby-comment cmt"># need to authenticate</span>
|
457
|
+
80: <span class="ruby-identifier">errors</span>[<span class="ruby-identifier">:gateway_id</span>] = <span class="ruby-value str">"gateway_id must be supplied"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">gateway_id</span>.<span class="ruby-identifier">blank?</span>
|
458
|
+
81: <span class="ruby-identifier">errors</span>[<span class="ruby-identifier">:password</span>] = <span class="ruby-value str">"password must be supplied"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">password</span>.<span class="ruby-identifier">blank?</span>
|
459
|
+
82:
|
460
|
+
83: <span class="ruby-comment cmt"># ensure we've been given valid amounts</span>
|
461
|
+
84: <span class="ruby-identifier">errors</span>[<span class="ruby-identifier">:amount</span>] = <span class="ruby-value str">"invalid amount supplied"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_amount?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">amount</span>)
|
462
|
+
85: <span class="ruby-identifier">errors</span>[<span class="ruby-identifier">:surcharge_amount</span>] = <span class="ruby-value str">"invalid surcharge_amount supplied"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_amount?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">surcharge_amount</span>)
|
463
|
+
86: <span class="ruby-identifier">errors</span>[<span class="ruby-identifier">:tax1_amount</span>] = <span class="ruby-value str">"invalid tax1_amount supplied"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_amount?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">tax1_amount</span>)
|
464
|
+
87: <span class="ruby-identifier">errors</span>[<span class="ruby-identifier">:tax2_amount</span>] = <span class="ruby-value str">"invalid tax2_amount supplied"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_amount?</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">tax2_amount</span>)
|
465
|
+
88:
|
466
|
+
89: <span class="ruby-identifier">errors</span>[<span class="ruby-identifier">:cc_number</span>] = <span class="ruby-value str">"invalid cc_number supplied"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_card_number?</span>
|
467
|
+
90: <span class="ruby-identifier">errors</span>[<span class="ruby-identifier">:cc_expiry</span>] = <span class="ruby-value str">"invalid cc_expiry supplied"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">valid_expiry_date?</span>
|
468
|
+
91:
|
469
|
+
92: <span class="ruby-identifier">errors</span>.<span class="ruby-identifier">empty?</span>
|
470
|
+
93: <span class="ruby-keyword kw">end</span>
|
471
471
|
</pre>
|
472
472
|
</div>
|
473
473
|
</div>
|
@@ -256,10 +256,10 @@ Indicates whether or not the transaction was approved
|
|
256
256
|
onclick="toggleCode('M000003-source');return false;">[Source]</a></p>
|
257
257
|
<div class="method-source-code" id="M000003-source">
|
258
258
|
<pre>
|
259
|
-
<span class="ruby-comment cmt"># File lib/ews/transaction/response.rb, line 13</span>
|
260
|
-
|
261
|
-
|
262
|
-
|
259
|
+
<span class="ruby-comment cmt"># File lib/ews/transaction/response.rb, line 13</span>
|
260
|
+
13: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">approved?</span>
|
261
|
+
14: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">transaction_approved</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
|
262
|
+
15: <span class="ruby-keyword kw">end</span>
|
263
263
|
</pre>
|
264
264
|
</div>
|
265
265
|
</div>
|
@@ -91,14 +91,12 @@ the user. The available options are:
|
|
91
91
|
</pre>
|
92
92
|
<p>
|
93
93
|
The <a href="Transporter.html">Transporter</a> will connect to the service,
|
94
|
-
using SSL if required, and will encode Reqests to
|
95
|
-
|
96
|
-
Responses received from the service.
|
94
|
+
using SSL if required, and will encode Reqests to send to the service, and
|
95
|
+
decode Responses received from the service.
|
97
96
|
</p>
|
98
97
|
<p>
|
99
98
|
Once configured to connect to a particular service, it can be used
|
100
|
-
repeatedly to
|
101
|
-
transactions as required.
|
99
|
+
repeatedly to send as many transactions as required.
|
102
100
|
</p>
|
103
101
|
|
104
102
|
</div>
|
@@ -111,7 +109,7 @@ transactions as required.
|
|
111
109
|
|
112
110
|
<div class="name-list">
|
113
111
|
<a href="#M000001">new</a>
|
114
|
-
<a href="#M000002">
|
112
|
+
<a href="#M000002">submit</a>
|
115
113
|
</div>
|
116
114
|
</div>
|
117
115
|
|
@@ -165,20 +163,21 @@ The default certificates are those required to connect to <a
|
|
165
163
|
href="https://api.e-xact.com">api.e-xact.com</a> and the default
|
166
164
|
<tt>transport_type</tt> is <tt>:rest</tt>. The default
|
167
165
|
<tt>transport_type</tt> can be overridden on a per-transaction basis, if
|
168
|
-
you choose to do so, by specifying it as a parameter to the <tt
|
169
|
-
|
166
|
+
you choose to do so, by specifying it as a parameter to the <tt>send</tt>
|
167
|
+
method.
|
170
168
|
</p>
|
171
169
|
<p><a class="source-toggle" href="#"
|
172
170
|
onclick="toggleCode('M000001-source');return false;">[Source]</a></p>
|
173
171
|
<div class="method-source-code" id="M000001-source">
|
174
172
|
<pre>
|
175
|
-
<span class="ruby-comment cmt"># File lib/ews/transaction/transporter.rb, line 34</span>
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
173
|
+
<span class="ruby-comment cmt"># File lib/ews/transaction/transporter.rb, line 34</span>
|
174
|
+
34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">url</span> = <span class="ruby-value str">"https://api.e-xact.com/"</span>, <span class="ruby-identifier">options</span> = {})
|
175
|
+
35: <span class="ruby-ivar">@url</span> = <span class="ruby-constant">URI</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">url</span>)
|
176
|
+
36: <span class="ruby-identifier">base</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword kw">__FILE__</span>)
|
177
|
+
37: <span class="ruby-ivar">@server_cert</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:server_cert</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">base</span><span class="ruby-operator">+</span><span class="ruby-value str">"/../../../certs/exact.cer"</span>
|
178
|
+
38: <span class="ruby-ivar">@issuer_cert</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:issuer_cert</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">base</span><span class="ruby-operator">+</span><span class="ruby-value str">"/../../../certs/equifax_ca.cer"</span>
|
179
|
+
39: <span class="ruby-ivar">@transport_type</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">:issuer_cert</span>] <span class="ruby-operator">||</span> <span class="ruby-identifier">:rest</span>
|
180
|
+
40: <span class="ruby-keyword kw">end</span>
|
182
181
|
</pre>
|
183
182
|
</div>
|
184
183
|
</div>
|
@@ -191,7 +190,7 @@ href="Transporter.html#M000002">send</a></tt> method.
|
|
191
190
|
|
192
191
|
<div class="method-heading">
|
193
192
|
<a href="#M000002" class="method-signature">
|
194
|
-
<span class="method-name">
|
193
|
+
<span class="method-name">submit</span><span class="method-args">(request, transport_type = nil)</span>
|
195
194
|
</a>
|
196
195
|
</div>
|
197
196
|
|
@@ -214,23 +213,23 @@ href="Transporter.html">Transporter</a> will be used
|
|
214
213
|
onclick="toggleCode('M000002-source');return false;">[Source]</a></p>
|
215
214
|
<div class="method-source-code" id="M000002-source">
|
216
215
|
<pre>
|
217
|
-
<span class="ruby-comment cmt"># File lib/ews/transaction/transporter.rb, line
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
216
|
+
<span class="ruby-comment cmt"># File lib/ews/transaction/transporter.rb, line 46</span>
|
217
|
+
46: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">submit</span>(<span class="ruby-identifier">request</span>, <span class="ruby-identifier">transport_type</span> = <span class="ruby-keyword kw">nil</span>)
|
218
|
+
47: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Request not supplied"</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">request</span>.<span class="ruby-identifier">nil?</span>
|
219
|
+
48: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">request</span>.<span class="ruby-identifier">valid?</span>
|
220
|
+
49:
|
221
|
+
50: <span class="ruby-identifier">transport_type</span> <span class="ruby-operator">||=</span> <span class="ruby-ivar">@transport_type</span>
|
222
|
+
51:
|
223
|
+
52: <span class="ruby-identifier">raise</span> <span class="ruby-node">"Transport type #{transport_type} is not supported"</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@@transport_types</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">transport_type</span>
|
224
|
+
53:
|
225
|
+
54: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">request</span>.<span class="ruby-identifier">is_find_transaction?</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">transport_type</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">:soap</span>
|
226
|
+
55: <span class="ruby-identifier">content</span> = <span class="ruby-identifier">post</span>(<span class="ruby-identifier">request</span>, <span class="ruby-identifier">transport_type</span>)
|
227
|
+
56: <span class="ruby-keyword kw">else</span>
|
228
|
+
57: <span class="ruby-identifier">content</span> = <span class="ruby-identifier">get</span>(<span class="ruby-identifier">request</span>, <span class="ruby-identifier">transport_type</span>)
|
229
|
+
58: <span class="ruby-keyword kw">end</span>
|
230
|
+
59:
|
231
|
+
60: <span class="ruby-constant">EWS</span><span class="ruby-operator">::</span><span class="ruby-constant">Transaction</span><span class="ruby-operator">::</span><span class="ruby-constant">Mapping</span>.<span class="ruby-identifier">send</span> <span class="ruby-node">"#{transport_type}_to_response"</span>, <span class="ruby-identifier">content</span>
|
232
|
+
61: <span class="ruby-keyword kw">end</span>
|
234
233
|
</pre>
|
235
234
|
</div>
|
236
235
|
</div>
|
data/doc/created.rid
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Fri, 30 May 2008
|
1
|
+
Fri, 30 May 2008 14:52:32 +1000
|
@@ -0,0 +1,115 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
+
<head>
|
8
|
+
<title>File: CHANGELOG</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
+
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
12
|
+
<script type="text/javascript">
|
13
|
+
// <![CDATA[
|
14
|
+
|
15
|
+
function popupCode( url ) {
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
+
}
|
18
|
+
|
19
|
+
function toggleCode( id ) {
|
20
|
+
if ( document.getElementById )
|
21
|
+
elem = document.getElementById( id );
|
22
|
+
else if ( document.all )
|
23
|
+
elem = eval( "document.all." + id );
|
24
|
+
else
|
25
|
+
return false;
|
26
|
+
|
27
|
+
elemStyle = elem.style;
|
28
|
+
|
29
|
+
if ( elemStyle.display != "block" ) {
|
30
|
+
elemStyle.display = "block"
|
31
|
+
} else {
|
32
|
+
elemStyle.display = "none"
|
33
|
+
}
|
34
|
+
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Make codeblocks hidden by default
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
+
|
41
|
+
// ]]>
|
42
|
+
</script>
|
43
|
+
|
44
|
+
</head>
|
45
|
+
<body>
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
<div id="fileHeader">
|
50
|
+
<h1>CHANGELOG</h1>
|
51
|
+
<table class="header-table">
|
52
|
+
<tr class="top-aligned-row">
|
53
|
+
<td><strong>Path:</strong></td>
|
54
|
+
<td>CHANGELOG
|
55
|
+
</td>
|
56
|
+
</tr>
|
57
|
+
<tr class="top-aligned-row">
|
58
|
+
<td><strong>Last Update:</strong></td>
|
59
|
+
<td>Fri May 30 14:51:29 +1000 2008</td>
|
60
|
+
</tr>
|
61
|
+
</table>
|
62
|
+
</div>
|
63
|
+
<!-- banner header -->
|
64
|
+
|
65
|
+
<div id="bodyContent">
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
<div id="contextContent">
|
70
|
+
|
71
|
+
<div id="description">
|
72
|
+
<h2>v0.5.1</h2>
|
73
|
+
<pre>
|
74
|
+
Added CHANGELOG, LICENCE & VERSION
|
75
|
+
Ensured README etc. were included in gem and displayed as default in RDoc
|
76
|
+
Renamed send() to submit() in Transporter
|
77
|
+
Fixed path to default E-xact certificates
|
78
|
+
</pre>
|
79
|
+
<h2>v0.5</h2>
|
80
|
+
<pre>
|
81
|
+
Initial Release
|
82
|
+
</pre>
|
83
|
+
|
84
|
+
</div>
|
85
|
+
|
86
|
+
|
87
|
+
</div>
|
88
|
+
|
89
|
+
|
90
|
+
</div>
|
91
|
+
|
92
|
+
|
93
|
+
<!-- if includes -->
|
94
|
+
|
95
|
+
<div id="section">
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
<!-- if method_list -->
|
105
|
+
|
106
|
+
|
107
|
+
</div>
|
108
|
+
|
109
|
+
|
110
|
+
<div id="validator-badges">
|
111
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
112
|
+
</div>
|
113
|
+
|
114
|
+
</body>
|
115
|
+
</html>
|