jemquarie 1.2.0 → 1.2.2

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: 7a2746b8aec042d1fef65285aea4ecc836adc01b
4
- data.tar.gz: 8fee3681f1b83ee9b1ff05c941cd10054e3baa10
3
+ metadata.gz: 2483dc8664dc67791d1212dcc5cecb059e08d670
4
+ data.tar.gz: c31b6b5832813df0bb32a748e1dbcec1a06938b7
5
5
  SHA512:
6
- metadata.gz: d99a395882946ed6e34752cdbc7ba176625d39edf2631f5c6fc69271e07177b3d94b57b7c5a1da59c878f00308717e8edd66fc00022bad5263985101b7378c25
7
- data.tar.gz: 96c7dd6a274aad261c037a198541c356d854a04be926c36451a90a4d64e89ba311e7bfbe6710776fcda1d2341e646585aea246ab0f337412a66ecae0092ec39a
6
+ metadata.gz: d8c6edbf4d4274773f17e4aaf4eea5aac09fcbe8419698f89d424db338bf03f5604c16573426ec63e26ce223e56dbf166d0902538e659bcca070dc25efa9dbe6
7
+ data.tar.gz: 4808404adef840d4cfecdcedbdd9b390b0acb11a0d3e037f2e22c0a6395430a63bfdcee9820ec6f7c28443230ba1209da2104a789adc04b0a32daf447a005b07
data/.travis.yml CHANGED
@@ -1,10 +1,11 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
- - 1.9.3
5
4
  - 2.0.0
6
5
  - 2.1.0
7
6
  - 2.1.1
7
+ - 2.2.3
8
+ - 2.3.0
8
9
  - jruby-19mode # JRuby in 1.9 mode
9
10
  - rbx-2.2.1
10
11
 
data/jemquarie.gemspec CHANGED
@@ -18,11 +18,11 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "savon", '~> 2.0'
22
- spec.add_runtime_dependency "activesupport", '>= 3.0'
21
+ spec.add_dependency "savon", '~> 2.11'
22
+ spec.add_runtime_dependency "activesupport", '~> 3.0'
23
23
 
24
- spec.add_development_dependency "bundler", '>= 1.3'
25
- spec.add_development_dependency "rake", '>= 10.3.0'
26
- spec.add_development_dependency "fakeweb", '>= 1.3.0'
27
- spec.add_development_dependency "rspec", '~> 2'
24
+ spec.add_development_dependency "bundler", '~> 1.11'
25
+ spec.add_development_dependency "rake", '~> 11.2'
26
+ spec.add_development_dependency "fakeweb", '~> 1.3'
27
+ spec.add_development_dependency "rspec", '~> 3.4'
28
28
  end
@@ -5,8 +5,14 @@ module Jemquarie
5
5
  include Parser::CashTransactions
6
6
 
7
7
  def cash_transactions(date_from = (Date.today - 1.day), date_to = Date.today, account_number = '', include_closed = 'Y')
8
- if account_number.blank? && ((date_to - date_from).days > 2.days) # if no account specified, ESI api doesn't allow to ask more than 2 days of transactions
9
- return {:error => "Cannot request more than 2 days of transactions if not account is specified"}
8
+ if account_number.blank?
9
+ if (date_to && date_from)
10
+ if (date_to - date_from).days > 2.days # With no account_number you can only get 2 days
11
+ return {:error => "Cannot request more than 2 days of transactions if not account is specified"}
12
+ end
13
+ else # With no account_number you need dates
14
+ return {:error => "Missing from and to dates"}
15
+ end
10
16
  end
11
17
  response = @client.call(:generate_xml_extract, :message => create_message(date_from, date_to, account_number, include_closed))
12
18
  return parse_cash_transactions_response(response) if response.success?
