jemquarie 1.2.0 → 1.2.2

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 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