forest_liana 7.3.0 → 7.4.0
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 +4 -4
- data/app/controllers/forest_liana/actions_controller.rb +3 -0
- data/app/controllers/forest_liana/associations_controller.rb +4 -0
- data/app/controllers/forest_liana/base_controller.rb +1 -0
- data/app/controllers/forest_liana/resources_controller.rb +8 -0
- data/app/controllers/forest_liana/router.rb +1 -0
- data/app/controllers/forest_liana/scopes_controller.rb +1 -0
- data/app/controllers/forest_liana/smart_actions_controller.rb +4 -0
- data/app/controllers/forest_liana/stats_controller.rb +2 -0
- data/app/services/forest_liana/intercom_attributes_getter.rb +1 -0
- data/app/services/forest_liana/intercom_conversation_getter.rb +1 -0
- data/app/services/forest_liana/intercom_conversations_getter.rb +1 -0
- data/app/services/forest_liana/ip_whitelist.rb +1 -0
- data/app/services/forest_liana/permissions_getter.rb +1 -0
- data/app/services/forest_liana/resources_getter.rb +1 -0
- data/app/services/forest_liana/schema_adapter.rb +1 -0
- data/app/services/forest_liana/search_query_builder.rb +1 -0
- data/app/services/forest_liana/stripe_invoices_getter.rb +1 -0
- data/app/services/forest_liana/stripe_payments_getter.rb +1 -0
- data/app/services/forest_liana/stripe_sources_getter.rb +1 -0
- data/app/services/forest_liana/stripe_subscriptions_getter.rb +1 -0
- data/config/initializers/logger.rb +8 -1
- data/lib/forest_liana/bootstrapper.rb +3 -1
- data/lib/forest_liana/collection.rb +1 -0
- data/lib/forest_liana/engine.rb +3 -0
- data/lib/forest_liana/schema_file_updater.rb +1 -0
- data/lib/forest_liana/version.rb +1 -1
- data/lib/forest_liana.rb +2 -0
- data/spec/config/initializers/logger_spec.rb +37 -0
- metadata +135 -135
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adc1d7ec157183e6001f0c62980ae41cac6812a06e4fb8d1d5189609e478c2c6
|
4
|
+
data.tar.gz: 21ccd896ff434a672683d6d384aa70e80b531c95189294551c3466a5ead3a5b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce716a35923e78b2d00f066aa717e2a4fcd62506fe9073d370cbf30af90b1474a26cf940cd0a2aed1cf959b6c93cfe9314268e4a9ed048042ec3f04b9a227826
|
7
|
+
data.tar.gz: 5bb96fed2cc7218d162d4f0ac9df00b6270efa909deaab5ed84289cebe41606b36230423844584b9d65efd7b19588f06f42f90798d6515a05c0a2e2c2755011d
|
@@ -5,6 +5,7 @@ module ForestLiana
|
|
5
5
|
begin
|
6
6
|
params[:data][:attributes]
|
7
7
|
rescue => error
|
8
|
+
FOREST_REPORTER.report error
|
8
9
|
FOREST_LOGGER.error "Smart Action hook request error: #{error}"
|
9
10
|
{}
|
10
11
|
end
|
@@ -19,6 +20,7 @@ module ForestLiana
|
|
19
20
|
begin
|
20
21
|
collection.actions.find {|action| ActiveSupport::Inflector.parameterize(action.name) == params[:action_name]}
|
21
22
|
rescue => error
|
23
|
+
FOREST_REPORTER.report error
|
22
24
|
FOREST_LOGGER.error "Smart Action get action retrieval error: #{error}"
|
23
25
|
nil
|
24
26
|
end
|
@@ -57,6 +59,7 @@ module ForestLiana
|
|
57
59
|
rescue ForestLiana::Errors::SmartActionInvalidFieldError => invalid_field_error
|
58
60
|
FOREST_LOGGER.warn invalid_field_error.message
|
59
61
|
rescue ForestLiana::Errors::SmartActionInvalidFieldHookError => invalid_hook_error
|
62
|
+
FOREST_REPORTER.report invalid_hook_error
|
60
63
|
FOREST_LOGGER.error invalid_hook_error.message
|
61
64
|
return render status: 500, json: { error: invalid_hook_error.message }
|
62
65
|
end
|
@@ -18,6 +18,7 @@ module ForestLiana
|
|
18
18
|
format.csv { render_csv(getter, @association.klass) }
|
19
19
|
end
|
20
20
|
rescue => error
|
21
|
+
FOREST_REPORTER.report error
|
21
22
|
FOREST_LOGGER.error "Association Index error: #{error}\n#{format_stacktrace(error)}"
|
22
23
|
internal_server_error
|
23
24
|
end
|
@@ -30,6 +31,7 @@ module ForestLiana
|
|
30
31
|
|
31
32
|
render serializer: nil, json: { count: getter.records_count }
|
32
33
|
rescue => error
|
34
|
+
FOREST_REPORTER.report error
|
33
35
|
FOREST_LOGGER.error "Association Index Count error: #{error}\n#{format_stacktrace(error)}"
|
34
36
|
internal_server_error
|
35
37
|
end
|
@@ -47,6 +49,7 @@ module ForestLiana
|
|
47
49
|
head :no_content
|
48
50
|
end
|
49
51
|
rescue => error
|
52
|
+
FOREST_REPORTER.report error
|
50
53
|
FOREST_LOGGER.error "Association Update error: #{error}\n#{format_stacktrace(error)}"
|
51
54
|
internal_server_error
|
52
55
|
end
|
@@ -59,6 +62,7 @@ module ForestLiana
|
|
59
62
|
|
60
63
|
head :no_content
|
61
64
|
rescue => error
|
65
|
+
FOREST_REPORTER.report error
|
62
66
|
FOREST_LOGGER.error "Association Associate error: #{error}\n#{format_stacktrace(error)}"
|
63
67
|
internal_server_error
|
64
68
|
end
|
@@ -30,6 +30,7 @@ module ForestLiana
|
|
30
30
|
}])
|
31
31
|
render(serializer: nil, json: error_data, status: exception.status)
|
32
32
|
rescue => exception
|
33
|
+
FOREST_REPORTER.report exception
|
33
34
|
FOREST_LOGGER.error(exception)
|
34
35
|
FOREST_LOGGER.error(exception.backtrace.join("\n"))
|
35
36
|
render(serializer: nil, json: nil, status: :internal_server_error)
|
@@ -47,6 +47,7 @@ module ForestLiana
|
|
47
47
|
}])
|
48
48
|
render(serializer: nil, json: error_data, status: error.status)
|
49
49
|
rescue => error
|
50
|
+
FOREST_REPORTER.report error
|
50
51
|
FOREST_LOGGER.error "Records Index error: #{error}\n#{format_stacktrace(error)}"
|
51
52
|
internal_server_error
|
52
53
|
end
|
@@ -79,6 +80,7 @@ module ForestLiana
|
|
79
80
|
}])
|
80
81
|
render(serializer: nil, json: error_data, status: error.status)
|
81
82
|
rescue => error
|
83
|
+
FOREST_REPORTER.report error
|
82
84
|
FOREST_LOGGER.error "Records Index Count error: #{error}\n#{format_stacktrace(error)}"
|
83
85
|
internal_server_error
|
84
86
|
end
|
@@ -96,6 +98,7 @@ module ForestLiana
|
|
96
98
|
rescue ActiveRecord::RecordNotFound
|
97
99
|
render serializer: nil, json: { status: 404 }, status: :not_found
|
98
100
|
rescue => error
|
101
|
+
FOREST_REPORTER.report error
|
99
102
|
FOREST_LOGGER.error "Record Show error: #{error}\n#{format_stacktrace(error)}"
|
100
103
|
internal_server_error
|
101
104
|
end
|
@@ -119,6 +122,7 @@ module ForestLiana
|
|
119
122
|
creator.record.errors), status: 400
|
120
123
|
end
|
121
124
|
rescue => error
|
125
|
+
FOREST_REPORTER.report error
|
122
126
|
FOREST_LOGGER.error "Record Create error: #{error}\n#{format_stacktrace(error)}"
|
123
127
|
internal_server_error
|
124
128
|
end
|
@@ -142,6 +146,7 @@ module ForestLiana
|
|
142
146
|
updater.record.errors), status: 400
|
143
147
|
end
|
144
148
|
rescue => error
|
149
|
+
FOREST_REPORTER.report error
|
145
150
|
FOREST_LOGGER.error "Record Update error: #{error}\n#{format_stacktrace(error)}"
|
146
151
|
internal_server_error
|
147
152
|
end
|
@@ -162,6 +167,7 @@ module ForestLiana
|
|
162
167
|
|
163
168
|
head :no_content
|
164
169
|
rescue => error
|
170
|
+
FOREST_REPORTER.report error
|
165
171
|
FOREST_LOGGER.error "Record Destroy error: #{error}\n#{format_stacktrace(error)}"
|
166
172
|
internal_server_error
|
167
173
|
end
|
@@ -175,6 +181,7 @@ module ForestLiana
|
|
175
181
|
|
176
182
|
head :no_content
|
177
183
|
rescue => error
|
184
|
+
FOREST_REPORTER.report error
|
178
185
|
FOREST_LOGGER.error "Records Destroy error: #{error}\n#{format_stacktrace(error)}"
|
179
186
|
internal_server_error
|
180
187
|
end
|
@@ -190,6 +197,7 @@ module ForestLiana
|
|
190
197
|
render serializer: nil, json: { status: 404 }, status: :not_found
|
191
198
|
end
|
192
199
|
rescue => error
|
200
|
+
FOREST_REPORTER.report error
|
193
201
|
FOREST_LOGGER.error "Find Collection error: #{error}\n#{format_stacktrace(error)}"
|
194
202
|
render serializer: nil, json: { status: 404 }, status: :not_found
|
195
203
|
end
|
@@ -39,6 +39,7 @@ class ForestLiana::Router
|
|
39
39
|
|
40
40
|
controller.action(action.to_sym).call(env)
|
41
41
|
rescue NoMethodError => exception
|
42
|
+
FOREST_REPORTER.report exception
|
42
43
|
FOREST_LOGGER.error "Routing error: #{exception}\n#{exception.backtrace.join("\n\t")}"
|
43
44
|
ForestLiana::BaseController.action(:route_not_found).call(env)
|
44
45
|
end
|
@@ -12,6 +12,7 @@ module ForestLiana
|
|
12
12
|
ForestLiana::ScopeManager.invalidate_scope_cache(rendering_id)
|
13
13
|
return render serializer: nil, json: { status: 200 }, status: :ok
|
14
14
|
rescue => error
|
15
|
+
FOREST_REPORTER.report error
|
15
16
|
FOREST_LOGGER.error "Error during scope cache invalidation: #{error.message}"
|
16
17
|
render serializer: nil, json: {status: 500 }, status: :internal_server_error
|
17
18
|
end
|
@@ -12,6 +12,7 @@ module ForestLiana
|
|
12
12
|
begin
|
13
13
|
params[:data][:attributes]
|
14
14
|
rescue => error
|
15
|
+
FOREST_REPORTER.report error
|
15
16
|
FOREST_LOGGER.error "Smart Action execution error: #{error}"
|
16
17
|
{}
|
17
18
|
end
|
@@ -47,6 +48,7 @@ module ForestLiana
|
|
47
48
|
# target records are out of scope
|
48
49
|
render serializer: nil, json: { error: 'Smart Action: target record not found' }, status: :bad_request
|
49
50
|
rescue => error
|
51
|
+
FOREST_REPORTER.report error
|
50
52
|
FOREST_LOGGER.error "Smart Action: #{error}\n#{format_stacktrace(error)}"
|
51
53
|
render serializer: nil, json: { error: 'Smart Action: failed to evaluate permissions' }, status: :internal_server_error
|
52
54
|
end
|
@@ -70,6 +72,7 @@ module ForestLiana
|
|
70
72
|
render serializer: nil, json: { status: 400 }, status: :bad_request
|
71
73
|
end
|
72
74
|
rescue => error
|
75
|
+
FOREST_REPORTER.report error
|
73
76
|
FOREST_LOGGER.error "Smart Action execution error: #{error}"
|
74
77
|
render serializer: nil, json: { status: 400 }, status: :bad_request
|
75
78
|
end
|
@@ -85,6 +88,7 @@ module ForestLiana
|
|
85
88
|
end
|
86
89
|
resource
|
87
90
|
rescue => error
|
91
|
+
FOREST_REPORTER.report error
|
88
92
|
FOREST_LOGGER.error "Find Collection error: #{error}\n#{format_stacktrace(error)}"
|
89
93
|
render serializer: nil, json: { status: 404 }, status: :not_found
|
90
94
|
end
|
@@ -60,6 +60,7 @@ module ForestLiana
|
|
60
60
|
render json: { errors: [{ status: 422, detail: error.message }] },
|
61
61
|
status: :unprocessable_entity, serializer: nil
|
62
62
|
rescue => error
|
63
|
+
FOREST_REPORTER.report error
|
63
64
|
FOREST_LOGGER.error "Live Query error: #{error.message}"
|
64
65
|
render json: { errors: [{ status: 422, detail: error.message }] },
|
65
66
|
status: :unprocessable_entity, serializer: nil
|
@@ -110,6 +111,7 @@ module ForestLiana
|
|
110
111
|
|
111
112
|
return head :forbidden unless checker.is_authorized?
|
112
113
|
rescue => error
|
114
|
+
FOREST_REPORTER.report error
|
113
115
|
FOREST_LOGGER.error "Stats execution error: #{error}"
|
114
116
|
render serializer: nil, json: { status: 400 }, status: :bad_request
|
115
117
|
end
|
@@ -14,6 +14,7 @@ module ForestLiana
|
|
14
14
|
rescue Intercom::ResourceNotFound
|
15
15
|
@record = nil
|
16
16
|
rescue Intercom::UnexpectedError => exception
|
17
|
+
FOREST_REPORTER.report exception
|
17
18
|
FOREST_LOGGER.error "Cannot retrieve the Intercom conversation: #{exception.message}"
|
18
19
|
@record = nil
|
19
20
|
end
|
@@ -31,6 +31,7 @@ module ForestLiana
|
|
31
31
|
rescue Intercom::ResourceNotFound
|
32
32
|
@records = []
|
33
33
|
rescue Intercom::UnexpectedError => exception
|
34
|
+
FOREST_REPORTER.report exception
|
34
35
|
FOREST_LOGGER.error "Cannot retrieve the Intercom conversations: #{exception.message}"
|
35
36
|
@records = []
|
36
37
|
end
|
@@ -21,6 +21,7 @@ module ForestLiana
|
|
21
21
|
false
|
22
22
|
end
|
23
23
|
rescue => exception
|
24
|
+
FOREST_REPORTER.report exception
|
24
25
|
FOREST_LOGGER.error 'Cannot retrieve the IP Whitelist from the Forest server.'
|
25
26
|
FOREST_LOGGER.error 'Which was caused by:'
|
26
27
|
ForestLiana::Errors::ExceptionHelper.recursively_print(exception, margin: ' ', is_error: true)
|
@@ -47,6 +47,7 @@ module ForestLiana
|
|
47
47
|
raise "Forest API returned an #{ForestLiana::Errors::HTTPErrorHelper.format(response)}"
|
48
48
|
end
|
49
49
|
rescue => exception
|
50
|
+
FOREST_REPORTER.report exception
|
50
51
|
FOREST_LOGGER.error 'Cannot retrieve the permissions from the Forest server.'
|
51
52
|
FOREST_LOGGER.error 'Which was caused by:'
|
52
53
|
ForestLiana::Errors::ExceptionHelper.recursively_print(exception, margin: ' ', is_error: true)
|
@@ -261,6 +261,7 @@ module ForestLiana
|
|
261
261
|
FOREST_LOGGER.warn "The association \"#{association.name.to_s}\" " \
|
262
262
|
"does not seem to exist for model \"#{@model.name}\"."
|
263
263
|
rescue => exception
|
264
|
+
FOREST_REPORTER.report exception
|
264
265
|
FOREST_LOGGER.error "An error occured trying to add " \
|
265
266
|
"\"#{association.name.to_s}\" association:\n#{exception}"
|
266
267
|
end
|
@@ -18,12 +18,19 @@ module ForestLiana
|
|
18
18
|
displayed_message = "[#{datetime.to_s(:db)}] Forest 🌳🌳🌳 " \
|
19
19
|
"#{message}\n"
|
20
20
|
"\e[#{logger_colors[severity.to_sym]}m#{displayed_message}\033[0m"
|
21
|
-
|
21
|
+
end
|
22
22
|
logger
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
class Reporter
|
29
|
+
def self.report (error)
|
30
|
+
ForestLiana.reporter.report error if ForestLiana.reporter
|
31
|
+
end
|
32
|
+
end
|
27
33
|
end
|
28
34
|
|
29
35
|
FOREST_LOGGER = ForestLiana::Logger.log
|
36
|
+
FOREST_REPORTER = ForestLiana::Reporter
|
@@ -82,7 +82,8 @@ module ForestLiana
|
|
82
82
|
@collections_sent = content['collections']
|
83
83
|
@meta_sent = content['meta']
|
84
84
|
generate_action_hooks
|
85
|
-
rescue JSON::JSONError
|
85
|
+
rescue JSON::JSONError => error
|
86
|
+
FOREST_REPORTER.report error
|
86
87
|
FOREST_LOGGER.error "The content of .forestadmin-schema.json file is not a correct JSON."
|
87
88
|
FOREST_LOGGER.error "The schema cannot be synchronized with Forest Admin servers."
|
88
89
|
end
|
@@ -122,6 +123,7 @@ module ForestLiana
|
|
122
123
|
end
|
123
124
|
end
|
124
125
|
rescue => exception
|
126
|
+
FOREST_REPORTER.report exception
|
125
127
|
FOREST_LOGGER.error "Cannot fetch properly model #{model.name}:\n" \
|
126
128
|
"#{exception}"
|
127
129
|
end
|
@@ -91,6 +91,7 @@ module ForestLiana::Collection
|
|
91
91
|
begin
|
92
92
|
object.instance_eval(&block)
|
93
93
|
rescue => exception
|
94
|
+
FOREST_REPORTER.report exception
|
94
95
|
FOREST_LOGGER.error "Cannot retrieve the " + name.to_s + " value because of an " \
|
95
96
|
"internal error in the getter implementation: " + exception.message
|
96
97
|
nil
|
data/lib/forest_liana/engine.rb
CHANGED
@@ -37,6 +37,7 @@ module ForestLiana
|
|
37
37
|
end
|
38
38
|
nil
|
39
39
|
rescue => exception
|
40
|
+
FOREST_REPORTER.report exception
|
40
41
|
exception
|
41
42
|
end
|
42
43
|
end
|
@@ -51,6 +52,7 @@ module ForestLiana
|
|
51
52
|
ActiveRecord::Base.connection_pool.with_connection { |connection| connection.active? }
|
52
53
|
rescue => error
|
53
54
|
database_available = false
|
55
|
+
FOREST_REPORTER.report error
|
54
56
|
FOREST_LOGGER.error "No Apimap sent to Forest servers, it seems that the database is not accessible:\n#{error}"
|
55
57
|
end
|
56
58
|
database_available
|
@@ -75,6 +77,7 @@ module ForestLiana
|
|
75
77
|
|
76
78
|
config.after_initialize do |app|
|
77
79
|
if error
|
80
|
+
FOREST_REPORTER.report error
|
78
81
|
FOREST_LOGGER.error "Impossible to set the whitelisted Forest " \
|
79
82
|
"domains for CORS constraint:\n#{error}"
|
80
83
|
end
|
@@ -102,6 +102,7 @@ module ForestLiana
|
|
102
102
|
rescue ForestLiana::Errors::SmartActionInvalidFieldError => invalid_field_error
|
103
103
|
FOREST_LOGGER.warn invalid_field_error.message
|
104
104
|
rescue ForestLiana::Errors::SmartActionInvalidFieldHookError => invalid_hook_error
|
105
|
+
FOREST_REPORTER.report invalid_hook_error
|
105
106
|
FOREST_LOGGER.error invalid_hook_error.message
|
106
107
|
end
|
107
108
|
action['fields'] = action['fields'].map { |field| field.slice(*KEYS_ACTION_FIELD) }
|
data/lib/forest_liana/version.rb
CHANGED
data/lib/forest_liana.rb
CHANGED
@@ -28,6 +28,7 @@ module ForestLiana
|
|
28
28
|
mattr_accessor :names_overriden
|
29
29
|
mattr_accessor :meta
|
30
30
|
mattr_accessor :logger
|
31
|
+
mattr_accessor :reporter
|
31
32
|
# TODO: Remove once lianas prior to 2.0.0 are not supported anymore.
|
32
33
|
mattr_accessor :names_old_overriden
|
33
34
|
|
@@ -40,6 +41,7 @@ module ForestLiana
|
|
40
41
|
self.names_overriden = {}
|
41
42
|
self.meta = {}
|
42
43
|
self.logger = nil
|
44
|
+
self.reporter = nil
|
43
45
|
|
44
46
|
@config_dir = 'lib/forest_liana/**/*.rb'
|
45
47
|
|
@@ -27,4 +27,41 @@ module ForestLiana
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
30
|
+
|
31
|
+
describe Reporter do
|
32
|
+
describe 'self.reporter' do
|
33
|
+
describe 'with a reporter provided' do
|
34
|
+
it 'should report the error' do
|
35
|
+
class SampleReporter
|
36
|
+
def report(error)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
spier = spy('sampleReporter')
|
41
|
+
|
42
|
+
ForestLiana.reporter = spier
|
43
|
+
FOREST_REPORTER.report(Exception.new "sample error")
|
44
|
+
|
45
|
+
expect(spier).to have_received(:report)
|
46
|
+
ForestLiana.reporter = nil
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe 'without any reporter provided' do
|
51
|
+
it 'should not report the error' do
|
52
|
+
class ErrorReporter
|
53
|
+
def report(error)
|
54
|
+
expect(false).to be_truthy
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
spier = spy('errorReporter')
|
59
|
+
|
60
|
+
FOREST_REPORTER.report(Exception.new "sample error")
|
61
|
+
|
62
|
+
expect(spier).not_to have_received(:export)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
30
67
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forest_liana
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sandro Munda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -510,171 +510,171 @@ signing_key:
|
|
510
510
|
specification_version: 4
|
511
511
|
summary: Official Rails Liana for Forest
|
512
512
|
test_files:
|
513
|
-
- test/services/forest_liana/schema_adapter_test.rb
|
514
|
-
- test/services/forest_liana/operator_date_interval_parser_test.rb
|
515
|
-
- test/routing/route_test.rb
|
516
|
-
- test/forest_liana_test.rb
|
517
513
|
- test/test_helper.rb
|
518
|
-
- test/
|
519
|
-
- test/
|
520
|
-
- test/
|
521
|
-
- test/
|
522
|
-
- test/
|
523
|
-
- test/
|
524
|
-
- test/
|
525
|
-
- test/
|
526
|
-
- test/
|
514
|
+
- test/dummy/config.ru
|
515
|
+
- test/dummy/bin/setup
|
516
|
+
- test/dummy/bin/bundle
|
517
|
+
- test/dummy/bin/rake
|
518
|
+
- test/dummy/bin/rails
|
519
|
+
- test/dummy/Rakefile
|
520
|
+
- test/dummy/db/schema.rb
|
521
|
+
- test/dummy/db/migrate/20150612112520_create_has_and_belongs_to_many_field.rb
|
522
|
+
- test/dummy/db/migrate/20150623115554_create_has_many_class_name_field.rb
|
523
|
+
- test/dummy/db/migrate/20150608130516_create_date_field.rb
|
524
|
+
- test/dummy/db/migrate/20150608132621_create_string_field.rb
|
525
|
+
- test/dummy/db/migrate/20160627172810_create_owner.rb
|
526
|
+
- test/dummy/db/migrate/20170614141921_create_serialize_field.rb
|
527
|
+
- test/dummy/db/migrate/20150608131430_create_integer_field.rb
|
528
|
+
- test/dummy/db/migrate/20150608133038_create_belongs_to_field.rb
|
529
|
+
- test/dummy/db/migrate/20150608131610_create_float_field.rb
|
530
|
+
- test/dummy/db/migrate/20160628173505_add_timestamps.rb
|
531
|
+
- test/dummy/db/migrate/20150608150016_create_has_many_field.rb
|
532
|
+
- test/dummy/db/migrate/20150608131603_create_decimal_field.rb
|
533
|
+
- test/dummy/db/migrate/20150616150629_create_polymorphic_field.rb
|
534
|
+
- test/dummy/db/migrate/20150609114636_create_belongs_to_class_name_field.rb
|
535
|
+
- test/dummy/db/migrate/20181111162121_create_references_table.rb
|
536
|
+
- test/dummy/db/migrate/20160627172951_create_tree.rb
|
537
|
+
- test/dummy/db/migrate/20150608133044_create_has_one_field.rb
|
538
|
+
- test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
|
539
|
+
- test/dummy/db/migrate/20150608132159_create_boolean_field.rb
|
540
|
+
- test/dummy/public/422.html
|
527
541
|
- test/dummy/public/favicon.ico
|
528
542
|
- test/dummy/public/500.html
|
529
543
|
- test/dummy/public/404.html
|
530
|
-
- test/dummy/
|
531
|
-
- test/dummy/
|
544
|
+
- test/dummy/README.rdoc
|
545
|
+
- test/dummy/config/secrets.yml
|
546
|
+
- test/dummy/config/environments/test.rb
|
547
|
+
- test/dummy/config/environments/production.rb
|
548
|
+
- test/dummy/config/environments/development.rb
|
549
|
+
- test/dummy/config/boot.rb
|
550
|
+
- test/dummy/config/routes.rb
|
551
|
+
- test/dummy/config/locales/en.yml
|
532
552
|
- test/dummy/config/application.rb
|
533
|
-
- test/dummy/config/environment.rb
|
534
553
|
- test/dummy/config/database.yml
|
535
|
-
- test/dummy/config/
|
536
|
-
- test/dummy/config/boot.rb
|
537
|
-
- test/dummy/config/initializers/mime_types.rb
|
554
|
+
- test/dummy/config/environment.rb
|
538
555
|
- test/dummy/config/initializers/cookies_serializer.rb
|
539
|
-
- test/dummy/config/initializers/
|
540
|
-
- test/dummy/config/initializers/filter_parameter_logging.rb
|
556
|
+
- test/dummy/config/initializers/wrap_parameters.rb
|
541
557
|
- test/dummy/config/initializers/inflections.rb
|
542
|
-
- test/dummy/config/initializers/
|
558
|
+
- test/dummy/config/initializers/session_store.rb
|
543
559
|
- test/dummy/config/initializers/assets.rb
|
544
|
-
- test/dummy/config/initializers/
|
545
|
-
- test/dummy/config/
|
546
|
-
- test/dummy/config/
|
547
|
-
- test/dummy/config/environments/production.rb
|
548
|
-
- test/dummy/config/secrets.yml
|
549
|
-
- test/dummy/config/locales/en.yml
|
550
|
-
- test/dummy/bin/rails
|
551
|
-
- test/dummy/bin/rake
|
552
|
-
- test/dummy/bin/setup
|
553
|
-
- test/dummy/bin/bundle
|
560
|
+
- test/dummy/config/initializers/backtrace_silencers.rb
|
561
|
+
- test/dummy/config/initializers/mime_types.rb
|
562
|
+
- test/dummy/config/initializers/filter_parameter_logging.rb
|
554
563
|
- test/dummy/app/helpers/application_helper.rb
|
555
|
-
- test/dummy/app/assets/config/manifest.js
|
556
|
-
- test/dummy/app/assets/javascripts/application.js
|
557
|
-
- test/dummy/app/assets/stylesheets/application.css
|
558
|
-
- test/dummy/app/controllers/application_controller.rb
|
559
564
|
- test/dummy/app/views/layouts/application.html.erb
|
560
|
-
- test/dummy/app/
|
561
|
-
- test/dummy/app/models/
|
562
|
-
- test/dummy/app/models/belongs_to_field.rb
|
563
|
-
- test/dummy/app/models/has_many_through_field.rb
|
564
|
-
- test/dummy/app/models/polymorphic_field.rb
|
565
|
-
- test/dummy/app/models/reference.rb
|
566
|
-
- test/dummy/app/models/owner.rb
|
567
|
-
- test/dummy/app/models/tree.rb
|
568
|
-
- test/dummy/app/models/serialize_field.rb
|
565
|
+
- test/dummy/app/controllers/application_controller.rb
|
566
|
+
- test/dummy/app/models/date_field.rb
|
569
567
|
- test/dummy/app/models/belongs_to_class_name_field.rb
|
570
|
-
- test/dummy/app/models/has_many_field.rb
|
571
568
|
- test/dummy/app/models/float_field.rb
|
572
|
-
- test/dummy/app/models/
|
569
|
+
- test/dummy/app/models/has_many_through_field.rb
|
570
|
+
- test/dummy/app/models/decimal_field.rb
|
571
|
+
- test/dummy/app/models/serialize_field.rb
|
573
572
|
- test/dummy/app/models/has_and_belongs_to_many_field.rb
|
574
|
-
- test/dummy/app/models/
|
573
|
+
- test/dummy/app/models/has_many_field.rb
|
574
|
+
- test/dummy/app/models/owner.rb
|
575
|
+
- test/dummy/app/models/polymorphic_field.rb
|
576
|
+
- test/dummy/app/models/tree.rb
|
575
577
|
- test/dummy/app/models/string_field.rb
|
578
|
+
- test/dummy/app/models/belongs_to_field.rb
|
579
|
+
- test/dummy/app/models/integer_field.rb
|
580
|
+
- test/dummy/app/models/has_one_field.rb
|
576
581
|
- test/dummy/app/models/boolean_field.rb
|
577
|
-
- test/dummy/app/models/
|
578
|
-
- test/dummy/
|
579
|
-
- test/dummy/
|
580
|
-
- test/dummy/
|
581
|
-
- test/dummy/
|
582
|
-
- test/
|
583
|
-
- test/
|
584
|
-
- test/
|
585
|
-
- test/
|
586
|
-
- test/
|
587
|
-
- test/
|
588
|
-
- test/
|
589
|
-
- test/
|
590
|
-
- test/
|
591
|
-
- test/
|
592
|
-
- test/
|
593
|
-
- test/
|
594
|
-
- test/
|
595
|
-
- test/dummy/db/migrate/20150814081918_create_has_many_through_field.rb
|
596
|
-
- test/dummy/db/migrate/20160627172951_create_tree.rb
|
597
|
-
- test/dummy/db/migrate/20150608131610_create_float_field.rb
|
598
|
-
- test/dummy/config.ru
|
599
|
-
- test/dummy/README.rdoc
|
600
|
-
- spec/spec_helper.rb
|
601
|
-
- spec/services/forest_liana/resource_updater_spec.rb
|
602
|
-
- spec/services/forest_liana/pie_stat_getter_spec.rb
|
603
|
-
- spec/services/forest_liana/resources_getter_spec.rb
|
604
|
-
- spec/services/forest_liana/permissions_getter_spec.rb
|
605
|
-
- spec/services/forest_liana/filters_parser_spec.rb
|
606
|
-
- spec/services/forest_liana/schema_adapter_spec.rb
|
607
|
-
- spec/services/forest_liana/smart_action_field_validator_spec.rb
|
608
|
-
- spec/services/forest_liana/scope_manager_spec.rb
|
609
|
-
- spec/services/forest_liana/has_many_getter_spec.rb
|
610
|
-
- spec/services/forest_liana/apimap_sorter_spec.rb
|
611
|
-
- spec/services/forest_liana/permissions_formatter_spec.rb
|
612
|
-
- spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
|
613
|
-
- spec/services/forest_liana/line_stat_getter_spec.rb
|
614
|
-
- spec/services/forest_liana/value_stat_getter_spec.rb
|
615
|
-
- spec/services/forest_liana/ip_whitelist_checker_spec.rb
|
616
|
-
- spec/services/forest_liana/permissions_checker_live_queries_spec.rb
|
617
|
-
- spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
|
618
|
-
- spec/lib/forest_liana/bootstrapper_spec.rb
|
619
|
-
- spec/lib/forest_liana/schema_file_updater_spec.rb
|
620
|
-
- spec/config/initializers/logger_spec.rb
|
621
|
-
- spec/helpers/forest_liana/schema_helper_spec.rb
|
582
|
+
- test/dummy/app/models/has_many_class_name_field.rb
|
583
|
+
- test/dummy/app/models/reference.rb
|
584
|
+
- test/dummy/app/assets/javascripts/application.js
|
585
|
+
- test/dummy/app/assets/stylesheets/application.css
|
586
|
+
- test/dummy/app/assets/config/manifest.js
|
587
|
+
- test/routing/route_test.rb
|
588
|
+
- test/services/forest_liana/schema_adapter_test.rb
|
589
|
+
- test/services/forest_liana/operator_date_interval_parser_test.rb
|
590
|
+
- test/fixtures/belongs_to_field.yml
|
591
|
+
- test/fixtures/tree.yml
|
592
|
+
- test/fixtures/owner.yml
|
593
|
+
- test/fixtures/reference.yml
|
594
|
+
- test/fixtures/has_many_through_field.yml
|
595
|
+
- test/fixtures/has_one_field.yml
|
596
|
+
- test/fixtures/serialize_field.yml
|
597
|
+
- test/fixtures/string_field.yml
|
598
|
+
- test/fixtures/has_many_field.yml
|
599
|
+
- test/forest_liana_test.rb
|
622
600
|
- spec/helpers/forest_liana/query_helper_spec.rb
|
601
|
+
- spec/helpers/forest_liana/schema_helper_spec.rb
|
602
|
+
- spec/requests/stats_spec.rb
|
603
|
+
- spec/requests/resources_spec.rb
|
604
|
+
- spec/requests/authentications_spec.rb
|
605
|
+
- spec/requests/actions_controller_spec.rb
|
606
|
+
- spec/dummy/config.ru
|
607
|
+
- spec/dummy/bin/setup
|
608
|
+
- spec/dummy/bin/bundle
|
609
|
+
- spec/dummy/bin/rake
|
610
|
+
- spec/dummy/bin/rails
|
623
611
|
- spec/dummy/lib/forest_liana/collections/user.rb
|
624
612
|
- spec/dummy/lib/forest_liana/collections/island.rb
|
625
613
|
- spec/dummy/lib/forest_liana/collections/location.rb
|
626
614
|
- spec/dummy/Rakefile
|
615
|
+
- spec/dummy/db/schema.rb
|
616
|
+
- spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
|
617
|
+
- spec/dummy/db/migrate/20190226174951_create_tree.rb
|
618
|
+
- spec/dummy/db/migrate/20210526084712_create_products.rb
|
619
|
+
- spec/dummy/db/migrate/20190226172951_create_user.rb
|
620
|
+
- spec/dummy/db/migrate/20210326110524_create_references.rb
|
621
|
+
- spec/dummy/db/migrate/20190226173051_create_isle.rb
|
622
|
+
- spec/dummy/db/migrate/20210326140855_create_locations.rb
|
623
|
+
- spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
|
624
|
+
- spec/dummy/db/migrate/20210511141752_create_owners.rb
|
625
|
+
- spec/dummy/README.rdoc
|
626
|
+
- spec/dummy/config/secrets.yml
|
627
|
+
- spec/dummy/config/environments/test.rb
|
628
|
+
- spec/dummy/config/environments/production.rb
|
629
|
+
- spec/dummy/config/environments/development.rb
|
630
|
+
- spec/dummy/config/boot.rb
|
631
|
+
- spec/dummy/config/routes.rb
|
627
632
|
- spec/dummy/config/application.rb
|
628
|
-
- spec/dummy/config/environment.rb
|
629
633
|
- spec/dummy/config/database.yml
|
630
|
-
- spec/dummy/config/
|
631
|
-
- spec/dummy/config/boot.rb
|
632
|
-
- spec/dummy/config/initializers/mime_types.rb
|
634
|
+
- spec/dummy/config/environment.rb
|
633
635
|
- spec/dummy/config/initializers/cookies_serializer.rb
|
636
|
+
- spec/dummy/config/initializers/wrap_parameters.rb
|
637
|
+
- spec/dummy/config/initializers/inflections.rb
|
634
638
|
- spec/dummy/config/initializers/session_store.rb
|
635
639
|
- spec/dummy/config/initializers/forest_liana.rb
|
636
|
-
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
637
|
-
- spec/dummy/config/initializers/inflections.rb
|
638
|
-
- spec/dummy/config/initializers/backtrace_silencers.rb
|
639
640
|
- spec/dummy/config/initializers/assets.rb
|
640
|
-
- spec/dummy/config/initializers/
|
641
|
-
- spec/dummy/config/
|
642
|
-
- spec/dummy/config/
|
643
|
-
- spec/dummy/config/environments/production.rb
|
644
|
-
- spec/dummy/config/secrets.yml
|
645
|
-
- spec/dummy/bin/rails
|
646
|
-
- spec/dummy/bin/rake
|
647
|
-
- spec/dummy/bin/setup
|
648
|
-
- spec/dummy/bin/bundle
|
649
|
-
- spec/dummy/app/config/routes.rb
|
641
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
642
|
+
- spec/dummy/config/initializers/mime_types.rb
|
643
|
+
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
650
644
|
- spec/dummy/app/helpers/application_helper.rb
|
651
|
-
- spec/dummy/app/
|
652
|
-
- spec/dummy/app/assets/javascripts/application.js
|
653
|
-
- spec/dummy/app/assets/stylesheets/application.css
|
645
|
+
- spec/dummy/app/views/layouts/application.html.erb
|
654
646
|
- spec/dummy/app/controllers/forest/islands_controller.rb
|
655
647
|
- spec/dummy/app/controllers/application_controller.rb
|
656
|
-
- spec/dummy/app/
|
657
|
-
- spec/dummy/app/models/
|
648
|
+
- spec/dummy/app/models/product.rb
|
649
|
+
- spec/dummy/app/models/user.rb
|
658
650
|
- spec/dummy/app/models/owner.rb
|
659
651
|
- spec/dummy/app/models/tree.rb
|
660
|
-
- spec/dummy/app/models/user.rb
|
661
652
|
- spec/dummy/app/models/island.rb
|
662
653
|
- spec/dummy/app/models/location.rb
|
663
|
-
- spec/dummy/app/models/
|
664
|
-
- spec/dummy/
|
665
|
-
- spec/dummy/
|
666
|
-
- spec/dummy/
|
667
|
-
- spec/dummy/
|
668
|
-
- spec/dummy/db/migrate/20210326140855_create_locations.rb
|
669
|
-
- spec/dummy/db/migrate/20190716135241_add_type_to_user.rb
|
670
|
-
- spec/dummy/db/migrate/20190226174951_create_tree.rb
|
671
|
-
- spec/dummy/db/migrate/20210326110524_create_references.rb
|
672
|
-
- spec/dummy/db/migrate/20190716130830_add_age_to_tree.rb
|
673
|
-
- spec/dummy/db/migrate/20210511141752_create_owners.rb
|
674
|
-
- spec/dummy/config.ru
|
675
|
-
- spec/dummy/README.rdoc
|
676
|
-
- spec/requests/authentications_spec.rb
|
677
|
-
- spec/requests/stats_spec.rb
|
678
|
-
- spec/requests/resources_spec.rb
|
679
|
-
- spec/requests/actions_controller_spec.rb
|
654
|
+
- spec/dummy/app/models/reference.rb
|
655
|
+
- spec/dummy/app/assets/javascripts/application.js
|
656
|
+
- spec/dummy/app/assets/stylesheets/application.css
|
657
|
+
- spec/dummy/app/assets/config/manifest.js
|
658
|
+
- spec/dummy/app/config/routes.rb
|
680
659
|
- spec/rails_helper.rb
|
660
|
+
- spec/services/forest_liana/permissions_getter_spec.rb
|
661
|
+
- spec/services/forest_liana/filters_parser_spec.rb
|
662
|
+
- spec/services/forest_liana/schema_adapter_spec.rb
|
663
|
+
- spec/services/forest_liana/permissions_checker_acl_disabled_spec.rb
|
664
|
+
- spec/services/forest_liana/smart_action_field_validator_spec.rb
|
665
|
+
- spec/services/forest_liana/apimap_sorter_spec.rb
|
666
|
+
- spec/services/forest_liana/permissions_formatter_spec.rb
|
667
|
+
- spec/services/forest_liana/line_stat_getter_spec.rb
|
668
|
+
- spec/services/forest_liana/pie_stat_getter_spec.rb
|
669
|
+
- spec/services/forest_liana/has_many_getter_spec.rb
|
670
|
+
- spec/services/forest_liana/permissions_checker_acl_enabled_spec.rb
|
671
|
+
- spec/services/forest_liana/ip_whitelist_checker_spec.rb
|
672
|
+
- spec/services/forest_liana/resources_getter_spec.rb
|
673
|
+
- spec/services/forest_liana/value_stat_getter_spec.rb
|
674
|
+
- spec/services/forest_liana/scope_manager_spec.rb
|
675
|
+
- spec/services/forest_liana/permissions_checker_live_queries_spec.rb
|
676
|
+
- spec/services/forest_liana/resource_updater_spec.rb
|
677
|
+
- spec/lib/forest_liana/bootstrapper_spec.rb
|
678
|
+
- spec/lib/forest_liana/schema_file_updater_spec.rb
|
679
|
+
- spec/spec_helper.rb
|
680
|
+
- spec/config/initializers/logger_spec.rb
|