finapps_core 5.0.7 → 5.0.13

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/.github/release-drafter.yml +49 -0
  3. data/.github/workflows/main.yaml +37 -0
  4. data/.github/workflows/release-drafter.yml +15 -0
  5. data/.github/workflows/release.yml +54 -0
  6. data/.github/workflows/verify-pr-labeled.yml +14 -0
  7. data/.rubocop.yml +123 -73
  8. data/.ruby-version +1 -1
  9. data/.tmuxinator.yml +20 -0
  10. data/.travis.yml +5 -6
  11. data/finapps_core.gemspec +11 -11
  12. data/lib/finapps_core.rb +1 -0
  13. data/lib/finapps_core/middleware/middleware.rb +6 -3
  14. data/lib/finapps_core/middleware/request/accept_json.rb +2 -1
  15. data/lib/finapps_core/middleware/request/x_tenant_id.rb +20 -0
  16. data/lib/finapps_core/middleware/response/raise_error.rb +36 -7
  17. data/lib/finapps_core/rest/base_client.rb +20 -32
  18. data/lib/finapps_core/rest/configuration.rb +18 -5
  19. data/lib/finapps_core/rest/connection.rb +32 -22
  20. data/lib/finapps_core/rest/defaults.rb +1 -1
  21. data/lib/finapps_core/utils/loggeable.rb +1 -1
  22. data/lib/finapps_core/utils/validatable.rb +1 -1
  23. data/lib/finapps_core/version.rb +1 -1
  24. data/spec/core_extensions/object/is_integer_spec.rb +6 -7
  25. data/spec/middleware/request/accept_json_spec.rb +7 -3
  26. data/spec/middleware/request/no_encoding_basic_authentication_spec.rb +15 -6
  27. data/spec/middleware/request/request_id_spec.rb +4 -4
  28. data/spec/middleware/request/tenant_authentication_spec.rb +21 -14
  29. data/spec/middleware/request/user_agent_spec.rb +8 -3
  30. data/spec/middleware/request/x_consumer_id_spec.rb +4 -4
  31. data/spec/middleware/request/x_tenant_id_spec.rb +16 -0
  32. data/spec/middleware/response/raise_error_spec.rb +47 -15
  33. data/spec/rest/base_client_spec.rb +87 -43
  34. data/spec/rest/configuration_spec.rb +25 -18
  35. data/spec/rest/credentials_spec.rb +4 -4
  36. data/spec/rest/defaults_spec.rb +1 -1
  37. data/spec/rest/resources_spec.rb +10 -20
  38. data/spec/spec_helper.rb +3 -3
  39. data/spec/support/fake_api.rb +1 -1
  40. data/spec/utils/validatable_spec.rb +9 -8
  41. metadata +78 -69
@@ -3,19 +3,19 @@
3
3
  RSpec.describe FinAppsCore::REST::Credentials do
4
4
  describe '#valid?' do
5
5
  context 'when missing identifier' do
6
- it { expect(FinAppsCore::REST::Credentials.new(nil, :token).valid?).to eql(true) }
6
+ it { expect(described_class.new(nil, :token).valid?).to be(true) }
7
7
  end
8
8
 
9
9
  context 'when missing token' do
10
- it { expect(FinAppsCore::REST::Credentials.new(:identifier, nil).valid?).to eql(false) }
10
+ it { expect(described_class.new(:identifier, nil).valid?).to be(false) }
11
11
  end
12
12
 
13
13
  context 'when missing both identifier and token' do
14
- it { expect(FinAppsCore::REST::Credentials.new(nil, nil).valid?).to eql(false) }
14
+ it { expect(described_class.new(nil, nil).valid?).to be(false) }
15
15
  end
16
16
 
17
17
  context 'when having identifier and token' do
18
- it { expect(FinAppsCore::REST::Credentials.new(:identifier, :token).valid?).to eql(true) }
18
+ it { expect(described_class.new(:identifier, :token).valid?).to be(true) }
19
19
  end
20
20
  end
21
21
  end
@@ -12,6 +12,6 @@ RSpec.describe FinAppsCore::REST::Defaults do
12
12
  it('sets DEFAULTS[:host]') { expect(described_class::DEFAULTS[:host]).to eq 'https://api.finclear.io' }
13
13
  it('sets DEFAULTS[:timeout]') { expect(described_class::DEFAULTS[:timeout]).to eq 30 }
14
14
  it('does not set DEFAULTS[:proxy]') { expect(described_class::DEFAULTS[:proxy]).to be_nil }
15
- it('sets DEFAULTS[:log_level]') { expect(described_class::DEFAULTS[:log_level]).to eq Logger::INFO }
15
+ it('sets DEFAULTS[:log_level]') { expect(described_class::DEFAULTS[:log_level]).to eq Logger::UNKNOWN }
16
16
  end