@@ -26,8 +32,8 @@ private
26
32
  :strings => [
27
33
  {
28
34
  :item0 => account_number, # Account Number
29
- :item1 => date_from.strftime("%Y-%m-%dT%H:%M:%S"), # START DATE
30
- :item2 => date_to.strftime("%Y-%m-%dT%H:%M:%S"), # TO DATE
35
+ :item1 => date_from ? date_from.strftime("%Y-%m-%dT%H:%M:%S") : '', # START DATE
36
+ :item2 => date_to ? date_to.strftime("%Y-%m-%dT%H:%M:%S") : '', # TO DATE
31
37
  :item3 => include_closed # Include closed accounts flag
32
38
  }
33
39
  ]
@@ -2,7 +2,7 @@ module Jemquarie
2
2
  module Parser
3
3
  module AccountDetails
4
4
 
5
- def parse_account_details(response)
5
+ def parse_account_details(response)
6
6
  result = generic_request_response(response)
7
7
  return result if result[:error]
8
8
  details = []
@@ -23,6 +23,7 @@ private
23
23
  def parse_single_transaction(transaction)
24
24
  {
25
25
  :foreign_identifier => transaction["TransactionId"],
26
+ :account_number => transaction["AccountNumber"],
26
27
  :date_time => Time.parse(transaction["TransactionDate"] + " UTC"),
27
28
  :amount => transaction["DebitCredit"] == 'C' ? transaction["Amount"] : ('-' + transaction["Amount"]),
28
29
  :type_name => translate_transaction_type(transaction["TransactionType"]),
@@ -1,3 +1,3 @@
1
1
  module Jemquarie
2
- VERSION = "1.2.0"
2
+ VERSION = "1.2.2"
3
3
  end
@@ -18,7 +18,7 @@ describe Jemquarie::AccountDetails do
18
18
  @result = importer.details(Date.parse("01/01/2000"), Date.today)
19
19
  end
20
20
  it "should work" do
21
- expect(@result).to have(182).items
21
+ expect(@result.size).to eq(182)
22
22
  first_res = @result.first
23
23
  expect(first_res[:account_number]).to eq("118115765")
24
24
  expect(first_res[:account_name]).to eq("JAMES ANDREW LOCKETT")
@@ -19,7 +19,7 @@ describe Jemquarie::Balance do
19
19
  @result = importer.balance
20
20
  end
21
21
  it "should work" do
22
- expect(@result).to have(106).items
22
+ expect(@result.size).to eq(106)
23
23
  first_result = @result.first
24
24
  expect(first_result[:account_number]).to eq("118498062")
25
25
  expect(first_result[:ledger_balance]).to eq("0.0000")
@@ -19,10 +19,11 @@ describe Jemquarie::Importer do
19
19
  end
20
20
  it "should work" do
21
21
  expect(@result).to be_kind_of Array
22
- expect(@result).to have(186).items
22
+ expect(@result.size).to eq(186)
23
23
 
24
24
  first_item = @result.first
25
25
  expect(first_item[:foreign_identifier]).to eq("0132058314")
26
+ expect(first_item[:account_number]).to eq("121741987")
26
27
  expect(first_item[:date_time]).to eq(Time.parse("2008-12-19 00:00:00 UTC"))
27
28
  expect(first_item[:amount]).to eq("-2.4100")
28
29
  expect(first_item[:type_name]).to eq("B-PAY WITHDRAWAL")
@@ -32,6 +33,7 @@ describe Jemquarie::Importer do
32
33
 
33
34
  last_item = @result.last
34
35
  expect(last_item[:foreign_identifier]).to eq("0342606112")
36
+ expect(last_item[:account_number]).to eq("121741987")
35
37
  expect(last_item[:date_time]).to eq(Time.parse("2014-04-30 00:00:00 UTC"))
36
38
  expect(last_item[:amount]).to eq("0.0600")
37
39
  expect(last_item[:type_name]).to eq("INTEREST PAID")
@@ -42,6 +44,7 @@ describe Jemquarie::Importer do
42
44
 
43
45
  reverse_item = @result.detect{ |row| row[:reverse] == true }
44
46
  expect(reverse_item[:foreign_identifier]).to eq(first_item[:foreign_identifier])
47
+ expect(reverse_item[:account_number]).to eq("121741987")
45
48
  expect(reverse_item[:date_time]).to eq(Time.parse("2008-12-23 00:00:00 UTC"))
46
49
  expect(reverse_item[:amount]).to eq(first_item[:amount])
47
50
  expect(reverse_item[:type_name]).to eq(first_item[:type_name])
@@ -65,7 +68,7 @@ describe Jemquarie::Importer do
65
68
  end
66
69
  it "should work" do
67
70
  expect(@result).to be_kind_of Array
68
- expect(@result).to have(1).items
71
+ expect(@result.size).to eq(1)
69
72
  end
70
73
  end
71
74
 
@@ -149,4 +152,27 @@ describe Jemquarie::Importer do
149
152
  end
150
153
  end
151
154
 
155
+ describe "with no date parameters" do
156
+ let(:importer) do
157
+ Jemquarie::Importer.new('valid_code', 'valid_password')
158
+ end
159
+ before(:each) do
160
+ FakeWeb.register_uri(:post, Jemquarie::Jemquarie::BASE_URI,
161
+ body: File.read('spec/files/transactions/transactions.xml'),
162
+ content_type: 'text/xml'
163
+ )
164
+ end
165
+ it "should return error when trying to get transactions with no date and no account" do
166
+ @result = importer.cash_transactions(nil, nil, nil)
167
+ expect(@result).to be_kind_of Hash
168
+ expect(@result[:error]).to eq("Missing from and to dates")
169
+ end
170
+
171
+ it "should accept parameters with account number but no date parameters without error" do
172
+ @result = importer.cash_transactions(nil, nil, '12345')
173
+ expect(@result).to be_kind_of Array
174
+ expect(FakeWeb.last_request.body.include?("<tns:item1></tns:item1>")).to be true
175
+ end
176
+ end
177
+
152
178
  end
data/spec/spec_helper.rb CHANGED
@@ -8,7 +8,6 @@ require 'fakeweb'
8
8
  #
9
9
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
10
10
  RSpec.configure do |config|
11
- config.treat_symbols_as_metadata_keys_with_true_values = true
12
11
  config.run_all_when_everything_filtered = true
13
12
  config.filter_run :focus
14
13
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jemquarie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claudio Contin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-04 00:00:00.000000000 Z
11
+ date: 2016-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: savon
@@ -16,84 +16,84 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.0'
19
+ version: '2.11'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.0'
26
+ version: '2.11'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activesupport
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '3.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.3'
47
+ version: '1.11'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.3'
54
+ version: '1.11'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 10.3.0
61
+ version: '11.2'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 10.3.0
68
+ version: '11.2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: fakeweb
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.3.0
75
+ version: '1.3'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.3.0
82
+ version: '1.3'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '2'
89
+ version: '3.4'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '2'
96
+ version: '3.4'
97
97
  description: Connect to Macquarie ESI web services
98
98
  email:
99
99
  - contin@gmail.com
@@ -131,7 +131,7 @@ files:
131
131
  - spec/files/transactions/transactions.xml
132
132
  - spec/files/transactions/wrong_account_number.xml
133
133
  - spec/files/transactions/wrong_authentication.xml
134
- - spec/lib/accont_details_spec.rb
134
+ - spec/lib/account_details_spec.rb
135
135
  - spec/lib/balance_spec.rb
136
136
  - spec/lib/expiry_spec.rb
137
137
  - spec/lib/importer_spec.rb
@@ -157,7 +157,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
157
  version: '0'
158
158
  requirements: []
159
159
  rubyforge_project:
160
- rubygems_version: 2.4.6
160
+ rubygems_version: 2.4.8
161
161
  signing_key:
162
162
  specification_version: 4
163
163
  summary: Ruby Gem for extracting cash transactions from Macquarie ESI web service
@@ -172,7 +172,7 @@ test_files:
172
172
  - spec/files/transactions/transactions.xml
173
173
  - spec/files/transactions/wrong_account_number.xml
174
174
  - spec/files/transactions/wrong_authentication.xml
175
- - spec/lib/accont_details_spec.rb
175
+ - spec/lib/account_details_spec.rb
176
176
  - spec/lib/balance_spec.rb
177
177
  - spec/lib/expiry_spec.rb
178
178
  - spec/lib/importer_spec.rb