finapps_core 2.0.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.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/.codeclimate.yml +21 -0
  3. data/.gitignore +53 -0
  4. data/.hound.yml +2 -0
  5. data/.rspec +4 -0
  6. data/.rubocop.yml +271 -0
  7. data/.ruby-gemset +1 -0
  8. data/.ruby-version +1 -0
  9. data/.travis.yml +14 -0
  10. data/Gemfile +3 -0
  11. data/Gemfile.lock +98 -0
  12. data/LICENSE +21 -0
  13. data/README.md +21 -0
  14. data/Rakefile +2 -0
  15. data/finapps_core.gemspec +39 -0
  16. data/lib/core_extensions/object/blank.rb +69 -0
  17. data/lib/core_extensions/object/is_integer.rb +10 -0
  18. data/lib/core_extensions/string/json_to_hash.rb +10 -0
  19. data/lib/finapps_core.rb +30 -0
  20. data/lib/finapps_core/error.rb +17 -0
  21. data/lib/finapps_core/middleware/middleware.rb +22 -0
  22. data/lib/finapps_core/middleware/request/accept_json.rb +14 -0
  23. data/lib/finapps_core/middleware/request/no_encoding_basic_authentication.rb +21 -0
  24. data/lib/finapps_core/middleware/request/tenant_authentication.rb +20 -0
  25. data/lib/finapps_core/middleware/request/user_agent.rb +15 -0
  26. data/lib/finapps_core/middleware/response/custom_logger.rb +39 -0
  27. data/lib/finapps_core/middleware/response/raise_error.rb +46 -0
  28. data/lib/finapps_core/rest/base_client.rb +118 -0
  29. data/lib/finapps_core/rest/configuration.rb +32 -0
  30. data/lib/finapps_core/rest/connection.rb +35 -0
  31. data/lib/finapps_core/rest/credentials.rb +21 -0
  32. data/lib/finapps_core/rest/defaults.rb +19 -0
  33. data/lib/finapps_core/rest/resources.rb +62 -0
  34. data/lib/finapps_core/utils/loggeable.rb +14 -0
  35. data/lib/finapps_core/utils/parameter_filter.rb +32 -0
  36. data/lib/finapps_core/version.rb +4 -0
  37. data/lib/tasks/releaser.rake +9 -0
  38. data/spec/core_extensions/object/blank_spec.rb +44 -0
  39. data/spec/core_extensions/object/is_integer_spec.rb +17 -0
  40. data/spec/middleware/request/accept_json_spec.rb +12 -0
  41. data/spec/middleware/request/no_encoding_basic_authentication_spec.rb +32 -0
  42. data/spec/middleware/request/tenant_authentication_spec.rb +34 -0
  43. data/spec/middleware/request/user_agent_spec.rb +12 -0
  44. data/spec/middleware/response/raise_error_spec.rb +24 -0
  45. data/spec/rest/base_client_spec.rb +110 -0
  46. data/spec/rest/configuration_spec.rb +43 -0
  47. data/spec/rest/credentials_spec.rb +20 -0
  48. data/spec/rest/relevance_ruleset_names.json +47 -0
  49. data/spec/rest/timeout_spec.rb +7 -0
  50. data/spec/spec_helper.rb +37 -0
  51. data/spec/spec_helpers/client.rb +8 -0
  52. data/spec/support/fake_api.rb +34 -0
  53. data/spec/support/fixtures/error.json +5 -0
  54. data/spec/support/fixtures/relevance_ruleset_names.json +47 -0
  55. data/spec/support/fixtures/resource.json +3 -0
  56. data/spec/support/fixtures/resource_not_found.json +5 -0
  57. data/spec/support/fixtures/resources.json +11 -0
  58. data/spec/support/fixtures/unauthorized.json +5 -0
  59. data/spec/utils/parameter_filter_spec.rb +23 -0
  60. metadata +353 -0
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+ require 'finapps_core/error'
3
+
4
+ RSpec.describe FinAppsCore::REST::Configuration do
5
+ describe '#new' do
6
+ context 'for invalid timeout configuration' do
7
+ subject { FinAppsCore::REST::Configuration.new(timeout: 'whatever') }
8
+ expected_error = FinAppsCore::InvalidArgumentsError
9
+ it { expect { subject }.to raise_error(expected_error, 'Invalid argument. {timeout: whatever}') }
10
+ end
11
+
12
+ context 'for missing timeout configuration' do
13
+ subject { FinAppsCore::REST::Configuration.new(timeout: nil) }
14
+ it 'should have a default timeout value' do
15
+ expect(subject.timeout).to eq(FinAppsCore::REST::Defaults::DEFAULTS[:timeout])
16
+ end
17
+ end
18
+
19
+ context 'for invalid host configuration' do
20
+ subject { FinAppsCore::REST::Configuration.new(host: 'whatever') }
21
+ expected_error = FinAppsCore::InvalidArgumentsError
22
+ it { expect { subject }.to raise_error(expected_error, 'Invalid argument. {host: whatever}') }
23
+ end
24
+
25
+ context 'for missing host configuration' do
26
+ subject { FinAppsCore::REST::Configuration.new(host: nil) }
27
+ it 'should have a default host value' do
28
+ expect(subject.host).to eq(FinAppsCore::REST::Defaults::DEFAULTS[:host])
29
+ end
30
+ end
31
+ end
32
+
33
+ describe '#valid_user_credentials??' do
34
+ context 'when user credentials were not set' do
35
+ subject { FinAppsCore::REST::Configuration.new(host: nil) }
36
+ it { expect(subject.valid_user_credentials?).to eq(false) }
37
+ end
38
+ context 'when user credentials were set' do
39
+ subject { FinAppsCore::REST::Configuration.new(user_identifier: 1, user_token: 2) }
40
+ it { expect(subject.valid_user_credentials?).to eq(true) }
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ RSpec.describe FinAppsCore::REST::Credentials do
3
+ describe '#valid?' do
4
+ context 'when missing identifier' do
5
+ it { expect(FinAppsCore::REST::Credentials.new(nil, :token).valid?).to eql(false) }
6
+ end
7
+
8
+ context 'when missing token' do
9
+ it { expect(FinAppsCore::REST::Credentials.new(:identifier, nil).valid?).to eql(false) }
10
+ end
11
+
12
+ context 'when missing both identifier and token' do
13
+ it { expect(FinAppsCore::REST::Credentials.new(nil, nil).valid?).to eql(false) }
14
+ end
15
+
16
+ context 'when having identifier and token' do
17
+ it { expect(FinAppsCore::REST::Credentials.new(:identifier, :token).valid?).to eql(true) }
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,47 @@
1
+ [
2
+ "accounts_overview",
3
+ "alert_cash_withdrawal",
4
+ "alert_deposits",
5
+ "alert_low_avg_balance",
6
+ "alert_low_cash_flow",
7
+ "alert_merchant_breach",
8
+ "budet_wip03",
9
+ "budget",
10
+ "budget_wip",
11
+ "budget_wip02",
12
+ "budget_wip03",
13
+ "budget_wip04",
14
+ "budget_wip05",
15
+ "budget_wip06",
16
+ "budget_wip07",
17
+ "budget_wip08",
18
+ "bug_test",
19
+ "cashflow",
20
+ "cashflow_02",
21
+ "cashflow_detail",
22
+ "cashflow_old",
23
+ "demo",
24
+ "formfree_structure",
25
+ "fraud",
26
+ "fraud_alert_cash_withdrawal",
27
+ "fraud_alert_double_charge",
28
+ "hello_dom_breakpoint",
29
+ "hello_jira",
30
+ "hello_temp",
31
+ "iav_avg_dep_velocity",
32
+ "iav_avg_dly_bal",
33
+ "iav_avg_income",
34
+ "iav_avg_spend",
35
+ "iav_balance_summary",
36
+ "iav_cash_flow",
37
+ "iav_eod_balance",
38
+ "iav_low_bal_trends",
39
+ "iav_nsf",
40
+ "iav_payroll",
41
+ "iav_report_summary",
42
+ "iav_risk_score",
43
+ "inventory_testing",
44
+ "loopWIP",
45
+ "mysql",
46
+ "simple_rule_data"
47
+ ]
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+ RSpec.describe FinAppsCore::REST::Resources do
3
+ describe 'timeout' do
4
+ subject { FinAppsCore::REST::Resources.new(FinAppsCore::REST::BaseClient.new({})).show(:timeout) }
5
+ it { expect { subject }.to raise_error(FinAppsCore::ApiSessionTimeoutError) }
6
+ end
7
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+ if ENV['CODECLIMATE_REPO_TOKEN']
3
+ require 'codeclimate-test-reporter'
4
+ CodeClimate::TestReporter.start
5
+ end
6
+
7
+ require 'bundler/setup'
8
+ Bundler.setup
9
+
10
+ require 'finapps_core'
11
+ require 'webmock/rspec'
12
+
13
+ # noinspection RubyResolve
14
+ require File.join(File.dirname(__dir__), 'spec/support/fake_api')
15
+
16
+ RSpec.configure do |config|
17
+ config.expect_with(:rspec) do |expectations|
18
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
19
+ expectations.syntax = :expect
20
+ end
21
+ config.mock_with(:rspec) {|mocks| mocks.verify_partial_doubles = true }
22
+ # config.filter_run_including :focus => true
23
+ config.default_formatter = 'doc' if config.files_to_run.one?
24
+ config.order = :random
25
+ config.example_status_persistence_file_path = 'spec/examples.txt'
26
+ config.warnings = true
27
+ Kernel.srand config.seed
28
+
29
+ config.before(:each) do
30
+ base_url = "#{FinAppsCore::REST::Defaults::DEFAULTS[:host]}/v#{FinAppsCore::REST::Defaults::API_VERSION}/"
31
+ stub_request(:any, /#{base_url}/).to_rack(::FakeApi)
32
+ end
33
+ WebMock.disable_net_connect!(allow: 'codeclimate.com')
34
+ end
35
+
36
+ VALID_CREDENTIALS = {identifier: '49fb918d-7e71-44dd-7378-58f19606df2a',
37
+ token: 'hohoho='}.freeze
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+ module SpecHelpers
3
+ module Client
4
+ def client
5
+ FinAppsCore::REST::Client.new :tenant_id, :tenant_token
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+ require 'sinatra/base'
3
+
4
+ # the FakeApi class is used to mock API requests while testing.
5
+ class FakeApi < Sinatra::Base
6
+ # timeout
7
+ get('/v2/resources/timeout') { status 419 }
8
+
9
+ # resource
10
+ post('/v2/resources') { json_response 201, 'resource.json' }
11
+ get('/v2/resources/:id') { json_response 200, 'resource.json' }
12
+ get('/v2/resources') { json_response 200, 'resources.json' }
13
+ put('/v2/resources') { json_response 201, 'resource.json' }
14
+ delete('/v2/resources/:id') { status 202 }
15
+
16
+ # version
17
+ get('/v2/version') { 'Version => 2.1.29-.20161208.172810' }
18
+
19
+ # errors
20
+ get('/v2/client_error') { json_response 400, 'error.json' }
21
+ get('/v2/server_error') { status 500 }
22
+ get('/v2/proxy_error') { status 407 }
23
+
24
+ # relevance
25
+ get('/v2/relevance/ruleset/names') { json_response 200, 'relevance_ruleset_names.json' }
26
+
27
+ private
28
+
29
+ def json_response(response_code, file_name)
30
+ content_type :json
31
+ status response_code
32
+ File.open(File.dirname(__FILE__) + '/fixtures/' + file_name, 'rb').read
33
+ end
34
+ end
@@ -0,0 +1,5 @@
1
+ {
2
+ "messages": [
3
+ "Password Minimum size is 8"
4
+ ]
5
+ }
@@ -0,0 +1,47 @@
1
+ [
2
+ "accounts_overview",
3
+ "alert_cash_withdrawal",
4
+ "alert_deposits",
5
+ "alert_low_avg_balance",
6
+ "alert_low_cash_flow",
7
+ "alert_merchant_breach",
8
+ "budet_wip03",
9
+ "budget",
10
+ "budget_wip",
11
+ "budget_wip02",
12
+ "budget_wip03",
13
+ "budget_wip04",
14
+ "budget_wip05",
15
+ "budget_wip06",
16
+ "budget_wip07",
17
+ "budget_wip08",
18
+ "bug_test",
19
+ "cashflow",
20
+ "cashflow_02",
21
+ "cashflow_detail",
22
+ "cashflow_old",
23
+ "demo",
24
+ "formfree_structure",
25
+ "fraud",
26
+ "fraud_alert_cash_withdrawal",
27
+ "fraud_alert_double_charge",
28
+ "hello_dom_breakpoint",
29
+ "hello_jira",
30
+ "hello_temp",
31
+ "iav_avg_dep_velocity",
32
+ "iav_avg_dly_bal",
33
+ "iav_avg_income",
34
+ "iav_avg_spend",
35
+ "iav_balance_summary",
36
+ "iav_cash_flow",
37
+ "iav_eod_balance",
38
+ "iav_low_bal_trends",
39
+ "iav_nsf",
40
+ "iav_payroll",
41
+ "iav_report_summary",
42
+ "iav_risk_score",
43
+ "inventory_testing",
44
+ "loopWIP",
45
+ "mysql",
46
+ "simple_rule_data"
47
+ ]
@@ -0,0 +1,3 @@
1
+ {
2
+ "public_id":"83e6c55a-9883-40bb-45f9-fc70d70731c9"
3
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "messages": [
3
+ "Resource not found"
4
+ ]
5
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "total": 2,
3
+ "resources": [
4
+ {
5
+ "public_id": "83e6c55a-9883-40bb-45f9-fc70d70731c9"
6
+ },
7
+ {
8
+ "public_id": "83e6c55a-9883-40bb-45f9-fc70d70731c9"
9
+ }
10
+ ]
11
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "messages": [
3
+ "Invalid User Identifier or Credentials"
4
+ ]
5
+ }
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+ class FakeClass
3
+ include ::FinAppsCore::Utils::ParameterFilter
4
+ end
5
+
6
+ RSpec.describe FinAppsCore::Utils::ParameterFilter do
7
+ describe '#skip_sensitive_data' do
8
+ context 'when provided with sensitive data' do
9
+ let(:unfiltered_params) do
10
+ {password: 'FinApps@123', password_confirm: 'FinApps@123', token: '123456',
11
+ login: 'sammysosa', username: 'johnny', name: 'george'}
12
+ end
13
+ let(:filtered_params) do
14
+ {password: '[REDACTED]', password_confirm: '[REDACTED]', token: '[REDACTED]',
15
+ login: '[REDACTED]', username: '[REDACTED]', name: 'george'}
16
+ end
17
+
18
+ it 'filters out sensitive values' do
19
+ expect(FakeClass.new.skip_sensitive_data(unfiltered_params)).to eq(filtered_params)
20
+ end
21
+ end
22
+ end
23
+ end
metadata ADDED
@@ -0,0 +1,353 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: finapps_core
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Erich Quintero
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-02-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.9'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.9.2
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '0.9'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 0.9.2
33
+ - !ruby/object:Gem::Dependency
34
+ name: faraday_middleware
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.10'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.10.0
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.10'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.10.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: typhoeus
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '1.0'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 1.0.2
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.0'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.0.2
73
+ - !ruby/object:Gem::Dependency
74
+ name: rash
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '0.4'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 0.4.0
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.4'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 0.4.0
93
+ - !ruby/object:Gem::Dependency
94
+ name: bundler
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - "~>"
98
+ - !ruby/object:Gem::Version
99
+ version: '1.11'
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: 1.11.2
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.11'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 1.11.2
113
+ - !ruby/object:Gem::Dependency
114
+ name: rake
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '11.2'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 11.2.2
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '11.2'
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: 11.2.2
133
+ - !ruby/object:Gem::Dependency
134
+ name: rspec
135
+ requirement: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '3.4'
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: 3.4.0
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: '3.4'
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: 3.4.0
153
+ - !ruby/object:Gem::Dependency
154
+ name: webmock
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '2.1'
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: 2.1.0
163
+ type: :development
164
+ prerelease: false
165
+ version_requirements: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '2.1'
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 2.1.0
173
+ - !ruby/object:Gem::Dependency
174
+ name: sinatra
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '1.4'
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 1.4.7
183
+ type: :development
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: '1.4'
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 1.4.7
193
+ - !ruby/object:Gem::Dependency
194
+ name: simplecov
195
+ requirement: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: '0.11'
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 0.11.2
203
+ type: :development
204
+ prerelease: false
205
+ version_requirements: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '0.11'
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: 0.11.2
213
+ - !ruby/object:Gem::Dependency
214
+ name: codeclimate-test-reporter
215
+ requirement: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - "~>"
218
+ - !ruby/object:Gem::Version
219
+ version: 0.6.0
220
+ type: :development
221
+ prerelease: false
222
+ version_requirements: !ruby/object:Gem::Requirement
223
+ requirements:
224
+ - - "~>"
225
+ - !ruby/object:Gem::Version
226
+ version: 0.6.0
227
+ - !ruby/object:Gem::Dependency
228
+ name: rubocop
229
+ requirement: !ruby/object:Gem::Requirement
230
+ requirements:
231
+ - - '='
232
+ - !ruby/object:Gem::Version
233
+ version: 0.45.0
234
+ type: :development
235
+ prerelease: false
236
+ version_requirements: !ruby/object:Gem::Requirement
237
+ requirements:
238
+ - - '='
239
+ - !ruby/object:Gem::Version
240
+ version: 0.45.0
241
+ description: A simple library for communicating with the FinApps REST API. Core functionality.
242
+ email:
243
+ - erich@financialapps.com
244
+ executables: []
245
+ extensions: []
246
+ extra_rdoc_files:
247
+ - README.md
248
+ - LICENSE
249
+ files:
250
+ - ".codeclimate.yml"
251
+ - ".gitignore"
252
+ - ".hound.yml"
253
+ - ".rspec"
254
+ - ".rubocop.yml"
255
+ - ".ruby-gemset"
256
+ - ".ruby-version"
257
+ - ".travis.yml"
258
+ - Gemfile
259
+ - Gemfile.lock
260
+ - LICENSE
261
+ - README.md
262
+ - Rakefile
263
+ - finapps_core.gemspec
264
+ - lib/core_extensions/object/blank.rb
265
+ - lib/core_extensions/object/is_integer.rb
266
+ - lib/core_extensions/string/json_to_hash.rb
267
+ - lib/finapps_core.rb
268
+ - lib/finapps_core/error.rb
269
+ - lib/finapps_core/middleware/middleware.rb
270
+ - lib/finapps_core/middleware/request/accept_json.rb
271
+ - lib/finapps_core/middleware/request/no_encoding_basic_authentication.rb
272
+ - lib/finapps_core/middleware/request/tenant_authentication.rb
273
+ - lib/finapps_core/middleware/request/user_agent.rb
274
+ - lib/finapps_core/middleware/response/custom_logger.rb
275
+ - lib/finapps_core/middleware/response/raise_error.rb
276
+ - lib/finapps_core/rest/base_client.rb
277
+ - lib/finapps_core/rest/configuration.rb
278
+ - lib/finapps_core/rest/connection.rb
279
+ - lib/finapps_core/rest/credentials.rb
280
+ - lib/finapps_core/rest/defaults.rb
281
+ - lib/finapps_core/rest/resources.rb
282
+ - lib/finapps_core/utils/loggeable.rb
283
+ - lib/finapps_core/utils/parameter_filter.rb
284
+ - lib/finapps_core/version.rb
285
+ - lib/tasks/releaser.rake
286
+ - spec/core_extensions/object/blank_spec.rb
287
+ - spec/core_extensions/object/is_integer_spec.rb
288
+ - spec/middleware/request/accept_json_spec.rb
289
+ - spec/middleware/request/no_encoding_basic_authentication_spec.rb
290
+ - spec/middleware/request/tenant_authentication_spec.rb
291
+ - spec/middleware/request/user_agent_spec.rb
292
+ - spec/middleware/response/raise_error_spec.rb
293
+ - spec/rest/base_client_spec.rb
294
+ - spec/rest/configuration_spec.rb
295
+ - spec/rest/credentials_spec.rb
296
+ - spec/rest/relevance_ruleset_names.json
297
+ - spec/rest/timeout_spec.rb
298
+ - spec/spec_helper.rb
299
+ - spec/spec_helpers/client.rb
300
+ - spec/support/fake_api.rb
301
+ - spec/support/fixtures/error.json
302
+ - spec/support/fixtures/relevance_ruleset_names.json
303
+ - spec/support/fixtures/resource.json
304
+ - spec/support/fixtures/resource_not_found.json
305
+ - spec/support/fixtures/resources.json
306
+ - spec/support/fixtures/unauthorized.json
307
+ - spec/utils/parameter_filter_spec.rb
308
+ homepage: https://github.com/finapps/ruby-client-core
309
+ licenses:
310
+ - MIT
311
+ metadata: {}
312
+ post_install_message:
313
+ rdoc_options:
314
+ - "--line-numbers"
315
+ - "--inline-source"
316
+ - "--title"
317
+ - finapps-ruby-core
318
+ - "--main"
319
+ - README.md
320
+ require_paths:
321
+ - lib
322
+ required_ruby_version: !ruby/object:Gem::Requirement
323
+ requirements:
324
+ - - ">="
325
+ - !ruby/object:Gem::Version
326
+ version: '0'
327
+ required_rubygems_version: !ruby/object:Gem::Requirement
328
+ requirements:
329
+ - - ">="
330
+ - !ruby/object:Gem::Version
331
+ version: '0'
332
+ requirements: []
333
+ rubyforge_project:
334
+ rubygems_version: 2.6.10
335
+ signing_key:
336
+ specification_version: 4
337
+ summary: FinApps REST API ruby client - Core.
338
+ test_files:
339
+ - spec/rest/base_client_spec.rb
340
+ - spec/rest/credentials_spec.rb
341
+ - spec/rest/configuration_spec.rb
342
+ - spec/rest/timeout_spec.rb
343
+ - spec/support/fake_api.rb
344
+ - spec/utils/parameter_filter_spec.rb
345
+ - spec/spec_helpers/client.rb
346
+ - spec/spec_helper.rb
347
+ - spec/core_extensions/object/is_integer_spec.rb
348
+ - spec/core_extensions/object/blank_spec.rb
349
+ - spec/middleware/request/no_encoding_basic_authentication_spec.rb
350
+ - spec/middleware/request/user_agent_spec.rb
351
+ - spec/middleware/request/tenant_authentication_spec.rb
352
+ - spec/middleware/request/accept_json_spec.rb
353
+ - spec/middleware/response/raise_error_spec.rb