17
17
  end
@@ -1,30 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helpers/client'
4
-
5
3
  RSpec.describe FinAppsCore::REST::Resources do
6
- include SpecHelpers::Client
7
- subject { FinAppsCore::REST::Resources.new client }
8
-
9
4
  describe '#new' do
10
- context 'for a valid client param' do
11
- it { expect { subject }.not_to raise_error }
5
+ context 'with a valid client param' do
6
+ subject(:resources) { described_class.new :client }
7
+
8
+ it { expect { resources }.not_to raise_error }
12
9
  end
13
10
 
14
11
  context 'when missing client param' do
15
- subject { FinAppsCore::REST::Resources.new nil }
16
- it { expect { subject }.to raise_error(FinAppsCore::MissingArgumentsError) }
17
- end
18
- end
12
+ subject(:resources) { described_class.new nil }
19
13
 
20
- describe '#list' do
21
- end
22
- describe '#create' do
23
- end
24
- describe '#update' do
25
- end
26
- describe '#show' do
27
- end
28
- describe '#destroy' do
14
+ it {
15
+ expect { resources }
16
+ .to raise_error(FinAppsCore::MissingArgumentsError)
17
+ }
18
+ end
29
19
  end
30
20
  end
@@ -29,12 +29,12 @@ RSpec.configure do |config|
29
29
  config.warnings = true
30
30
  Kernel.srand config.seed
31
31
 
32
- config.before(:each) do
32
+ config.before do
33
33
  base_url = "#{FinAppsCore::REST::Defaults::DEFAULTS[:host]}/v#{FinAppsCore::REST::Defaults::API_VERSION}/"
