finapps_core 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
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