eitil 1.0.1.e.2 → 1.0.1.e.3
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 +4 -4
- data/eitil_core/README.md +288 -0
- data/eitil_core/lib/eitil_core/application_controller/slice_params.rb +14 -0
- data/eitil_core/lib/eitil_core/application_controller.rb +2 -0
- data/eitil_core/lib/eitil_core/application_record/all_associations.rb +16 -0
- data/eitil_core/lib/eitil_core/application_record/find_by_like.rb +15 -0
- data/eitil_core/lib/eitil_core/application_record/where_like.rb +15 -0
- data/eitil_core/lib/eitil_core/application_record.rb +4 -0
- data/eitil_core/lib/eitil_core/argument_helpers/all_args_to_ivars.rb +12 -0
- data/eitil_core/lib/eitil_core/argument_helpers/all_kwargs_to_ivars.rb +12 -0
- data/eitil_core/lib/eitil_core/argument_helpers/args_to_ivars.rb +12 -0
- data/eitil_core/lib/eitil_core/argument_helpers.rb +5 -0
- data/eitil_core/lib/eitil_core/concerns/include_concerns_of.rb +15 -0
- data/eitil_core/lib/eitil_core/concerns.rb +2 -0
- data/eitil_core/lib/eitil_core/datetime/prettify.rb +10 -0
- data/eitil_core/lib/eitil_core/datetime.rb +2 -0
- data/eitil_core/lib/eitil_core/errors/raise_error.rb +11 -0
- data/eitil_core/lib/eitil_core/errors.rb +2 -0
- data/eitil_core/lib/eitil_core/float/safe_to_i.rb +9 -0
- data/eitil_core/lib/eitil_core/float.rb +2 -0
- data/eitil_core/lib/eitil_core/hash/auto_dig.rb +17 -0
- data/eitil_core/lib/eitil_core/hash.rb +2 -0
- data/eitil_core/lib/eitil_core/lookups/all_methods.rb +32 -0
- data/eitil_core/lib/eitil_core/lookups.rb +2 -0
- data/eitil_core/lib/eitil_core/railtie.rb +37 -0
- data/eitil_core/lib/eitil_core/safe_executions/safe_call.rb +12 -0
- data/eitil_core/lib/eitil_core/safe_executions/safe_send.rb +12 -0
- data/eitil_core/lib/eitil_core/safe_executions.rb +3 -0
- data/eitil_core/lib/eitil_core/setters/set_ivars.rb +12 -0
- data/eitil_core/lib/eitil_core/setters.rb +2 -0
- data/eitil_core/lib/eitil_core/type_checkers/is_num_or_nan.rb +96 -0
- data/eitil_core/lib/eitil_core/type_checkers.rb +2 -0
- data/eitil_core/lib/eitil_core/validations/run_validations.rb +10 -0
- data/eitil_core/lib/eitil_core/validations.rb +2 -0
- data/eitil_core/lib/eitil_core.rb +24 -0
- data/eitil_integrate/README.md +8 -0
- data/eitil_integrate/lib/eitil_integrate/railtie.rb +10 -0
- data/eitil_integrate/lib/eitil_integrate.rb +0 -0
- data/eitil_store/README.md +16 -0
- data/eitil_store/lib/eitil_store/railtie.rb +10 -0
- data/eitil_store/lib/eitil_store/regex/regex.rb +41 -0
- data/eitil_store/lib/eitil_store/regex.rb +4 -0
- data/eitil_store/lib/eitil_store.rb +4 -0
- data/eitil_support/README.md +78 -0
- data/eitil_support/lib/eitil_support/directory/lookups.rb +23 -0
- data/eitil_support/lib/eitil_support/directory.rb +2 -0
- data/eitil_support/lib/eitil_support/railtie.rb +10 -0
- data/eitil_support/lib/eitil_support/stacktrace/audit.rb +15 -0
- data/eitil_support/lib/eitil_support/stacktrace/call.rb +17 -0
- data/eitil_support/lib/eitil_support/stacktrace/stack.rb +28 -0
- data/eitil_support/lib/eitil_support/stacktrace.rb +4 -0
- data/eitil_support/lib/eitil_support.rb +5 -0
- data/eitil_wrapper/README.md +181 -0
- data/eitil_wrapper/lib/eitil_wrapper/decorators/application_decorator.rb +19 -0
- data/eitil_wrapper/lib/eitil_wrapper/decorators/controller_decorator.rb +60 -0
- data/eitil_wrapper/lib/eitil_wrapper/decorators.rb +3 -0
- data/eitil_wrapper/lib/eitil_wrapper/jobs/new_job.rb +34 -0
- data/eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb +37 -0
- data/eitil_wrapper/lib/eitil_wrapper/jobs/single_method_job.rb +8 -0
- data/eitil_wrapper/lib/eitil_wrapper/jobs.rb +4 -0
- data/eitil_wrapper/lib/eitil_wrapper/railtie.rb +49 -0
- data/eitil_wrapper/lib/eitil_wrapper/routes/extended_resources.rb +40 -0
- data/eitil_wrapper/lib/eitil_wrapper/routes.rb +2 -0
- data/eitil_wrapper/lib/eitil_wrapper/scopes/default_scopes.rb +80 -0
- data/eitil_wrapper/lib/eitil_wrapper/scopes.rb +2 -0
- data/eitil_wrapper/lib/eitil_wrapper.rb +7 -0
- data/lib/eitil/all.rb +18 -0
- data/lib/eitil/engine.rb +38 -0
- data/lib/eitil/railtie.rb +6 -0
- data/lib/eitil/version.rb +5 -0
- data/lib/eitil.rb +6 -0
- data/lib/tasks/eitil_tasks.rake +4 -0
- metadata +72 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 838e2414fac15c66b76d95da3fecd112e366bf9b860b6c2b4647efd7907fc92b
|
|
4
|
+
data.tar.gz: b4d80aab7d63d69522749d958673acee64764bb986421e0165a7804ef1eb0cfd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 454ba3ec3f1dc1538651ac29b6ca4423614e8d923c4111aadaa0e3f646e3d539cb78326989f699f9d4eaafeb0cd2357b04e92eaa0840b5680f4c2650bed46e84
|
|
7
|
+
data.tar.gz: 7531ed1078d5416180aa02fd9f1eeaf366787e4fbe7d05d4580d0e23308b8a9caadc5e4f7fd25c0fa1e3dbae2dfae6ff20b9b8e86d39c6be87cb14b19ca051f9
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
# EitilCore
|
|
5
|
+
|
|
6
|
+
EitilCore extends the core classes of Ruby and Rails.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## ApplicationController
|
|
10
|
+
|
|
11
|
+
```ruby
|
|
12
|
+
|
|
13
|
+
require "eitil_core/application_controller"
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
```ruby
|
|
18
|
+
# require "eitil_core/application_controller/slice_params"
|
|
19
|
+
|
|
20
|
+
slice_params(*args)
|
|
21
|
+
# slices request params, converts them to JSON and symbolizes the keys
|
|
22
|
+
# call as: slice_params :id, :user
|
|
23
|
+
# => { id: 1, user: 69 }
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
## ApplicationRecord
|
|
28
|
+
|
|
29
|
+
```ruby
|
|
30
|
+
|
|
31
|
+
require "eitil_core/application_controller"
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```ruby
|
|
36
|
+
# require "eitil_core/application_record/find_by_like"
|
|
37
|
+
|
|
38
|
+
self.find_by_like(_hash)
|
|
39
|
+
# runs .find_by with your string field made into a wildcard and case insensitive
|
|
40
|
+
# call as: User.find_by_like(name: 'jurriaan')
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
```ruby
|
|
44
|
+
# require "eitil_core/application_record/where_like"
|
|
45
|
+
|
|
46
|
+
self.where_like(_hash)
|
|
47
|
+
# runs .where with your string field made into a wildcard and case insensitive
|
|
48
|
+
# call as: User.where_like(name: 'jurriaan')
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```ruby
|
|
52
|
+
# require "eitil_core/application_record/all_associations"
|
|
53
|
+
|
|
54
|
+
self.all_associations
|
|
55
|
+
# returns all associations for a given model
|
|
56
|
+
# call as: Environment.all_associations
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## ArgumentHelpers
|
|
61
|
+
|
|
62
|
+
```ruby
|
|
63
|
+
|
|
64
|
+
require "eitil_core/arugment_helpers"
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
```ruby
|
|
70
|
+
# require "eitil_core/argument_helpers/all_args_to_ivars"
|
|
71
|
+
|
|
72
|
+
all_args_to_ivars(binding)
|
|
73
|
+
# sets all keywords arguments of the method's local binding to instance variables
|
|
74
|
+
# call as: all_args_to_ivars binding
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
```ruby
|
|
79
|
+
# require "eitil_core/argument_helpers/args_to_ivars"
|
|
80
|
+
|
|
81
|
+
args_to_ivars(binding, *local_vars)
|
|
82
|
+
# sets specified keywords arguments of the method's local binding to instance variables
|
|
83
|
+
# call as: all_args_to_ivars binding :user_id, :user_name
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
```ruby
|
|
88
|
+
# require "eitil_core/argument_helpers/all_kwargs_to_ivars"
|
|
89
|
+
|
|
90
|
+
all_kwargs_to_ivars(local_binding, namespace= :kwargs)
|
|
91
|
+
# sets the method's **kwargs argument to instance variables, with each key as the ivar's "@#{name}" and the value as its value
|
|
92
|
+
# call as: kwargs_to_ivars binding
|
|
93
|
+
# the keywords container name can be overwritten, e.g. the common :attributes
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
## Concerns
|
|
98
|
+
|
|
99
|
+
```ruby
|
|
100
|
+
|
|
101
|
+
require "eitil_core/concerns"
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
```ruby
|
|
106
|
+
# require "eitil_core/concerns/include_concerns_of"
|
|
107
|
+
|
|
108
|
+
include_concerns_of(*directories, namespace: nil)
|
|
109
|
+
# includes models/concerns/{directories}/* if no namespace if given, or all concerns within the given namespace
|
|
110
|
+
# call as: include_concerns_of :user, :mail
|
|
111
|
+
# => includes all modules of models/concerns/user/* and models/oncerns/mail/*
|
|
112
|
+
# or call as: include_concerns_of :request_service, namespace: Eivid::Concerns
|
|
113
|
+
# tip: call Class.included_modules to view all included modules
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
## DateTime
|
|
118
|
+
|
|
119
|
+
```ruby
|
|
120
|
+
|
|
121
|
+
require "eitil_core/datetime"
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```ruby
|
|
126
|
+
# require "eitil_core/datetime/prettify"
|
|
127
|
+
|
|
128
|
+
prettify
|
|
129
|
+
# formats DateTime instances into a pretty, simple and filename friendly format
|
|
130
|
+
# call as: DateTime.now.prettify
|
|
131
|
+
# => "2021-04-21.17:51:42"
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
## Errors
|
|
136
|
+
|
|
137
|
+
```ruby
|
|
138
|
+
|
|
139
|
+
require "eitil_core/errors"
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
```ruby
|
|
144
|
+
# require "eitil_core/errors/raise_error"
|
|
145
|
+
|
|
146
|
+
raise_error(_class_name, message = nil)
|
|
147
|
+
# creates an error class if currently undefined, inheriting from StandardError, and raises the error with the given message
|
|
148
|
+
# call as: raise_error "SomethingWentWrongError", "check your code, bro!"
|
|
149
|
+
# => SomethingWentWrongError (check your code, bro!)
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
## Float
|
|
154
|
+
|
|
155
|
+
```ruby
|
|
156
|
+
|
|
157
|
+
require "eitil_core/float"
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
```ruby
|
|
162
|
+
# require "eitil_core/float/safe_to_i"
|
|
163
|
+
|
|
164
|
+
safe_to_i
|
|
165
|
+
# converts a float to an integer, only when no decimal values are lost.
|
|
166
|
+
# 8.00.safe_to_i returns 8 (Integer)
|
|
167
|
+
# 8.88.safe_to_i returns 8.88 (Float)
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
## Hash
|
|
172
|
+
|
|
173
|
+
```ruby
|
|
174
|
+
|
|
175
|
+
require "eitil_core/hash"
|
|
176
|
+
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
```ruby
|
|
180
|
+
# require "eitil_core/hash/auto_dig"
|
|
181
|
+
|
|
182
|
+
auto_dig(_hash = self, _key)
|
|
183
|
+
# finds the value for the given hash key, irregardless of the amount of nested layers
|
|
184
|
+
# call as: {a: 1, b: {c: 2, d: {e: 3}}}.auto_dig :e
|
|
185
|
+
# => 3
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
## Lookups
|
|
190
|
+
|
|
191
|
+
```ruby
|
|
192
|
+
|
|
193
|
+
require "eitil_core/lookups"
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
```ruby
|
|
198
|
+
# require "eitil_core/lookups/all_methods"
|
|
199
|
+
|
|
200
|
+
all_methods(include_ancestors = true, grep: nil)
|
|
201
|
+
# pretty prints all methods for any object, grouped per type (e.g. private_methods, public_instance_methods)
|
|
202
|
+
# call as: Class.all_methods false, grep: /json/
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
## SafeExecutions
|
|
207
|
+
|
|
208
|
+
```ruby
|
|
209
|
+
|
|
210
|
+
require "eitil_core/safe_executions"
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
```ruby
|
|
215
|
+
# require "eitil_core/safe_executions/safe_send"
|
|
216
|
+
|
|
217
|
+
safe_send(method, *args, return_value: nil)
|
|
218
|
+
# a safe version of .send, which in case of an error rescues and returns return_value (default: nil) instead
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
```ruby
|
|
222
|
+
# require "eitil_core/safe_executions/safe_call"
|
|
223
|
+
|
|
224
|
+
safe_call(*args, return_value: nil, &block)
|
|
225
|
+
# a safe version of .call, which in case of an error rescues and returns return_value (default: nil) instead
|
|
226
|
+
# accepts either a proc argument or a block
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
## Setters
|
|
231
|
+
|
|
232
|
+
```ruby
|
|
233
|
+
|
|
234
|
+
require "eitil_core/setters"
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
```ruby
|
|
239
|
+
# require "eitil_core/setters/set_ivars"
|
|
240
|
+
|
|
241
|
+
set_ivars(*ivars)
|
|
242
|
+
# sets instance variables named @"#{ivar}" for each symbol passed, by invoking send("set_#{ivar}")
|
|
243
|
+
# e.g. set_ivars(:user) sets @user with the value returned by your local method .set_user
|
|
244
|
+
# call as: set_ivars :user, :authentication, :connection
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
## TypeCheckers
|
|
249
|
+
|
|
250
|
+
```ruby
|
|
251
|
+
|
|
252
|
+
require "eitil_core/type_checkers"
|
|
253
|
+
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
```ruby
|
|
257
|
+
# require "eitil_core/type_checkers/is_num_or_nan"
|
|
258
|
+
|
|
259
|
+
is_num?
|
|
260
|
+
# returns true if a string matches the Rubinius source code regex for strings and integers, false otherwise
|
|
261
|
+
# comes in handy since ruby plays it safe on string to number conversion ('aaa'.to_f returns 0.0, thus is valid)
|
|
262
|
+
# this method is also implemented for all other classes, such as Integer, Float, NilClass, TrueClass, Hash and so on...
|
|
263
|
+
|
|
264
|
+
is_nan?
|
|
265
|
+
# returns true if a string does NOT match the Rubinius source code regex for strings and integers, false otherwise
|
|
266
|
+
# comes in handy since ruby plays it safe on string to number conversion ('aaa'.to_f returns 0.0, thus is valid)
|
|
267
|
+
# this method is also implemented for all other classes, such as Integer, Float, NilClass, TrueClass, Hash and so on...
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
## Validations
|
|
272
|
+
|
|
273
|
+
```ruby
|
|
274
|
+
|
|
275
|
+
require "eitil_core/validations"
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
```ruby
|
|
280
|
+
# require "eitil_core/validations/run_validations"
|
|
281
|
+
|
|
282
|
+
run_validations(*validations)
|
|
283
|
+
# calls a method for each argument, namespaced as "validate_#{argument}"
|
|
284
|
+
# call as: run_validations(:single_receipt, :single_order)
|
|
285
|
+
# => calls #validate_single_receipt and #validate_single_order
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
|
|
2
|
+
# require "eitil_core/application_record/all_associations"
|
|
3
|
+
|
|
4
|
+
module EitilCore
|
|
5
|
+
module ApplicationRecord
|
|
6
|
+
module AllAssociations
|
|
7
|
+
|
|
8
|
+
def all_associations
|
|
9
|
+
reflect_on_all_associations.map do |assoc|
|
|
10
|
+
{ assoc.name => assoc.association_class.to_s.demodulize }
|
|
11
|
+
end.inject &:merge
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
|
|
2
|
+
# require "eitil_core/application_record/find_by_like"
|
|
3
|
+
|
|
4
|
+
module EitilCore
|
|
5
|
+
module ApplicationRecord
|
|
6
|
+
module FindByLike
|
|
7
|
+
|
|
8
|
+
def find_by_like(_hash)
|
|
9
|
+
column, like = _hash.first
|
|
10
|
+
find_by("LOWER(#{column}) LIKE ?", "%#{like.downcase}%")
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
|
|
2
|
+
# require "eitil_core/application_record/where_like"
|
|
3
|
+
|
|
4
|
+
module EitilCore
|
|
5
|
+
module ApplicationRecord
|
|
6
|
+
module WhereLike
|
|
7
|
+
|
|
8
|
+
def where_like(_hash)
|
|
9
|
+
column, like = _hash.first
|
|
10
|
+
where("LOWER(#{column}) LIKE ?", "%#{like.downcase}%")
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
# require "eitil_core/argument_helpers/all_args_to_ivars"
|
|
3
|
+
|
|
4
|
+
Kernel.module_eval do
|
|
5
|
+
|
|
6
|
+
def all_args_to_ivars(local_binding)
|
|
7
|
+
local_binding.local_variables.each do |lvar|
|
|
8
|
+
instance_variable_set("@#{lvar}", local_binding.local_variable_get(lvar))
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
# require "eitil_core/argument_helpers/all_kwargs_to_ivars"
|
|
3
|
+
|
|
4
|
+
Kernel.module_eval do
|
|
5
|
+
|
|
6
|
+
def all_kwargs_to_ivars(local_binding, namespace=:kwargs)
|
|
7
|
+
local_binding.local_variable_get(namespace).each do |name, value|
|
|
8
|
+
instance_variable_set "@#{name}", value
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
# require "eitil_core/argument_helpers/args_to_ivars"
|
|
3
|
+
|
|
4
|
+
Kernel.module_eval do
|
|
5
|
+
|
|
6
|
+
def args_to_ivars(local_binding, *local_vars)
|
|
7
|
+
local_vars.each do |lvar|
|
|
8
|
+
instance_variable_set("@#{lvar}", local_binding.local_variable_get(lvar))
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
|
|
2
|
+
# require "eitil_core/concerns/include_concerns_of"
|
|
3
|
+
|
|
4
|
+
class Module
|
|
5
|
+
|
|
6
|
+
def include_concerns_of(*directories, namespace: nil)
|
|
7
|
+
directories.map! { |dir| "#{namespace}::#{dir.to_s.camelcase}" }
|
|
8
|
+
|
|
9
|
+
directories.each do |dir|
|
|
10
|
+
konstants = dir.constantize.constants(false)
|
|
11
|
+
konstants.each { |kon| include(const_get "#{dir}::#{kon}") }
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
|
|
2
|
+
# require "eitil_core/errors/raise_error"
|
|
3
|
+
|
|
4
|
+
Kernel.module_eval do
|
|
5
|
+
|
|
6
|
+
def raise_error(_class_name, message = nil)
|
|
7
|
+
Object.const_set(_class_name, Class.new(StandardError)) unless Object.const_defined?(_class_name)
|
|
8
|
+
raise _class_name.constantize.new message
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
# require "eitil_core/hash/auto_dig"
|
|
3
|
+
|
|
4
|
+
class Hash
|
|
5
|
+
|
|
6
|
+
def auto_dig(_hash = self, _key)
|
|
7
|
+
return _hash[_key] if _hash.fetch(_key, false)
|
|
8
|
+
|
|
9
|
+
_hash.keys.each do |k|
|
|
10
|
+
answer = auto_dig(_hash[k], _key) if _hash[k].is_a? Hash
|
|
11
|
+
return answer if answer
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
nil
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
# require "eitil_core/lookups/all_methods"
|
|
3
|
+
|
|
4
|
+
require "awesome_print"
|
|
5
|
+
|
|
6
|
+
class Object
|
|
7
|
+
|
|
8
|
+
def all_methods(include_ancestors = true, grep: nil)
|
|
9
|
+
|
|
10
|
+
_introspection_methods = %i$
|
|
11
|
+
methods
|
|
12
|
+
singleton_methods
|
|
13
|
+
instance_methods
|
|
14
|
+
private_methods
|
|
15
|
+
public_methods
|
|
16
|
+
protected_methods
|
|
17
|
+
private_instance_methods
|
|
18
|
+
public_instance_methods
|
|
19
|
+
protected_instance_methods
|
|
20
|
+
$
|
|
21
|
+
|
|
22
|
+
_introspection_methods.map! do |_m|
|
|
23
|
+
_methods = safe_send _m, include_ancestors
|
|
24
|
+
_methods = grep ? _methods&.grep(grep) : _methods
|
|
25
|
+
{ _m => _methods }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
ap _introspection_methods.inject &:merge
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
|
|
2
|
+
require "rails"
|
|
3
|
+
require "eitil_core"
|
|
4
|
+
|
|
5
|
+
module EitilCore
|
|
6
|
+
|
|
7
|
+
class Railtie < Rails::Railtie
|
|
8
|
+
|
|
9
|
+
initializer "my_railtie.configure_rails_initialization", options: :after do |app|
|
|
10
|
+
|
|
11
|
+
# Dynamic dispatching after initialization of Rails classes.
|
|
12
|
+
|
|
13
|
+
# ApplicationRecord
|
|
14
|
+
|
|
15
|
+
if Object.const_defined?('EitilCore::ApplicationRecord::WhereLike')
|
|
16
|
+
::ApplicationRecord.send(:extend, EitilCore::ApplicationRecord::WhereLike)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
if Object.const_defined?('EitilCore::ApplicationRecord::FindByLike')
|
|
20
|
+
::ApplicationRecord.send(:extend, EitilCore::ApplicationRecord::FindByLike)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
if Object.const_defined?('EitilCore::ApplicationRecord::AllAssociations')
|
|
24
|
+
::ApplicationRecord.send(:extend, EitilCore::ApplicationRecord::AllAssociations)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# ApplicationController
|
|
28
|
+
|
|
29
|
+
if Object.const_defined?('EitilCore::ApplicationController::SliceParams')
|
|
30
|
+
::ActionController::API.send(:include, EitilCore::ApplicationController::SliceParams)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|