eitil 1.3.4 → 1.3.8

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: 2249e8b19220f03df98daad2d625c434b46c3eb54982afce5b71098eb2ec7561
4
- data.tar.gz: f651112c073d1263919418904359cbdb03c39f232a216754c78da910b610e7d0
3
+ metadata.gz: 62c186ffdd14894a3ed5ce9d6a635030821ab1bdc86aa5ad7f35c7d1a3592dca
4
+ data.tar.gz: b53791e40cd28e1f6435e9cbc2888c57e26ca6f5d05b3cb3518f7285a6311618
5
5
  SHA512:
6
- metadata.gz: 851e8992abcf099c7cb23e2fed760a37278d606b6d328b4a20d0444b93986a4fef3760ea5cad242d9e6bedc15b7e71620070ec2d80ec6c32b6a44bc253cf789f
7
- data.tar.gz: 1918147e3399a9a3e6fd363fb509bc55880f1dde592ef88cc072e2943ebb7f046db2ac312120cf48823338352a1cbe7bab06cdf5fed751419efba0581ddc5b75
6
+ metadata.gz: 869d88f962e7a688b203d0f5e89132ce5f343975d6ce1a0c926691454027c5935073086766c5d0febb28be0108ca8a183f106cfb32b8314f50046dbffd6d68c7
7
+ data.tar.gz: 3ebe01d21f32cc00c3e9c84b9937b71d9e1aa46590f5b0384c18d28e0a1d6706a161cab34c58bdb2a0b59c2a8883dcf1371bcd928f645b8c6fadcdd6057143c4
data/eitil_core/README.md CHANGED
@@ -385,6 +385,35 @@ transform_string_values!(&block)
385
385
  # bang variant of .transform_string_values, which recursively modifies all objects it is called on.
386
386
  ```
387
387
 
388
+
389
+ ## Kernel
390
+
391
+ ```ruby
392
+
393
+ require "eitil_core/kernel"
394
+
395
+ ```
396
+
397
+ ```ruby
398
+ # require "eitil_core/kernel/loadquire"
399
+
400
+ loadquire(current_path, *relative_paths, ext: '.rb')
401
+ # use .loadquire to pickup code changes on reload in development environment, while not creating overhead in production through 'load' usage
402
+ # call as: loadquire __dir__, 'user'
403
+ # => loads '../user.rb' in development environment, requires '../user.rb' in all other environments
404
+ ```
405
+
406
+ ```ruby
407
+ # require "eitil_core/kernel/loadquire_bang"
408
+
409
+ loadquire!(*relative_paths, ext: '.rb')
410
+ # use .loadquire! to pickup code changes on reload in development environment, while not creating overhead in production through 'load' usage
411
+ # call as: loadquire! 'user'
412
+ # => loads '../user.rb' in development environment, requires '../user.rb' in all other environments
413
+
414
+ ```
415
+
416
+
388
417
  ## Lookups
389
418
 
390
419
  ```ruby
@@ -0,0 +1,25 @@
1
+
2
+ # require "eitil_core/kernel/loadquire"
3
+
4
+ Kernel.module_eval do
5
+
6
+ def loadquire(current_path, *relative_paths, ext: '.rb')
7
+
8
+ file_paths = relative_paths.map do |relative_path|
9
+ File.expand_path(relative_path, current_path).concat(ext)
10
+ end
11
+
12
+ if Object.const_defined?('Rails') && Rails.env.development?
13
+ file_paths.each do |path|
14
+ load(path)
15
+ end
16
+
17
+ else
18
+ file_paths.each do |path|
19
+ require(path)
20
+ end
21
+ end
22
+
23
+ end
24
+
25
+ end
@@ -0,0 +1,26 @@
1
+
2
+ # require "eitil_core/kernel/loadquire_bang"
3
+
4
+ Kernel.module_eval do
5
+
6
+ def loadquire!(*relative_paths, ext: '.rb')
7
+
8
+ current_path = caller.first.split('/')[0..-2].join('/')
9
+ file_paths = relative_paths.map do |relative_path|
10
+ File.expand_path(relative_path, current_path).concat(ext)
11
+ end
12
+
13
+ if Object.const_defined?('Rails') && Rails.env.development?
14
+ file_paths.each do |path|
15
+ load(path)
16
+ end
17
+
18
+ else
19
+ file_paths.each do |path|
20
+ require(path)
21
+ end
22
+ end
23
+
24
+ end
25
+
26
+ end
@@ -1,2 +1,3 @@
1
1
 
