currency_cloud 0.5

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.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +12 -0
  6. data/Gemfile +7 -0
  7. data/Gemfile.lock +99 -0
  8. data/Guardfile +14 -0
  9. data/LICENSE.md +22 -0
  10. data/README.md +10 -0
  11. data/Rakefile +30 -0
  12. data/currency_cloud.gemspec +27 -0
  13. data/examples/server.rb +15 -0
  14. data/lib/currency_cloud.rb +26 -0
  15. data/lib/currency_cloud/actions/create.rb +9 -0
  16. data/lib/currency_cloud/actions/current.rb +9 -0
  17. data/lib/currency_cloud/actions/delete.rb +15 -0
  18. data/lib/currency_cloud/actions/find.rb +27 -0
  19. data/lib/currency_cloud/actions/retrieve.rb +9 -0
  20. data/lib/currency_cloud/actions/update.rb +12 -0
  21. data/lib/currency_cloud/errors/api_error.rb +38 -0
  22. data/lib/currency_cloud/errors/config_error.rb +5 -0
  23. data/lib/currency_cloud/errors/unexpected_error.rb +10 -0
  24. data/lib/currency_cloud/pagination.rb +7 -0
  25. data/lib/currency_cloud/request_handler.rb +68 -0
  26. data/lib/currency_cloud/resource.rb +73 -0
  27. data/lib/currency_cloud/resourceful_collection.rb +15 -0
  28. data/lib/currency_cloud/resources/account.rb +6 -0
  29. data/lib/currency_cloud/resources/balance.rb +8 -0
  30. data/lib/currency_cloud/resources/beneficiary.rb +14 -0
  31. data/lib/currency_cloud/resources/contact.rb +6 -0
  32. data/lib/currency_cloud/resources/conversion.rb +10 -0
  33. data/lib/currency_cloud/resources/payer.rb +6 -0
  34. data/lib/currency_cloud/resources/payment.rb +11 -0
  35. data/lib/currency_cloud/resources/rate.rb +21 -0
  36. data/lib/currency_cloud/resources/reference.rb +29 -0
  37. data/lib/currency_cloud/resources/settlement.rb +30 -0
  38. data/lib/currency_cloud/resources/transaction.rb +7 -0
  39. data/lib/currency_cloud/response_handler.rb +46 -0
  40. data/lib/currency_cloud/session.rb +62 -0
  41. data/lib/currency_cloud/version.rb +8 -0
  42. data/spec/currency_cloud_spec.rb +78 -0
  43. data/spec/integration/actions_spec.rb +101 -0
  44. data/spec/integration/authentication_spec.rb +37 -0
  45. data/spec/integration/errors_spec.rb +157 -0
  46. data/spec/integration/rates_spec.rb +39 -0
  47. data/spec/integration/reference_spec.rb +57 -0
  48. data/spec/spec_helper.rb +11 -0
  49. data/spec/support/vcr_cassettes/Actions/can_create.yml +38 -0
  50. data/spec/support/vcr_cassettes/Actions/can_current.yml +37 -0
  51. data/spec/support/vcr_cassettes/Actions/can_delete.yml +39 -0
  52. data/spec/support/vcr_cassettes/Actions/can_find.yml +38 -0
  53. data/spec/support/vcr_cassettes/Actions/can_first.yml +75 -0
  54. data/spec/support/vcr_cassettes/Actions/can_retrieve.yml +38 -0
  55. data/spec/support/vcr_cassettes/Actions/can_update.yml +39 -0
  56. data/spec/support/vcr_cassettes/Authentication/can_be_closed.yml +67 -0
  57. data/spec/support/vcr_cassettes/Authentication/can_use_just_a_token.yml +36 -0
  58. data/spec/support/vcr_cassettes/Authentication/handles_session_timeout_error.yml +101 -0
  59. data/spec/support/vcr_cassettes/Authentication/happens_lazily.yml +34 -0
  60. data/spec/support/vcr_cassettes/Error/is_raised_on_a_bad_request.yml +39 -0
  61. data/spec/support/vcr_cassettes/Error/is_raised_on_a_forbidden_request.yml +35 -0
  62. data/spec/support/vcr_cassettes/Error/is_raised_on_an_internal_server_error.yml +69 -0
  63. data/spec/support/vcr_cassettes/Error/is_raised_on_incorrect_authentication_details.yml +39 -0
  64. data/spec/support/vcr_cassettes/Error/is_raised_when_a_resource_is_not_found.yml +37 -0
  65. data/spec/support/vcr_cassettes/Error/is_raised_when_too_many_requests_have_been_issued.yml +34 -0
  66. data/spec/support/vcr_cassettes/Rates/can_find.yml +36 -0
  67. data/spec/support/vcr_cassettes/Rates/can_provided_detailed_rate.yml +36 -0
  68. data/spec/support/vcr_cassettes/Reference/can_retrieve_beneficiary_required_details.yml +36 -0
  69. data/spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml +46 -0
  70. data/spec/support/vcr_cassettes/Reference/can_retrieve_currencies.yml +47 -0
  71. data/spec/support/vcr_cassettes/Reference/can_retrieve_settlement_accounts.yml +39 -0
  72. metadata +230 -0
