eitil 1.0.4 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2bf167d056adee32eeba94ac5282d6a9890575a309c775bd53da822f4817501e
4
- data.tar.gz: '08bbebecb6e9d84567d522d9c7b62e23ff8b3a6e3b3b1fee5639a58aa9f6bc68'
3
+ metadata.gz: da8ee05892ab05d923342f6ed43e13665bba39fb04cf896bb74f1914892252fd
4
+ data.tar.gz: 372286a8ac0c7c01d0c33e7f37b6335a8045834e31e31e0a93a4ddbc1656d882
5
5
  SHA512:
6
- metadata.gz: cab736bd8a72ba50468f017d91f12fabe1a8a8887bb892797c7466296227fb763e413a5ae372c535ef134963181414ac8ef3d7cae497d708b178f05a93c03ce1
7
- data.tar.gz: dc057b62c574bea1b96e4074c9af724cf3ad59d957f9a62790cbe63ec998503c1ae1a1b5f253388d293ab1bfb5eeeb41b7f247dc61e1b635dacadc7bf644ddd0
6
+ metadata.gz: 5c1dddb52e1efcb4eb8272050792fd81ec9f4281b46bafb444bece9ba0c54c1407d5f78c6ea8354760093680c3a7546c76bd7591185f4628394b4974df0e4634
7
+ data.tar.gz: 0d69428c5db0e7aea257d0a85fb8a658bae7789672718bbcadea24b11b9089faa2979d3fee67fb02176663685e17c2c1e124aa4bcf63bbe867e124ffe7cf5343
@@ -1,6 +1,9 @@
1
1
 
2
2
  # require "eitil_core/application_controller/slice_params"
3
3
 
4
+ # require "eitil_core/railtie" to run the dynamic dispatch as an init hook during boot
5
+ require "eitil_core/railtie"
6
+
4
7
  module EitilCore
5
8
  module ApplicationController
6
9
  module SliceParams
@@ -1,6 +1,9 @@
1
1
 
2
2
  # require "eitil_core/application_record/all_associations"
3
3
 
4
+ # require "eitil_core/railtie" to run the dynamic dispatch as an init hook during boot
5
+ require "eitil_core/railtie"
6
+
4
7
  module EitilCore
5
8
  module ApplicationRecord
6
9
  module AllAssociations
@@ -1,6 +1,9 @@
1
1
 
2
2
  # require "eitil_core/application_record/find_by_like"
3
3
 
4
+ # require "eitil_core/railtie" to run the dynamic dispatch as an init hook during boot
5
+ require "eitil_core/railtie"
6
+
4
7
  module EitilCore
5
8
  module ApplicationRecord
6
9
  module FindByLike
@@ -1,6 +1,9 @@
1
1
 
2
2
  # require "eitil_core/application_record/where_like"
3
3
 
4
+ # require "eitil_core/railtie" to run the dynamic dispatch as an init hook during boot
5
+ require "eitil_core/railtie"
6
+
4
7
  module EitilCore
5
8
  module ApplicationRecord
6
9
  module WhereLike
@@ -1,7 +1,4 @@
1
1
 
2
- require "rails"
3
- require "eitil_core"
4
-
5
2
  module EitilCore
6
3
 
7
4
  class Railtie < Rails::Railtie
@@ -1,7 +1,4 @@
1
1
 
2
- require "rails"
3
- require "eitil_integrate"
4
-
5
2
  module EitilIntegrate
6
3
 
7
4
  class Railtie < Rails::Railtie
@@ -1,7 +1,4 @@
1
1
 
2
- require "rails"
3
- require "eitil_store"
4
-
5
2
  module EitilStore
6
3
 
7
4
  class Railtie < Rails::Railtie
@@ -1,7 +1,4 @@
1
1
 
2
- require "rails"
3
- require "eitil_support"
4
-
5
2
  module EitilSupport
6
3
 
7
4
  class Railtie < Rails::Railtie
@@ -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
+
@@ -4,4 +4,5 @@ require "eitil_wrapper"
4
4
  require "eitil_wrapper/jobs"
5
5
  require "eitil_wrapper/scopes"
6
6
  require "eitil_wrapper/routes"
7
- require "eitil_wrapper/decorators"
7
+ require "eitil_wrapper/decorators"
8
+ require "eitil_wrapper/request_logger"
@@ -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,5 @@
1
+
2
+ # require "eitil_wrapper/request_logger"
3
+
4
+ require_relative "request_logger/controller_mixin"
5
+ require_relative "request_logger/logger_job"
@@ -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
@@ -1,3 +1,9 @@
1
+
2
+ # require "eitil_wrapper/scopes/default_scopes"
3
+
4
+ # require "eitil_wrapper/railtie" to run the dynamic dispatch as an init hook during boot
5
+ require "eitil_wrapper/railtie"
6
+
1
7
  module EitilWrapper
2
8
  module Scopes
3
9
  module DefaultScopes
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
- puts "succesfully required #{layer}/railtie"
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
@@ -1,5 +1,5 @@
1
1
  module Eitil
2
2
 
3
- VERSION = '1.0.4'
3
+ VERSION = '1.1.0'
4
4
 
5
5
  end
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
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-14 00:00:00.000000000 Z
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