eitil 1.0.4 → 1.1.4

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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/eitil_core/README.md +43 -0
  3. data/eitil_core/lib/eitil_core.rb +1 -0
  4. data/eitil_core/lib/eitil_core/application_controller/slice_params.rb +3 -0
  5. data/eitil_core/lib/eitil_core/application_record/all_associations.rb +3 -0
  6. data/eitil_core/lib/eitil_core/application_record/find_by_like.rb +3 -0
  7. data/eitil_core/lib/eitil_core/application_record/where_like.rb +3 -0
  8. data/eitil_core/lib/eitil_core/formatters.rb +4 -0
  9. data/eitil_core/lib/eitil_core/formatters/sql.rb +72 -0
  10. data/eitil_core/lib/eitil_core/railtie.rb +0 -3
  11. data/eitil_integrate/lib/eitil_integrate/application_exporter.rb +1 -0
  12. data/eitil_integrate/lib/eitil_integrate/application_exporter/auto_sum/format_data.rb +6 -3
  13. data/eitil_integrate/lib/eitil_integrate/application_exporter/auto_sum/sum_data.rb +24 -9
  14. data/eitil_integrate/lib/eitil_integrate/application_exporter/default_export.rb +1 -0
  15. data/eitil_integrate/lib/eitil_integrate/application_exporter/initialize.rb +1 -3
  16. data/eitil_integrate/lib/eitil_integrate/application_exporter/log_state.rb +81 -0
  17. data/eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb +9 -3
  18. data/eitil_integrate/lib/eitil_integrate/railtie.rb +0 -3
  19. data/eitil_store/lib/eitil_store/railtie.rb +0 -3
  20. data/eitil_support/lib/eitil_support/railtie.rb +0 -3
  21. data/eitil_wrapper/README.md +24 -0
  22. data/eitil_wrapper/lib/eitil_wrapper.rb +2 -1
  23. data/eitil_wrapper/lib/eitil_wrapper/jobs/single_method_job.rb +3 -0
  24. data/eitil_wrapper/lib/eitil_wrapper/railtie.rb +24 -7
  25. data/eitil_wrapper/lib/eitil_wrapper/request_logger.rb +5 -0
  26. data/eitil_wrapper/lib/eitil_wrapper/request_logger/controller_mixin.rb +48 -0
  27. data/eitil_wrapper/lib/eitil_wrapper/request_logger/logger_job.rb +17 -0
  28. data/eitil_wrapper/lib/eitil_wrapper/scopes/default_scopes.rb +6 -0
  29. data/lib/eitil/all.rb +3 -2
  30. data/lib/eitil/railtie.rb +6 -4
  31. data/lib/eitil/version.rb +1 -1
  32. metadata +8 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2bf167d056adee32eeba94ac5282d6a9890575a309c775bd53da822f4817501e
4
- data.tar.gz: '08bbebecb6e9d84567d522d9c7b62e23ff8b3a6e3b3b1fee5639a58aa9f6bc68'
3
+ metadata.gz: b566e2911d13c9952ef93916e929e1bf4666790e2d07934ccc3cb7d00f421319
4
+ data.tar.gz: d492741da447ce1777c79a07c1968acc611f558eec690d933c3e8eff94422f4b
5
5
  SHA512:
6
- metadata.gz: cab736bd8a72ba50468f017d91f12fabe1a8a8887bb892797c7466296227fb763e413a5ae372c535ef134963181414ac8ef3d7cae497d708b178f05a93c03ce1
7
- data.tar.gz: dc057b62c574bea1b96e4074c9af724cf3ad59d957f9a62790cbe63ec998503c1ae1a1b5f253388d293ab1bfb5eeeb41b7f247dc61e1b635dacadc7bf644ddd0
6
+ metadata.gz: 27376302a08134d0f7b14d55c4dda41eabd230b93cd1bce4f719d12505241e817779fc4feaa83e03443cc910516e33e477c10760ed9be7d5c543b2b53d98e2ae
7
+ data.tar.gz: 2fe73ac66fe0ef8bfc64260fc95e05f4a5c8dee3c8f7afb2c376da25fc65b1b93ab8da6b008bbb5d31537789d1c8b697258f87dbf9bde956f3c849ffa7e46bd1
data/eitil_core/README.md CHANGED
@@ -214,6 +214,49 @@ safe_to_i
214
214
  ```
215
215
 
216
216
 
217
+ ## Formatters
218
+
219
+ ```ruby
220
+
221
+ require "eitil_core/formatters"
222
+
223
+ ```
224
+
225
+ ```ruby
226
+ # require "eitil_core/formatters/sql"
227
+
228
+ Date.today.strfsql
229
+ # => "2021-06-23"
230
+
231
+ Date.today.strfsql(:date)
232
+ # => "2021-06-23"
233
+
234
+ DateTime.now.strfsql
235
+ # => "2021-06-23 13:15:37.945083"
236
+
237
+ DateTime.now.strfsql(:datetime)
238
+ # => "2021-06-23 13:15:37.945083"
239
+
240
+ DateTime.now.strfsql(:date)
241
+ # => "2021-06-23"
242
+
243
+ DateTime.now.strfsql(:time)
244
+ # => "13:16:23"
245
+
246
+ Time.now.strfsql
247
+ # => "13:16:23"
248
+
249
+ Time.now.strfsql(:datetime)
250
+ # => "2021-06-23 13:15:37.945083"
251
+
252
+ Time.now.strfsql(:date)
253
+ # => "2021-06-23"
254
+
255
+ Time.now.strfsql(:time)
256
+ # => "13:16:23"
257
+ ```
258
+
259
+
217
260
  ## Hash
218
261
 
219
262
  ```ruby
