eitil 1.0.4 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/eitil_core/lib/eitil_core/application_controller/slice_params.rb +3 -0
- data/eitil_core/lib/eitil_core/application_record/all_associations.rb +3 -0
- data/eitil_core/lib/eitil_core/application_record/find_by_like.rb +3 -0
- data/eitil_core/lib/eitil_core/application_record/where_like.rb +3 -0
- data/eitil_core/lib/eitil_core/railtie.rb +0 -3
- data/eitil_integrate/lib/eitil_integrate/railtie.rb +0 -3
- data/eitil_store/lib/eitil_store/railtie.rb +0 -3
- data/eitil_support/lib/eitil_support/railtie.rb +0 -3
- data/eitil_wrapper/README.md +16 -0
- data/eitil_wrapper/lib/eitil_wrapper.rb +2 -1
- data/eitil_wrapper/lib/eitil_wrapper/jobs/single_method_job.rb +3 -0
- data/eitil_wrapper/lib/eitil_wrapper/railtie.rb +24 -7
- data/eitil_wrapper/lib/eitil_wrapper/request_logger.rb +5 -0
- data/eitil_wrapper/lib/eitil_wrapper/request_logger/controller_mixin.rb +48 -0
- data/eitil_wrapper/lib/eitil_wrapper/request_logger/logger_job.rb +17 -0
- data/eitil_wrapper/lib/eitil_wrapper/scopes/default_scopes.rb +6 -0
- data/lib/eitil/all.rb +3 -2
- data/lib/eitil/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da8ee05892ab05d923342f6ed43e13665bba39fb04cf896bb74f1914892252fd
|
4
|
+
data.tar.gz: 372286a8ac0c7c01d0c33e7f37b6335a8045834e31e31e0a93a4ddbc1656d882
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c1dddb52e1efcb4eb8272050792fd81ec9f4281b46bafb444bece9ba0c54c1407d5f78c6ea8354760093680c3a7546c76bd7591185f4628394b4974df0e4634
|
7
|
+
data.tar.gz: 0d69428c5db0e7aea257d0a85fb8a658bae7789672718bbcadea24b11b9089faa2979d3fee67fb02176663685e17c2c1e124aa4bcf63bbe867e124ffe7cf5343
|
data/eitil_wrapper/README.md
CHANGED
@@ -179,3 +179,19 @@ Scopes are generated through the columns of your model's database table. Which s
|
|
179
179
|
```
|
180
180
|
|
181
181
|
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
## EitilWrapper::RequestLogger
|
186
|
+
|
187
|
+
```ruby
|
188
|
+
|
189
|
+
require "eitil_wrapper/request_logger"
|
190
|
+
|
191
|
+
```
|
192
|
+
|
193
|
+
The RequestLogger wrapper logs request params in /log/request_logger.log, which offers the opportunity to pry into webhooks while developing. In order to track a controller, simply include EitilWrapper::RequestLogger::ControllerMixin. This calls a background job which writes to the file.
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
|
@@ -2,6 +2,9 @@
|
|
2
2
|
# somehow leads to errors in the initialization process. Ideally, this code would be
|
3
3
|
# defined in eitil_wrapper/jobs/single_method_job.rb and dispatched in eitil_wrapper/railtie.rb
|
4
4
|
|
5
|
+
# require "eitil_wrapper/railtie" to run the dynamic dispatch as an init hook during boot
|
6
|
+
require "eitil_wrapper/railtie"
|
7
|
+
|
5
8
|
module EitilWrapper
|
6
9
|
module CreateSingleMethodJob
|
7
10
|
end
|
@@ -1,22 +1,17 @@
|
|
1
1
|
|
2
|
-
require "rails"
|
3
|
-
require "eitil_wrapper"
|
4
|
-
|
5
2
|
module EitilWrapper
|
6
3
|
|
7
4
|
class Railtie < Rails::Railtie
|
8
5
|
|
6
|
+
# Dynamic dispatching after initialization of Rails classes.
|
7
|
+
|
9
8
|
initializer "my_railtie.configure_rails_initialization", options: :after do |app|
|
10
9
|
|
11
|
-
# Dynamic dispatching after initialization of Rails classes.
|
12
10
|
|
13
|
-
# Scopes
|
14
|
-
|
15
11
|
if Object.const_defined?('EitilWrapper::Scopes::DefaultScopes')
|
16
12
|
::ApplicationRecord.send(:extend, EitilWrapper::Scopes::DefaultScopes)
|
17
13
|
end
|
18
14
|
|
19
|
-
# Jobs
|
20
15
|
|
21
16
|
if Object.const_defined?('EitilWrapper::CreateSingleMethodJob')
|
22
17
|
|
@@ -44,6 +39,28 @@ module EitilWrapper
|
|
44
39
|
object.send _method, *args, **kwargs
|
45
40
|
end; end; end; end
|
46
41
|
|
42
|
+
|
43
|
+
if Object.const_defined?('EitilWrapper::RequestLogger::CreateLoggerJob')
|
44
|
+
|
45
|
+
module ::EitilWrapper
|
46
|
+
module RequestLogger
|
47
|
+
class LoggerJob < ::ApplicationJob
|
48
|
+
|
49
|
+
def perform(logger_object)
|
50
|
+
|
51
|
+
# set path for logger
|
52
|
+
$request_logger_path ||= "#{Rails.root}/log/request_logger.log"
|
53
|
+
|
54
|
+
# create logger, if not present
|
55
|
+
if Dir[$request_logger_path].blank? || $request_logger.blank?
|
56
|
+
$request_logger = Logger.new($request_logger_path)
|
57
|
+
end
|
58
|
+
|
59
|
+
# add logger_object to logger
|
60
|
+
$request_logger.info(logger_object)
|
61
|
+
|
62
|
+
end; end; end; end; end
|
63
|
+
|
47
64
|
end
|
48
65
|
end
|
49
66
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
|
2
|
+
# require "eitil_wrapper/request_logger/controller_mixin"
|
3
|
+
|
4
|
+
require_relative "logger_job"
|
5
|
+
|
6
|
+
module EitilWrapper
|
7
|
+
module RequestLogger
|
8
|
+
module ControllerMixin
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def log_request
|
13
|
+
$request_logger_path ||= "#{Rails.root}/log/request_logger.log"
|
14
|
+
EitilWrapper::RequestLogger::LoggerJob.perform_later(request_logger_object)
|
15
|
+
end
|
16
|
+
|
17
|
+
def request_logger_object
|
18
|
+
|
19
|
+
log_request = {
|
20
|
+
path: request.env["REQUEST_PATH"],
|
21
|
+
method: request.env["REQUEST_METHOD"],
|
22
|
+
query_str: request.env["QUERY_STRING"],
|
23
|
+
}
|
24
|
+
|
25
|
+
log_params = {
|
26
|
+
params: params.as_json
|
27
|
+
}
|
28
|
+
|
29
|
+
log_attributes = {
|
30
|
+
time: Time.now.strftime("%Y-%m-%d %H:%M:%S")
|
31
|
+
}
|
32
|
+
|
33
|
+
log = {
|
34
|
+
request: log_request,
|
35
|
+
params: log_params,
|
36
|
+
attributes: log_attributes
|
37
|
+
}
|
38
|
+
|
39
|
+
log_time = log_attributes[:time]
|
40
|
+
log_strf = log.deep_symbolize_keys.to_s
|
41
|
+
# log_strf may be hashed through eval(log_strf)
|
42
|
+
|
43
|
+
return log_strf
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
# require "eitil_wrapper/request_logger/logger_job"
|
3
|
+
|
4
|
+
# require "eitil_wrapper/railtie" to run the dynamic dispatch as an init hook during boot
|
5
|
+
require "eitil_wrapper/railtie"
|
6
|
+
|
7
|
+
# ISSUE: this code is currently defined eitil_wrapper/railtie.rb, since module inclusion
|
8
|
+
# somehow leads to errors in the initialization process. Ideally, this code would be
|
9
|
+
# defined in eitil_wrapper/request_logger/logger_job.rb and dispatched in eitil_wrapper/railtie.rb
|
10
|
+
|
11
|
+
module EitilWrapper
|
12
|
+
module RequestLogger
|
13
|
+
module CreateLoggerJob
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/eitil/all.rb
CHANGED
@@ -6,10 +6,11 @@ Eitil::Layers.each do |layer|
|
|
6
6
|
|
7
7
|
begin
|
8
8
|
require "#{layer}/railtie"
|
9
|
-
|
9
|
+
require "#{layer}"
|
10
|
+
puts "succesfully required #{layer} and #{layer}/railtie"
|
10
11
|
|
11
12
|
rescue LoadError => e
|
12
|
-
puts "failed to require #{layer}/railtie"
|
13
|
+
puts "failed to require #{layer} and #{layer}/railtie"
|
13
14
|
puts "message: #{e.message}"
|
14
15
|
# binding.pry
|
15
16
|
|
data/lib/eitil/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eitil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jurriaan Schrofer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-06-
|
11
|
+
date: 2021-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -171,6 +171,9 @@ files:
|
|
171
171
|
- eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
|
172
172
|
- eitil_wrapper/lib/eitil_wrapper/jobs/single_method_job.rb
|
173
173
|
- eitil_wrapper/lib/eitil_wrapper/railtie.rb
|
174
|
+
- eitil_wrapper/lib/eitil_wrapper/request_logger.rb
|
175
|
+
- eitil_wrapper/lib/eitil_wrapper/request_logger/controller_mixin.rb
|
176
|
+
- eitil_wrapper/lib/eitil_wrapper/request_logger/logger_job.rb
|
174
177
|
- eitil_wrapper/lib/eitil_wrapper/routes.rb
|
175
178
|
- eitil_wrapper/lib/eitil_wrapper/routes/extended_resources.rb
|
176
179
|
- eitil_wrapper/lib/eitil_wrapper/scopes.rb
|