34
34
  stub_request(:any, /#{base_url}/).to_rack(::FakeApi)
35
35
  end
36
36
  WebMock.disable_net_connect!(allow: 'codeclimate.com')
37
37
  end
38
38
 
39
- VALID_CREDENTIALS = { identifier: '49fb918d-7e71-44dd-7378-58f19606df2a',
40
- token: 'hohoho=' }.freeze
39
+ VALID_CREDENTIALS = {identifier: '49fb918d-7e71-44dd-7378-58f19606df2a',
40
+ token: 'hohoho='}.freeze
@@ -34,7 +34,7 @@ class FakeApi < Sinatra::Base
34
34
  def json_response(response_code, file_name)
35
35
  content_type :json
36
36
  status response_code
37
- File.open(File.dirname(__FILE__) + '/fixtures/' + file_name, 'rb').read
37
+ File.open("#{File.dirname(__FILE__)}/fixtures/#{file_name}", 'rb').read
38
38
  end
39
39
 
40
40
  def version; end
@@ -6,19 +6,20 @@ end
6
6
 
7
7
  RSpec.describe FinAppsCore::Utils::Validatable do
8
8
  describe '#not_blank' do
9
- context 'for null values' do
10
- it 'should raise FinAppsCore::MissingArgumentsError' do
11
- expect { FakeClass.new.not_blank(nil) }.to raise_error(FinAppsCore::MissingArgumentsError)
9
+ context 'with null values' do
10
+ it 'raises FinAppsCore::MissingArgumentsError' do
11
+ expect { FakeClass.new.not_blank(nil) }
12
+ .to raise_error(FinAppsCore::MissingArgumentsError)
12
13
  end
13
14
 
14
- it 'should describe the argument name when provided' do
15
- expect { FakeClass.new.not_blank(nil, :name) }.to raise_error(FinAppsCore::MissingArgumentsError,
16
- ': name')
15
+ it 'describes the argument name when provided' do
16
+ expect { FakeClass.new.not_blank(nil, :name) }
17
+ .to raise_error(FinAppsCore::MissingArgumentsError, ': name')
17
18
  end
18
19
  end
19
20
 
20
- context 'for non null values' do
21
- it 'should not raise' do
21
+ context 'with non null values' do
22
+ it 'does not raise' do
22
23
  expect { FakeClass.new.not_blank(true) }.not_to raise_error
23
24
  end
24
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: finapps_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.7
4
+ version: 5.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erich Quintero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-11 00:00:00.000000000 Z
11
+ date: 2021-01-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -16,40 +16,40 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.15'
19
+ version: '1.0'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.15.3
22
+ version: 1.0.1
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '0.15'
29
+ version: '1.0'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.15.3
32
+ version: 1.0.1
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: faraday_middleware
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0.12'
39
+ version: '1.0'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 0.12.2
42
+ version: '1.0'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '0.12'
49
+ version: '1.0'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 0.12.2
52
+ version: '1.0'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: bundler
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -91,125 +91,125 @@ dependencies:
91
91
  - !ruby/object:Gem::Version
92
92
  version: 1.0.9
93
93
  - !ruby/object:Gem::Dependency
94
- name: gem-release
94
+ name: rake
95
95
  requirement: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: '2.0'
99
+ version: '13.0'
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 2.0.3
102
+ version: 13.0.1
103
103
  type: :development
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '2.0'
109
+ version: '13.0'
110
110
  - - ">="
111
111
  - !ruby/object:Gem::Version
112
- version: 2.0.3
112
+ version: 13.0.1
113
113
  - !ruby/object:Gem::Dependency
114
- name: rake
114
+ name: rspec
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
117
  - - "~>"
118
118
  - !ruby/object:Gem::Version
119
- version: '12.3'
119
+ version: '3.10'
120
120
  - - ">="
121
121
  - !ruby/object:Gem::Version
122
- version: 12.3.2
122
+ version: 3.10.0
123
123
  type: :development
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
126
126
  requirements:
127
127
  - - "~>"
128
128
  - !ruby/object:Gem::Version
129
- version: '12.3'
129
+ version: '3.10'
130
130
  - - ">="
131
131
  - !ruby/object:Gem::Version
132
- version: 12.3.2
132
+ version: 3.10.0
133
133
  - !ruby/object:Gem::Dependency
134
- name: rspec
134
+ name: rubocop
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- version: 3.8.0
140
137
  - - "~>"
141
138
  - !ruby/object:Gem::Version
142
- version: '3.8'
139
+ version: '1.8'
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 1.8.1
143
143
  type: :development
144
144
  prerelease: false
145
145
  version_requirements: !ruby/object:Gem::Requirement
146
146
  requirements:
147
- - - ">="
148
- - !ruby/object:Gem::Version
149
- version: 3.8.0
150
147
  - - "~>"
151
148
  - !ruby/object:Gem::Version
152
- version: '3.8'
149
+ version: '1.8'
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 1.8.1
153
153
  - !ruby/object:Gem::Dependency
154
- name: rubocop
154
+ name: rubocop-performance
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- version: 0.75.0
160
157
  - - "~>"
161
158
  - !ruby/object:Gem::Version
162
- version: '0.75'
159
+ version: '1.9'
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 1.9.2
163
163
  type: :development
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
166
166
  requirements:
167
- - - ">="
168
- - !ruby/object:Gem::Version
169
- version: 0.75.0
170
167
  - - "~>"
171
168
  - !ruby/object:Gem::Version
172
- version: '0.75'
169
+ version: '1.9'
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 1.9.2
173
173
  - !ruby/object:Gem::Dependency
174
- name: rubocop-performance
174
+ name: rubocop-rake
175
175
  requirement: !ruby/object:Gem::Requirement
176
176
  requirements:
177
- - - ">="
178
- - !ruby/object:Gem::Version
179
- version: 1.5.0
180
177
  - - "~>"
181
178
  - !ruby/object:Gem::Version
182
- version: '1.5'
179
+ version: '0.5'
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 0.5.1
183
183
  type: :development
184
184
  prerelease: false
185
185
  version_requirements: !ruby/object:Gem::Requirement
186
186
  requirements:
187
- - - ">="
188
- - !ruby/object:Gem::Version
189
- version: 1.5.0
190
187
  - - "~>"
191
188
  - !ruby/object:Gem::Version
192
- version: '1.5'
189
+ version: '0.5'
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 0.5.1
193
193
  - !ruby/object:Gem::Dependency
194
194
  name: rubocop-rspec
195
195
  requirement: !ruby/object:Gem::Requirement
196
196
  requirements:
197
- - - ">="
198
- - !ruby/object:Gem::Version
199
- version: 1.36.0
200
197
  - - "~>"
201
198
  - !ruby/object:Gem::Version
202
- version: '1.36'
199
+ version: '2.1'
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 2.1.0
203
203
  type: :development
204
204
  prerelease: false
205
205
  version_requirements: !ruby/object:Gem::Requirement
206
206
  requirements:
207
- - - ">="
208
- - !ruby/object:Gem::Version
209
- version: 1.36.0
210
207
  - - "~>"
211
208
  - !ruby/object:Gem::Version
212
- version: '1.36'
209
+ version: '2.1'
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: 2.1.0
213
213
  - !ruby/object:Gem::Dependency
214
214
  name: sinatra
215
215
  requirement: !ruby/object:Gem::Requirement
@@ -234,22 +234,22 @@ dependencies:
234
234
  name: webmock
235
235
  requirement: !ruby/object:Gem::Requirement
236
236
  requirements:
237
- - - ">="
238
- - !ruby/object:Gem::Version
239
- version: 3.6.0
240
237
  - - "~>"
241
238
  - !ruby/object:Gem::Version
242
239
  version: '3.6'
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: 3.6.0
243
243
  type: :development
244
244
  prerelease: false
245
245
  version_requirements: !ruby/object:Gem::Requirement
246
246
  requirements:
247
- - - ">="
248
- - !ruby/object:Gem::Version
249
- version: 3.6.0
250
247
  - - "~>"
251
248
  - !ruby/object:Gem::Version
252
249
  version: '3.6'
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ version: 3.6.0
253
253
  description: A simple library for communicating with the FinApps REST API. Core functionality.
254
254
  email:
255
255
  - erich@financialapps.com
@@ -260,6 +260,11 @@ extra_rdoc_files:
260
260
  - LICENSE
261
261
  files:
262
262
  - ".codeclimate.yml"
263
+ - ".github/release-drafter.yml"
264
+ - ".github/workflows/main.yaml"
265
+ - ".github/workflows/release-drafter.yml"
266
+ - ".github/workflows/release.yml"
267
+ - ".github/workflows/verify-pr-labeled.yml"
263
268
  - ".gitignore"
264
269
  - ".gitlab-ci.yml"
265
270
  - ".hound.yml"
@@ -267,6 +272,7 @@ files:
267
272
  - ".rubocop.yml"
268
273
  - ".ruby-gemset"
269
274
  - ".ruby-version"
275
+ - ".tmuxinator.yml"
270
276
  - ".travis.yml"
271
277
  - Gemfile
272
278
  - LICENSE
@@ -285,6 +291,7 @@ files:
285
291
  - lib/finapps_core/middleware/request/tenant_authentication.rb
286
292
  - lib/finapps_core/middleware/request/user_agent.rb
287
293
  - lib/finapps_core/middleware/request/x_consumer_id.rb
294
+ - lib/finapps_core/middleware/request/x_tenant_id.rb
288
295
  - lib/finapps_core/middleware/response/raise_error.rb
289
296
  - lib/finapps_core/rest/base_client.rb
290
297
  - lib/finapps_core/rest/configuration.rb
@@ -303,6 +310,7 @@ files:
303
310
  - spec/middleware/request/tenant_authentication_spec.rb
304
311
  - spec/middleware/request/user_agent_spec.rb
305
312
  - spec/middleware/request/x_consumer_id_spec.rb
313
+ - spec/middleware/request/x_tenant_id_spec.rb
306
314
  - spec/middleware/response/raise_error_spec.rb
307
315
  - spec/rest/base_client_spec.rb
308
316
  - spec/rest/configuration_spec.rb
@@ -344,25 +352,26 @@ required_rubygems_version: !ruby/object:Gem::Requirement
344
352
  - !ruby/object:Gem::Version
345
353
  version: '0'
346
354
  requirements: []
347
- rubygems_version: 3.0.6
355
+ rubygems_version: 3.1.4
348
356
  signing_key:
349
357
  specification_version: 4
350
358
  summary: FinApps REST API ruby client - Core.
351
359
  test_files:
360
+ - spec/rest/resources_spec.rb
352
361
  - spec/rest/defaults_spec.rb
353
- - spec/rest/base_client_spec.rb
354
362
  - spec/rest/credentials_spec.rb
363
+ - spec/rest/base_client_spec.rb
355
364
  - spec/rest/configuration_spec.rb
356
- - spec/rest/resources_spec.rb
357
365
  - spec/support/fake_api.rb
366
+ - spec/spec_helper.rb
358
367
  - spec/utils/validatable_spec.rb
359
368
  - spec/spec_helpers/client.rb
360
- - spec/spec_helper.rb
361
- - spec/core_extensions/object/is_integer_spec.rb
362
- - spec/middleware/request/no_encoding_basic_authentication_spec.rb
369
+ - spec/middleware/request/request_id_spec.rb
370
+ - spec/middleware/request/x_consumer_id_spec.rb
363
371
  - spec/middleware/request/user_agent_spec.rb
364
372
  - spec/middleware/request/tenant_authentication_spec.rb
365
- - spec/middleware/request/x_consumer_id_spec.rb
373
+ - spec/middleware/request/x_tenant_id_spec.rb
374
+ - spec/middleware/request/no_encoding_basic_authentication_spec.rb
366
375
  - spec/middleware/request/accept_json_spec.rb
367
- - spec/middleware/request/request_id_spec.rb
368
376
  - spec/middleware/response/raise_error_spec.rb
377
+ - spec/core_extensions/object/is_integer_spec.rb