@@ -8,6 +8,7 @@ require "eitil_core/datetime"
8
8
 
9
9
  # multi class patches
10
10
  require "eitil_core/type_checkers"
11
+ require "eitil_core/formatters"
11
12
  require "eitil_core/mocks"
12
13
 
13
14
  # rails class patches
@@ -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
@@ -0,0 +1,4 @@
1
+
2
+ # require "eitil_core/formatters"
3
+
4
+ require "eitil_core/formatters/sql"
@@ -0,0 +1,72 @@
1
+
2
+ # require "eitil_core/formatters/sql"
3
+
4
+
5
+ class Date
6
+
7
+ def strfsql(type = :date)
8
+
9
+ type = type.kind_of?(String) ? type.to_sym : type
10
+
11
+ case type
12
+
13
+ when :date
14
+ return self.strftime "%Y-%m-%d"
15
+
16
+ end
17
+ return
18
+
19
+ end
20
+
21
+ end
22
+
23
+
24
+ class DateTime
25
+
26
+ def strfsql(type = :datetime)
27
+
28
+ type = type.kind_of?(String) ? type.to_sym : type
29
+
30
+ case type
31
+
32
+ when :datetime
33
+ return self.strftime "%Y-%m-%d %H:%M:%S.%6N"
34
+
35
+ when :date
36
+ return self.strftime "%Y-%m-%d"
37
+
38
+ when :time
39
+ return self.strftime "%H:%M:%S"
40
+
41
+ end
42
+ return
43
+
44
+ end
45
+
46
+ end
47
+
48
+
49
+ class Time
50
+
51
+ def strfsql(type = :time)
52
+
53
+ type = type.kind_of?(String) ? type.to_sym : type
54
+
55
+ case type
56
+
57
+ when :datetime
58
+ return self.strftime "%Y-%m-%d %H:%M:%S.%6N"
59
+
60
+ when :date
61
+ return self.strftime "%Y-%m-%d"
62
+
63
+ when :time
64
+ return self.strftime "%H:%M:%S"
65
+
66
+ end
67
+ return
68
+
69
+ end
70
+
71
+ end
72
+
@@ -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
@@ -17,6 +17,7 @@ require_relative "application_exporter/setters"
17
17
  require_relative "application_exporter/selectors"
18
18
  require_relative "application_exporter/lookups"
19
19
  require_relative "application_exporter/infos"
20
+ require_relative "application_exporter/log_state"
20
21
 
21
22
  # the AutoSum module, which is a seperately functioning module (service)
22
23
  require_relative "application_exporter/auto_sum"
@@ -10,9 +10,12 @@ module EitilIntegrate::RubyXL
10
10
  format_ints_to_floats
11
11
  end
12
12
 
13
- def format_time_strings
14
- @hash.transform_values! { |array| array.map { |item| incomplete_time_string?(item) ? "#{item}:00" : item } }
15
- end
13
+ # outcommented method in favour of AutoSum#chronic_sum_array: no longer accept days, since the method excepts
14
+ # either hh:mm or hh:mm:ss
15
+
16
+ # def format_time_strings
17
+ # @hash.transform_values! { |array| array.map { |item| incomplete_time_string?(item) ? "#{item}:00" : item } }
18
+ # end
16
19
 
17
20
  def incomplete_time_string?(string)
18
21
  string.is_a?(String) && string.length == 5 && string.scan(/\d{2}:\d{2}/)
@@ -22,15 +22,30 @@ module EitilIntegrate::RubyXL
22
22
  end
23
23
 
24
24
  def chronic_sum_array(array)