2
- require "eitil_core/kernel/always_require_relative"
2
+ require "eitil_core/kernel/loadquire"
3
+ require "eitil_core/kernel/loadquire_bang"
@@ -150,11 +150,20 @@ extended_resources(controller, **kwargs)
150
150
 
151
151
 
152
152
 
153
- ## EitilWrapper::Scopes
153
+ ## EitilWrapper::Records
154
154
 
155
155
  ```ruby
156
156
 
157
- require "eitil_wrapper/scopes"
157
+ # include all below EitilWrapper::Records helpers through:
158
+ require "eitil_wrapper/records"
159
+
160
+ ```
161
+
162
+ ### Scopes
163
+
164
+ ```ruby
165
+
166
+ require "eitil_wrapper/records/scopes"
158
167
 
159
168
  ```
160
169
 
@@ -175,8 +184,6 @@ Scopes are generated through the columns of your model's database table. Which s
175
184
  .{column_name}_before_date(date)
176
185
  .{column_name}_after_date(date)
177
186
  .{column_name}_between_dates(start_date, end_date)
178
- .{column_name}_oldest_first
179
- .{column_name}_newest_first
180
187
 
181
188
  # columns of datatype: date
182
189
  .{column_name}_today
@@ -186,27 +193,93 @@ Scopes are generated through the columns of your model's database table. Which s
186
193
  .{column_name}_before_date(date)
187
194
  .{column_name}_after_date(date)
188
195
  .{column_name}_between_dates(start_date, end_date)
189
- .{column_name}_oldest_first
190
- .{column_name}_newest_first
191
196
 
192
197
  # columns of datatype: integer
193
198
  .{column_name}_equal_to(number)
194
199
  .{column_name}_lower_than(number)
195
200
  .{column_name}_higher_than(number)
196
201
  .{column_name}_between(min, max)
197
- .{column_name}_ascending
198
- .{column_name}_descending
199
202
 
200
203
  # columns of datatype: float
201
204
  .{column_name}_equal_to(number)
202
205
  .{column_name}_lower_than(number)
203
206
  .{column_name}_higher_than(number)
204
207
  .{column_name}_between(min, max)
208
+ ```
209
+
210
+ ### Sorts
211
+
212
+
213
+ ```ruby
214
+
215
+ require "eitil_wrapper/records/sorts"
216
+
217
+ ```
218
+
219
+ Sorts are generated through the columns of your model's database table. Which sorts are generated depends on the datatype of a column. A sort method is defined only if it does not already responds to another method of the same name. The sorts generated are:
220
+
221
+ ```ruby
222
+ # require "eitil_wrapper/scopes/default_scopes"
223
+
224
+ # columns of datatype: datetime
225
+ .{column_name}_oldest_first
226
+ .{column_name}_newest_first
227
+
228
+ # columns of datatype: date
229
+ .{column_name}_oldest_first
230
+ .{column_name}_newest_first
231
+
232
+ # columns of datatype: integer
233
+ .{column_name}_ascending
234
+ .{column_name}_descending
235
+
236
+ # columns of datatype: float
205
237
  .{column_name}_ascending
206
238
  .{column_name}_descending