@@ -0,0 +1,47 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://devapi.thecurrencycloud.com/v2/reference/currencies
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ X-Auth-Token:
11
+ - 1c9da5726314246acfb09ec5651307a5
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - nginx
19
+ Date:
20
+ - Wed, 29 Apr 2015 21:04:08 GMT
21
+ Content-Type:
22
+ - application/json;charset=utf-8
23
+ Content-Length:
24
+ - '1363'
25
+ Connection:
26
+ - keep-alive
27
+ X-Request-Id:
28
+ - '2775201683481262929'
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ body:
32
+ encoding: UTF-8
33
+ string: '{"currencies":[{"code":"AED","decimal_places":2,"name":"United Arab
34
+ Emirates Dirham"},{"code":"AUD","decimal_places":2,"name":"Australian Dollar"},{"code":"CAD","decimal_places":2,"name":"Canadian
35
+ Dollar"},{"code":"CHF","decimal_places":2,"name":"Swiss Franc"},{"code":"CZK","decimal_places":2,"name":"Czech
36
+ Koruna"},{"code":"DKK","decimal_places":2,"name":"Danish Krone"},{"code":"EUR","decimal_places":2,"name":"Euro"},{"code":"GBP","decimal_places":2,"name":"Pound
37
+ Sterling"},{"code":"HKD","decimal_places":2,"name":"Hong Kong Dollar"},{"code":"HUF","decimal_places":2,"name":"Hungarian
38
+ Forint"},{"code":"ILS","decimal_places":2,"name":"Israeli New Sheqel"},{"code":"JPY","decimal_places":0,"name":"Japanese
39
+ Yen"},{"code":"MXN","decimal_places":2,"name":"Mexican Peso"},{"code":"NOK","decimal_places":2,"name":"Norwegian
40
+ Krone"},{"code":"NZD","decimal_places":2,"name":"New Zealand Dollar"},{"code":"PLN","decimal_places":2,"name":"Polish
41
+ Zloty"},{"code":"RON","decimal_places":2,"name":"Romanian New Leu"},{"code":"SEK","decimal_places":2,"name":"Swedish
42
+ Krona"},{"code":"SGD","decimal_places":2,"name":"Singapore Dollar"},{"code":"THB","decimal_places":2,"name":"Thai
43
+ Baht"},{"code":"TRY","decimal_places":2,"name":"Turkish Lira"},{"code":"USD","decimal_places":2,"name":"United
44
+ States Dollar"},{"code":"ZAR","decimal_places":2,"name":"South African Rand"}]}'
45
+ http_version:
46
+ recorded_at: Wed, 29 Apr 2015 21:04:08 GMT
47
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,39 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://devapi.thecurrencycloud.com/v2/reference/settlement_accounts
6
+ body:
7
+ encoding: UTF-8
8
+ string: currency=GBP
9
+ headers:
10
+ X-Auth-Token:
11
+ - 1c9da5726314246acfb09ec5651307a5
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - nginx
19
+ Date:
20
+ - Wed, 29 Apr 2015 21:04:10 GMT
21
+ Content-Type:
22
+ - application/json;charset=utf-8
23
+ Content-Length:
24
+ - '438'
25
+ Connection:
26
+ - keep-alive
27
+ X-Request-Id:
28
+ - '2775201697959995218'
29
+ X-Content-Type-Options:
30
+ - nosniff
31
+ body:
32
+ encoding: UTF-8
33
+ string: '{"settlement_accounts":[{"bank_account_holder_name":"The Currency Cloud
34
+ GBP - Client Seg A/C","beneficiary_address":"","beneficiary_country":"","bank_name":"Barclays
35
+ Bank plc","bank_address":[],"bank_country":"","currency":"GBP","bic_swift":"BARCGB22","iban":"GB06
36
+ BARC 2006 0513 0714 72","account_number":"13071472","routing_code_type_1":"sort_code","routing_code_value_1":"200605","routing_code_type_2":"","routing_code_value_2":""}]}'
37
+ http_version:
38
+ recorded_at: Wed, 29 Apr 2015 21:04:10 GMT
39
+ recorded_with: VCR 2.9.3
metadata ADDED
@@ -0,0 +1,230 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: currency_cloud
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.5'
5
+ platform: ruby
6
+ authors:
7
+ - Liam McAndrew
8
+ - Richard Nienaber
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-04-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: httparty
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '0.13'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '0.13'
28
+ - !ruby/object:Gem::Dependency
29
+ name: json
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '1.8'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.8'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rspec
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '3.1'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '3.1'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '10.3'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '10.3'
70
+ - !ruby/object:Gem::Dependency
71
+ name: webmock
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '1.21'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '1.21'
84
+ - !ruby/object:Gem::Dependency
85
+ name: vcr
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '2.9'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '2.9'
98
+ description: Ruby SDK for the Currency Cloud API - https://connect.currencycloud.com/
99
+ email:
100
+ - liam.mcandrew@currencycloud.com
101
+ - richard.nienaber@currencycloud.com
102
+ executables: []
103
+ extensions: []
104
+ extra_rdoc_files: []
105
+ files:
106
+ - ".gitignore"
107
+ - ".ruby-gemset"
108
+ - ".ruby-version"
109
+ - ".travis.yml"
110
+ - Gemfile
111
+ - Gemfile.lock
112
+ - Guardfile
113
+ - LICENSE.md
114
+ - README.md
115
+ - Rakefile
116
+ - currency_cloud.gemspec
117
+ - examples/server.rb
118
+ - lib/currency_cloud.rb
119
+ - lib/currency_cloud/actions/create.rb
120
+ - lib/currency_cloud/actions/current.rb
121
+ - lib/currency_cloud/actions/delete.rb
122
+ - lib/currency_cloud/actions/find.rb
123
+ - lib/currency_cloud/actions/retrieve.rb
124
+ - lib/currency_cloud/actions/update.rb
125
+ - lib/currency_cloud/errors/api_error.rb
126
+ - lib/currency_cloud/errors/config_error.rb
127
+ - lib/currency_cloud/errors/unexpected_error.rb
128
+ - lib/currency_cloud/pagination.rb
129
+ - lib/currency_cloud/request_handler.rb
130
+ - lib/currency_cloud/resource.rb
131
+ - lib/currency_cloud/resourceful_collection.rb
132
+ - lib/currency_cloud/resources/account.rb
133
+ - lib/currency_cloud/resources/balance.rb
134
+ - lib/currency_cloud/resources/beneficiary.rb
135
+ - lib/currency_cloud/resources/contact.rb
136
+ - lib/currency_cloud/resources/conversion.rb
137
+ - lib/currency_cloud/resources/payer.rb
138
+ - lib/currency_cloud/resources/payment.rb
139
+ - lib/currency_cloud/resources/rate.rb
140
+ - lib/currency_cloud/resources/reference.rb
141
+ - lib/currency_cloud/resources/settlement.rb
142
+ - lib/currency_cloud/resources/transaction.rb
143
+ - lib/currency_cloud/response_handler.rb
144
+ - lib/currency_cloud/session.rb
145
+ - lib/currency_cloud/version.rb
146
+ - spec/currency_cloud_spec.rb
147
+ - spec/integration/actions_spec.rb
148
+ - spec/integration/authentication_spec.rb
149
+ - spec/integration/errors_spec.rb
150
+ - spec/integration/rates_spec.rb
151
+ - spec/integration/reference_spec.rb
152
+ - spec/spec_helper.rb
153
+ - spec/support/vcr_cassettes/Actions/can_create.yml
154
+ - spec/support/vcr_cassettes/Actions/can_current.yml
155
+ - spec/support/vcr_cassettes/Actions/can_delete.yml
156
+ - spec/support/vcr_cassettes/Actions/can_find.yml
157
+ - spec/support/vcr_cassettes/Actions/can_first.yml
158
+ - spec/support/vcr_cassettes/Actions/can_retrieve.yml
159
+ - spec/support/vcr_cassettes/Actions/can_update.yml
160
+ - spec/support/vcr_cassettes/Authentication/can_be_closed.yml
161
+ - spec/support/vcr_cassettes/Authentication/can_use_just_a_token.yml
162
+ - spec/support/vcr_cassettes/Authentication/handles_session_timeout_error.yml
163
+ - spec/support/vcr_cassettes/Authentication/happens_lazily.yml
164
+ - spec/support/vcr_cassettes/Error/is_raised_on_a_bad_request.yml
165
+ - spec/support/vcr_cassettes/Error/is_raised_on_a_forbidden_request.yml
166
+ - spec/support/vcr_cassettes/Error/is_raised_on_an_internal_server_error.yml
167
+ - spec/support/vcr_cassettes/Error/is_raised_on_incorrect_authentication_details.yml
168
+ - spec/support/vcr_cassettes/Error/is_raised_when_a_resource_is_not_found.yml
169
+ - spec/support/vcr_cassettes/Error/is_raised_when_too_many_requests_have_been_issued.yml
170
+ - spec/support/vcr_cassettes/Rates/can_find.yml
171
+ - spec/support/vcr_cassettes/Rates/can_provided_detailed_rate.yml
172
+ - spec/support/vcr_cassettes/Reference/can_retrieve_beneficiary_required_details.yml
173
+ - spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml
174
+ - spec/support/vcr_cassettes/Reference/can_retrieve_currencies.yml
175
+ - spec/support/vcr_cassettes/Reference/can_retrieve_settlement_accounts.yml
176
+ homepage: https://connect.currencycloud.com/documentation/getting-started/introduction
177
+ licenses:
178
+ - MIT
179
+ metadata: {}
180
+ post_install_message:
181
+ rdoc_options: []
182
+ require_paths:
183
+ - lib
184
+ required_ruby_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ required_rubygems_version: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ requirements: []
195
+ rubyforge_project:
196
+ rubygems_version: 2.4.5
197
+ signing_key:
198
+ specification_version: 4
199
+ summary: Ruby SDK for the Currency Cloud API
200
+ test_files:
201
+ - spec/currency_cloud_spec.rb
202
+ - spec/integration/actions_spec.rb
203
+ - spec/integration/authentication_spec.rb
204
+ - spec/integration/errors_spec.rb
205
+ - spec/integration/rates_spec.rb
206
+ - spec/integration/reference_spec.rb
207
+ - spec/spec_helper.rb
208
+ - spec/support/vcr_cassettes/Actions/can_create.yml
209
+ - spec/support/vcr_cassettes/Actions/can_current.yml
210
+ - spec/support/vcr_cassettes/Actions/can_delete.yml
211
+ - spec/support/vcr_cassettes/Actions/can_find.yml
212
+ - spec/support/vcr_cassettes/Actions/can_first.yml
213
+ - spec/support/vcr_cassettes/Actions/can_retrieve.yml
214
+ - spec/support/vcr_cassettes/Actions/can_update.yml
215
+ - spec/support/vcr_cassettes/Authentication/can_be_closed.yml
216
+ - spec/support/vcr_cassettes/Authentication/can_use_just_a_token.yml
217
+ - spec/support/vcr_cassettes/Authentication/handles_session_timeout_error.yml
218
+ - spec/support/vcr_cassettes/Authentication/happens_lazily.yml
219
+ - spec/support/vcr_cassettes/Error/is_raised_on_a_bad_request.yml
220
+ - spec/support/vcr_cassettes/Error/is_raised_on_a_forbidden_request.yml
221
+ - spec/support/vcr_cassettes/Error/is_raised_on_an_internal_server_error.yml
222
+ - spec/support/vcr_cassettes/Error/is_raised_on_incorrect_authentication_details.yml
223
+ - spec/support/vcr_cassettes/Error/is_raised_when_a_resource_is_not_found.yml
224
+ - spec/support/vcr_cassettes/Error/is_raised_when_too_many_requests_have_been_issued.yml
225
+ - spec/support/vcr_cassettes/Rates/can_find.yml
226
+ - spec/support/vcr_cassettes/Rates/can_provided_detailed_rate.yml
227
+ - spec/support/vcr_cassettes/Reference/can_retrieve_beneficiary_required_details.yml
228
+ - spec/support/vcr_cassettes/Reference/can_retrieve_conversion_dates.yml
229
+ - spec/support/vcr_cassettes/Reference/can_retrieve_currencies.yml
230
+ - spec/support/vcr_cassettes/Reference/can_retrieve_settlement_accounts.yml