25
- sum = array.map { |item| ChronicDuration.parse(item) }.compact.sum
26
- hours = format_time(sum / (60 * 60))
27
- sum = sum % (60 * 60)
28
- minutes = format_time(sum / 60)
29
- seconds = format_time(sum % 60)
30
-
31
- # currently doesn't return seconds, since those will never
32
- # be set (?) and screw the consistency of data formatting
33
- ["#{hours}:#{minutes}"]
25
+
26
+ #total minutes, hours and days
27
+ tm, th, td = [0]*3
28
+
29
+ array.each do |time_string|
30
+
31
+ # add empty 0's, to avoid defining nil values when time values are absent
32
+ h, m, s = *time_string.split(':').map(&:to_i), *[0]*3
33
+ tm += m; th += h
34
+
35
+ end
36
+
37
+ # parsing times into maxes (60 m, 24 h, ∞ days)
38
+ th += tm / 60
39
+ tm = tm % 60
40
+ td += th / 24
41
+ th = th % 24
42
+
43
+ # formatting strings
44
+ sd = td.to_s
45
+ sh = th.to_s.rjust(2,'0')
46
+ sm = tm.to_s.rjust(2,'0')
47
+
48
+ [[sd, sh, sm].join(':')]
34
49
  end
35
50
 
36
51
  def format_time(time)
@@ -34,6 +34,7 @@ module EitilIntegrate::RubyXL
34
34
 
35
35
  def process_export
36
36
  style_file
37
+ log_state
37
38
  save_file
38
39
  end
39
40
 
@@ -4,15 +4,13 @@
4
4
  require "eitil_core/setters/set_ivars"
5
5
  require "eitil_core/argument_helpers/all_kwargs_to_ivars"
6
6
 
7
- # EitilIntegrate::RubyXL::ApplicationExporter
8
-
9
7
  module EitilIntegrate
10
8
  module RubyXL
11
9
  class ApplicationExporter
12
10
 
13
11
  include ActionView::Helpers::NumberHelper
14
12
 
15
- attr_accessor :book, :sheet, :x, :y, :start_date, :end_date, :date_range
13
+ attr_accessor :book, :sheet, :x, :y, :start_date, :end_date, :date_range, :write_log
16
14
 
17
15
  def initialize(attributes={})
18
16
  all_kwargs_to_ivars binding, :attributes
@@ -0,0 +1,81 @@
1
+
2
+ # require "eitil_integrate/application_exporter/log_state"
3
+
4
+ module EitilIntegrate::RubyXL
5
+ class ApplicationExporter
6
+
7
+ private
8
+
9
+ def log_state
10
+
11
+ return unless write_log == true
12
+
13
+ # create_log_sheet
14
+ book.add_worksheet('log')
15
+
16
+ # manage sheets
17
+ previous_sheet = @sheet.sheet_name
18
+ @sheet = @book["log"]
19
+
20
+ # manage coordinates
21
+ previous_x = @x
22
+ @x = 0
23
+
24
+ # log everything we want to log
25
+ report_state
26
+
27
+ # style logs
28
+ style_first_x_columns_width(1, 40)
29
+ style_first_column_bold
30
+
31
+ # restore what was previously active
32
+ @sheet = @book[previous_sheet]
33
+ @x = previous_x
34
+
35
+ end
36
+
37
+ def report_state
38
+ instance_variables.each do |ivar|
39
+
40
+ variable_name = ivar.to_s
41
+ variable_value = format_value(instance_variable_get(ivar))
42
+
43
+ array_to_row [variable_name, variable_value]
44
+
45
+ end
46
+ end
47
+
48
+ # formatting the values to a human readably format is important, because otherwise Excel warns
49
+ # users on safety when opening the file.
50
+ def format_value(value)
51
+ value_class = value.class
52
+
53
+ if value_class == Hash
54
+ value.map {|k,v| "#{k.to_s.split('_').map(&:capitalize).join(' ')}: #{v}"}.join(' // ')
55
+
56
+ elsif value_class == Array && value.all? { |item| item.class.superclass == ApplicationRecord }
57
+ "#{value.class} #{value.map(&:id).join(', ')}"
58
+
59
+ elsif value_class.superclass == ApplicationRecord
60
+ "#{value.class} ##{value.id}"
61
+
62
+ elsif value_class.superclass == ActiveRecord::Relation
63
+ "#{value.class.to_s.split('::').first} #{value.ids.to_s.delete('[]')}"
64
+
65
+ elsif value_class.superclass == ActiveRecord::Associations::CollectionProxy
66
+ "#{value.class.to_s.split('::').first} #{value.ids.to_s.delete('[]')}"
67
+
68
+ elsif value_class == RubyXL::Workbook
69
+ value_class.name
70
+
71
+ elsif value_class == RubyXL::Worksheet
72
+ value_class.name
73
+
74
+ else
75
+ value.to_s
76
+
77
+ end
78
+ end
79
+
80
+ end
81
+ end
@@ -22,15 +22,21 @@ module EitilIntegrate::RubyXL
22
22
  end