207
239
  ```
208
240
 
209
241
 
242
+ ### Calculators
243
+
244
+
245
+ ```ruby
246
+
247
+ require "eitil_wrapper/records/calculators"
248
+
249
+ ```
250
+
251
+ Calculators are generated through the columns of your model's database table. Which calculators are generated depends on the datatype of a column. A calculator method is defined only if it does not already responds to another method of the same name. The calculators generated are:
252
+
253
+ ```ruby
254
+ # require "eitil_wrapper/scopes/default_scopes"
255
+
256
+ # columns of datatype: array (serialized)
257
+ .{column_name}_sum # returns all uniq elements in a new, single array
258
+
259
+ # columns of datatype: integer
260
+ .{column_name}_max
261
+ .{column_name}_min
262
+ .{column_name}_sum
263
+ .{column_name}_avg
264
+
265
+ # columns of datatype: float
266
+ .{column_name}_max
267
+ .{column_name}_min
268
+ .{column_name}_sum
269
+ .{column_name}_avg
270
+
271
+ # columns of datatype: decimal
272
+ .{column_name}_max
273
+ .{column_name}_min
274
+ .{column_name}_sum
275
+ .{column_name}_avg
276
+
277
+ # columns of datatype: bigint
278
+ .{column_name}_max
279
+ .{column_name}_min
280
+ .{column_name}_sum
281
+ .{column_name}_avg
282
+ ```
210
283
 
211
284
 
212
285
 
@@ -7,9 +7,16 @@ module EitilWrapper
7
7
 
8
8
  initializer "my_railtie.configure_rails_initialization", options: :after do |app|
9
9
 
10
+ if Object.const_defined?('EitilWrapper::Records::DefaultCalculators')
11
+ ::ApplicationRecord.send(:extend, EitilWrapper::Records::DefaultCalculators)
12
+ end
13
+
14
+ if Object.const_defined?('EitilWrapper::Records::DefaultScopes')
15
+ ::ApplicationRecord.send(:extend, EitilWrapper::Records::DefaultScopes)
16
+ end
10
17
 
11
- if Object.const_defined?('EitilWrapper::Scopes::DefaultScopes')
12
- ::ApplicationRecord.send(:extend, EitilWrapper::Scopes::DefaultScopes)
18
+ if Object.const_defined?('EitilWrapper::Records::DefaultSorts')
19
+ ::ApplicationRecord.send(:extend, EitilWrapper::Records::DefaultSorts)
13
20
  end
14
21
 
15
22
  if Object.const_defined?('EitilWrapper::Callbacks::HelperMethods')
@@ -0,0 +1,101 @@
1
+
2
+ # require "eitil_wrapper/records/default_calculators"
3
+
4
+ # require "eitil_wrapper/railtie" to run the dynamic dispatch as an init hook during boot
5
+ require "eitil_wrapper/railtie"
6
+
7
+ module EitilWrapper
8
+ module Records
9
+ module DefaultCalculators
10
+
11
+ Eitil::ApplicationRecordModules << self
12
+
13
+ SharableNumberCalculators = -> (_class, column) {
14
+ _class.eitil_calculator :"#{column}_max", -> { _class.maximum(column) }
15
+ _class.eitil_calculator :"#{column}_min", -> { _class.minimum(column) }
16
+ _class.eitil_calculator :"#{column}_sum", -> { _class.sum(column) }
17
+ _class.eitil_calculator :"#{column}_avg", -> { _class.average(column) }
18
+ }
19
+
20
+ SharableIterableCalculators = -> (_class, column) {
21
+ _class.eitil_calculator :"#{column}_sum", -> { _class.pluck(column).flatten!.uniq! }
22
+ }
23
+
24
+ def inherited(subclass)
25
+ super
26
+ return if Eitil.skip_default_calculators_for_models.include?(subclass.to_s.to_sym)
27
+
28
+ # Set the proper table_names for namespaced models. Without setting this,
29
+ # Rails run into problems due to the fact that the first call to the model's
30
+ # constant triggers this initializer first, and only thereafter the model file
31
+ # which sets the correct table_name through a macro.
32
+
33
+ namespaced_class = subclass.to_s.include?('::')
34
+ subclass.table_name = subclass.to_s.gsub('::', '_').downcase.pluralize if namespaced_class
35
+
36
+ subclass.use_eitil_calculators
37
+
38
+ rescue => e
39
+ puts "default calculators failed for class '#{subclass}' with expected table '#{subclass.table_name}' because of #{e.class} and '#{e.to_s.split(' ').first}'"
40
+ end
41
+
42
+ def use_eitil_calculators
43
+ return if abstract_class?
44
+
45
+ # text[] is postgresql's datatype for serialized arrays
46
+ # numeric is postgresql's datatype for decimals
47
+ # double precision is postgresql's datatype for floats
48
+
49
+
50
+ %w[integer bigint double\ precision numeric].each do |_type|
51
+ send :"create_eitil_#{_type.gsub(' ','_')}_calculators"
52
+ end
53
+
54
+ create_array_calculators
55
+ end
56
+
57
+ def eitil_calculator(_name, _proc)
58
+ # skip calculator methods for primary and foreign key columns
59
+ return if _name.to_s =~ /^id_[a-z]{1,}$/ || _name.to_s =~ /_id_[a-z]{1,}$/
60
+
61
+ define_singleton_method(_name) { _proc.call } unless respond_to? _name
62
+ end
63
+
64
+ def calculator_columns_of_type(data_type)
65
+ columns_hash.select { |column,v| v.sql_type == data_type }
66
+ end
67
+
68
+ def create_eitil_integer_calculators
69
+ calculator_columns_of_type("integer")&.map do |column, object|
70
+ SharableNumberCalculators.call self, column
71
+ end
72
+ end
73
+
74
+ def create_eitil_bigint_calculators
75
+ calculator_columns_of_type("bigint")&.map do |column, object|
76
+ SharableNumberCalculators.call self, column
77
+ end
78
+ end
79
+
80
+ def create_eitil_double_precision_calculators
81
+ calculator_columns_of_type("double\ precision")&.map do |column, object|
82
+ SharableNumberCalculators.call self, column
83
+ end
84
+ end
85
+
86
+ def create_eitil_numeric_calculators
87
+ calculator_columns_of_type("numeric")&.map do |column, object|
88
+ SharableNumberCalculators.call self, column
89
+ end
90
+ end
91
+
92
+ def create_array_calculators
93
+ columns = columns_hash.select { |column,v| v.sql_type == "text" && v.default == "{}" }
94
+ columns&.map do |column, object|
95
+ SharableIterableCalculators.call self, column
96
+ end
97
+ end
98
+
99
+ end
100
+ end
101
+ end
@@ -1,11 +1,11 @@
1
1
 
2
- # require "eitil_wrapper/scopes/default_scopes"
2
+ # require "eitil_wrapper/records/default_scopes"
3
3
 
4
4
  # require "eitil_wrapper/railtie" to run the dynamic dispatch as an init hook during boot
5
5
  require "eitil_wrapper/railtie"
6
6
 
7
7
  module EitilWrapper
8
- module Scopes
8
+ module Records
9
9
  module DefaultScopes
10
10
 
11
11
  Eitil::ApplicationRecordModules << self
@@ -19,9 +19,6 @@ module EitilWrapper
19
19
  _class.eitil_scope :"#{column}_before_date", -> (date) { where("#{column} = ?", date) }
20
20
  _class.eitil_scope :"#{column}_after_date", -> (date) { where("#{column} = ?", date) }
21
21
  _class.eitil_scope :"#{column}_between_dates", -> (from, till) { where("#{column} >= ? and #{column} <= ?", from, till) }
22
-
23
- _class.eitil_scope :"#{column}_oldest_first", -> { order("#{column} ASC") }
24
- _class.eitil_scope :"#{column}_newest_first", -> { order("#{column} DESC") }
25
22
  }
26
23
 
27
24
  SharableNumScopes = -> (_class, column) {
@@ -29,9 +26,6 @@ module EitilWrapper
29
26
  _class.eitil_scope :"#{column}_lower_than", -> (number) { where("#{column} = <", number) }
30
27
  _class.eitil_scope :"#{column}_higher_than", -> (number) { where("#{column} = >", number) }
31
28
  _class.eitil_scope :"#{column}_between", -> (min, max) { where("#{column} >= ? and #{column} <= ?", min, max) }
32
-
33
- _class.eitil_scope :"#{column}_ascending", -> { order("#{column} ASC") }
34
- _class.eitil_scope :"#{column}_descending", -> { order("#{column} DESC") }
35
29
  }
36
30
 
37
31
  def inherited(subclass)
@@ -42,13 +36,14 @@ module EitilWrapper
42
36
  # Rails run into problems due to the fact that the first call to the model's
43
37
  # constant triggers this initializer first, and only thereafter the model file
44
38
  # which sets the correct table_name through a macro.
39
+
45
40
  namespaced_class = subclass.to_s.include?('::')
46
41
  subclass.table_name = subclass.to_s.gsub('::', '_').downcase.pluralize if namespaced_class
47
42
 
48
43
  subclass.use_eitil_scopes
49
44
 
50
45
  rescue => e
51
- puts "default scopes failed for #{subclass} because of #{e.class} and '#{e.to_s.split(' ').first}'"
46
+ puts "default scopes failed for class '#{subclass}' with expected table '#{subclass.table_name}' because of #{e.class} and '#{e.to_s.split(' ').first}'"
52
47
  end
53
48
 
54
49
  def use_eitil_scopes
@@ -97,4 +92,4 @@ module EitilWrapper
97
92
 
98
93
  end
99
94
  end
100
- end
95
+ end
@@ -0,0 +1,81 @@
1
+
2
+ # require "eitil_wrapper/records/default_sorts"
3
+
4
+ # require "eitil_wrapper/railtie" to run the dynamic dispatch as an init hook during boot
5
+ require "eitil_wrapper/railtie"
6
+
7
+
8
+ module EitilWrapper
9
+ module Records
10
+ module DefaultSorts
11
+
12
+ Eitil::ApplicationRecordModules << self
13
+
14
+ SharableDateSorts = -> (_class, column) {
15
+ _class.eitil_sort :"#{column}_oldest_first", -> { _class.order("#{column} ASC") }
16
+ _class.eitil_sort :"#{column}_newest_first", -> { _class.order("#{column} DESC") }
17
+ }
18
+
19
+ SharableNumSorts = -> (_class, column) {
20
+ _class.eitil_sort :"#{column}_ascending", -> { _class.order("#{column} ASC") }
21
+ _class.eitil_sort :"#{column}_descending", -> { _class.order("#{column} DESC") }
22
+ }
23
+
24
+ def inherited(subclass)
25
+ super
26
+ return if Eitil.skip_default_sorts_for_models.include?(subclass.to_s.to_sym)
27
+
28
+ # Set the proper table_names for namespaced models. Without setting this,
29
+ # Rails run into problems due to the fact that the first call to the model's
30
+ # constant triggers this initializer first, and only thereafter the model file
31
+ # which sets the correct table_name through a macro.
32
+
33
+ namespaced_class = subclass.to_s.include?('::')
34
+ subclass.table_name = subclass.to_s.gsub('::', '_').downcase.pluralize if namespaced_class
35
+
36
+ subclass.use_eitil_sorts
37
+
38
+ rescue => e
39
+ puts "default sorts failed for class '#{subclass}' with expected table '#{subclass.table_name}' because of #{e.class} and '#{e.to_s.split(' ').first}'"
40
+ end
41
+
42
+ def use_eitil_sorts
43
+ return if abstract_class?
44
+ %i[datetime date integer float].each { |_type| send :"create_eitil_#{_type}_sorts" }
45
+ end
46
+
47
+ def eitil_sort(_name, _proc)
48
+ define_singleton_method(_name) { _proc.call } unless respond_to? _name
49
+ end
50
+
51
+ def sort_columns_of_type(data_type)
52
+ columns_hash.select { |column,v| v.sql_type_metadata.type == data_type }
53
+ end
54
+
55
+ def create_eitil_datetime_sorts
56
+ columns_of_type(:datetime)&.map do |column, object|
57
+ SharableDateSorts.call self, column
58
+ end
59
+ end
60
+
61
+ def create_eitil_date_sorts
62
+ columns_of_type(:date)&.map do |column, object|
63
+ SharableDateSorts.call self, column
64
+ end
65
+ end
66
+
67
+ def create_eitil_integer_sorts
68
+ columns_of_type(:integer)&.map do |column, object|
69
+ SharableNumSorts.call self, column
70
+ end
71
+ end
72
+
73
+ def create_eitil_float_sorts
74
+ columns_of_type(:float)&.map do |column, object|
75
+ SharableNumSorts.call self, column
76
+ end
77
+ end
78
+
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,4 @@
1
+
2
+ require "eitil_wrapper/records/default_scopes"
3
+ require "eitil_wrapper/records/default_calculators"
4
+ require "eitil_wrapper/records/default_sorts"
@@ -2,7 +2,7 @@
2
2
  require "eitil_wrapper"
3
3
 
4
4
  require "eitil_wrapper/jobs"
5
- require "eitil_wrapper/scopes"
5
+ require "eitil_wrapper/records"
6
6
  require "eitil_wrapper/routes"
7
7
  require "eitil_wrapper/callbacks"
8
8
  require "eitil_wrapper/decorators"
data/lib/eitil/railtie.rb CHANGED
@@ -31,10 +31,14 @@ module Eitil
31
31
 
32
32
  Eitil.mattr_accessor :controller_ivars,
33
33
  :skip_default_scopes_for_models,
34
+ :skip_default_calculators_for_models,
35
+ :skip_default_sorts_for_models,
34
36
  :skip_callback_helper_methods_for_models
35
37
 
36
- Eitil.controller_ivars ||= []
37
- Eitil.skip_default_scopes_for_models ||= []
38
+ Eitil.controller_ivars ||= []
39
+ Eitil.skip_default_scopes_for_models ||= []
40
+ Eitil.skip_default_calculators_for_models ||= []
41
+ Eitil.skip_default_sorts_for_models ||= []
38
42
  Eitil.skip_callback_helper_methods_for_models ||= []
39
43
 
40
44
  def Eitil.set_config(&block)
data/lib/eitil/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Eitil
2
2
 
3
- VERSION = '1.3.4'
3
+ VERSION = '1.3.8'
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.3.4
4
+ version: 1.3.8
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-09-17 00:00:00.000000000 Z
11
+ date: 2021-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -207,7 +207,8 @@ files:
207
207
  - eitil_core/lib/eitil_core/hash/auto_dig.rb
208
208
  - eitil_core/lib/eitil_core/hash/transform_string_values.rb
209
209
  - eitil_core/lib/eitil_core/kernel.rb
210
- - eitil_core/lib/eitil_core/kernel/always_require_relative.rb
210
+ - eitil_core/lib/eitil_core/kernel/loadquire.rb
211
+ - eitil_core/lib/eitil_core/kernel/loadquire_bang.rb
211
212
  - eitil_core/lib/eitil_core/lookups.rb
212
213
  - eitil_core/lib/eitil_core/lookups/all_methods.rb
213
214
  - eitil_core/lib/eitil_core/lookups/gem_path.rb
@@ -282,13 +283,15 @@ files:
282
283
  - eitil_wrapper/lib/eitil_wrapper/jobs/new_job_now.rb
283
284
  - eitil_wrapper/lib/eitil_wrapper/jobs/single_method_job.rb
284
285
  - eitil_wrapper/lib/eitil_wrapper/railtie.rb
286
+ - eitil_wrapper/lib/eitil_wrapper/records.rb
287
+ - eitil_wrapper/lib/eitil_wrapper/records/default_calculators.rb
288
+ - eitil_wrapper/lib/eitil_wrapper/records/default_scopes.rb
289
+ - eitil_wrapper/lib/eitil_wrapper/records/default_sorts.rb
285
290
  - eitil_wrapper/lib/eitil_wrapper/request_logger.rb
286
291
  - eitil_wrapper/lib/eitil_wrapper/request_logger/controller_mixin.rb
287
292
  - eitil_wrapper/lib/eitil_wrapper/request_logger/logger_job.rb
288
293
  - eitil_wrapper/lib/eitil_wrapper/routes.rb
289
294
  - eitil_wrapper/lib/eitil_wrapper/routes/extended_resources.rb
290
- - eitil_wrapper/lib/eitil_wrapper/scopes.rb
291
- - eitil_wrapper/lib/eitil_wrapper/scopes/default_scopes.rb
292
295
  - lib/eitil.rb
293
296
  - lib/eitil/all.rb
294
297
  - lib/eitil/railtie.rb
@@ -468,7 +471,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
468
471
  - !ruby/object:Gem::Version
469
472
  version: '0'
470
473
  requirements: []
471
- rubygems_version: 3.1.2
474
+ rubygems_version: 3.0.9
472
475
  signing_key:
473
476
  specification_version: 4
474
477
  summary: Eitil (eitje utility) never stops increasing your life's efficacy and productivity,
@@ -1,21 +0,0 @@
1
-
2
- # require "eitil_core/kernel/always_require_relative"
3
-
4
- Kernel.module_eval do
5
-
6
- def always_require_relative(current_path, relative_path, extension = '.rb')
7
-
8
- unless Object.const_defined?('Rails')
9
- return require_relative(path)
10
- end
11
-
12
- absolute_path = File.expand_path(relative_path, current_path).concat(extension)
13
-
14
- if Rails.env.development?
15
- load(absolute_path)
16
- else
17
- require(absolute_path)
18
- end
19
- end
20
-
21
- end
@@ -1,2 +0,0 @@
1
-
2
- require "eitil_wrapper/scopes/default_scopes"