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 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