23
23
 
24
24
  def exporter_infos
25
- exporter_constants.map { |_c| { "#{_c}": _c.info || {} } }.inject &:merge
25
+ exporter_constants.map { |_c| { "#{_c.to_s.remove("Exporter")}": _c.info || {} } }.inject &:merge
26
26
  end
27
27
 
28
- alias_method :taxonomy, :exporter_infos
29
-
30
28
  def exporter_info(exporter, info)
31
29
  exporter_infos[exporter]&.dig(info)
32
30
  end
33
31
 
32
+ # returns the exporter_infos, without the datatypes – for taxonomy purpuses, the field
33
+ # names are often sufficient
34
+ def exporter_taxonomy
35
+ exporter_infos.transform_values do |settings|
36
+ settings.transform_values { |info| info.first.is_a?(Hash) ? info.first.keys : info }
37
+ end
38
+ end
39
+
34
40
  def exporter_params
35
41
  exporter_infos.transform_values { |v| [v[:required], v[:optional]].flatten.compact }
36
42
  end
@@ -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,27 @@ 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 add the following. This calls a background job which writes to the file.
194
+
195
+ ```ruby
196
+
197
+ include EitilWrapper::RequestLogger::ControllerMixin
198
+ before_action :log_request
199
+
200
+ ```
201
+
202
+
203
+
204
+
205
+
@@ -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" if Rails.env.development?
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/railtie.rb CHANGED
@@ -1,6 +1,4 @@
1
1
 
2
- require 'eitil/railtie'
3
-
4
2
  # Constants
5
3
 
6
4
  module Eitil
@@ -10,16 +8,20 @@ module Eitil
10
8
 
11
9
  end
12
10
 
13
-
14
11
  # Configuration
15
12
 
16
13
  module Eitil
17
14
 
18
15
  class Railtie < ::Rails::Railtie
19
16
 
20
- # Add lib dirs to $LOAD_PATH, making them available in your main app.
21
17
  Eitil::Layers.each do |layer|
18
+
19
+ # Add lib dirs to $LOAD_PATH, making them available in your main app.
22
20
  $LOAD_PATH << "#{Eitil::Root}/#{layer}/lib"
21
+
22
+ # Load railtie into main app, enabling on the fly inclusion of dispatches.
23
+ require "#{layer}/railtie"
24
+
23
25
  end
24
26
 
25
27
  end
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.4'
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.4
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-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -105,6 +105,8 @@ files:
105
105
  - eitil_core/lib/eitil_core/errors/raise_error.rb
106
106
  - eitil_core/lib/eitil_core/float.rb
107
107
  - eitil_core/lib/eitil_core/float/safe_to_i.rb
108
+ - eitil_core/lib/eitil_core/formatters.rb
109
+ - eitil_core/lib/eitil_core/formatters/sql.rb
108
110
  - eitil_core/lib/eitil_core/hash.rb
109
111
  - eitil_core/lib/eitil_core/hash/auto_dig.rb
110
112
  - eitil_core/lib/eitil_core/lookups.rb
@@ -138,6 +140,7 @@ files:
138
140
  - eitil_integrate/lib/eitil_integrate/application_exporter/helpers.rb
139
141
  - eitil_integrate/lib/eitil_integrate/application_exporter/infos.rb
140
142
  - eitil_integrate/lib/eitil_integrate/application_exporter/initialize.rb
143
+ - eitil_integrate/lib/eitil_integrate/application_exporter/log_state.rb
141
144
  - eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb
142
145
  - eitil_integrate/lib/eitil_integrate/application_exporter/selectors.rb
143
146
  - eitil_integrate/lib/eitil_integrate/application_exporter/setters.rb
@@ -171,6 +174,9 @@ files:
171
174
  - eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb
172
175
  - eitil_wrapper/lib/eitil_wrapper/jobs/single_method_job.rb
173
176
  - eitil_wrapper/lib/eitil_wrapper/railtie.rb
177
+ - eitil_wrapper/lib/eitil_wrapper/request_logger.rb
178
+ - eitil_wrapper/lib/eitil_wrapper/request_logger/controller_mixin.rb
179
+ - eitil_wrapper/lib/eitil_wrapper/request_logger/logger_job.rb
174
180
  - eitil_wrapper/lib/eitil_wrapper/routes.rb
175
181
  - eitil_wrapper/lib/eitil_wrapper/routes/extended_resources.rb
176
182
  - eitil_wrapper/lib/eitil_wrapper/scopes.rb