eitil 0.3.10 → 1.0.1.e.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +39 -331
- data/eitil_core/README.md +288 -0
- data/eitil_core/lib/eitil_core.rb +24 -0
- data/eitil_core/lib/eitil_core/application_controller.rb +2 -0
- data/eitil_core/lib/eitil_core/application_controller/slice_params.rb +14 -0
- data/eitil_core/lib/eitil_core/application_record.rb +4 -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/argument_helpers.rb +5 -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/concerns.rb +2 -0
- data/{config/initializers/monkeys/module.rb → eitil_core/lib/eitil_core/concerns/include_concerns_of.rb} +3 -0
- data/eitil_core/lib/eitil_core/datetime.rb +2 -0
- data/{config/initializers/monkeys/date_time.rb → eitil_core/lib/eitil_core/datetime/prettify.rb} +3 -0
- data/eitil_core/lib/eitil_core/errors.rb +2 -0
- data/eitil_core/lib/eitil_core/errors/raise_error.rb +11 -0
- data/eitil_core/lib/eitil_core/float.rb +2 -0
- data/{config/initializers/monkeys/float.rb → eitil_core/lib/eitil_core/float/safe_to_i.rb} +0 -0
- data/eitil_core/lib/eitil_core/hash.rb +2 -0
- data/{config/initializers/monkeys/hash.rb → eitil_core/lib/eitil_core/hash/auto_dig.rb} +3 -0
- data/eitil_core/lib/eitil_core/lookups.rb +2 -0
- data/{config/initializers/monkeys/object.rb → eitil_core/lib/eitil_core/lookups/all_methods.rb} +3 -0
- data/eitil_core/lib/eitil_core/railtie.rb +37 -0
- data/eitil_core/lib/eitil_core/safe_executions.rb +3 -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/setters.rb +2 -0
- data/eitil_core/lib/eitil_core/setters/set_ivars.rb +12 -0
- data/eitil_core/lib/eitil_core/type_checkers.rb +2 -0
- data/{config/initializers/monkeys/string.rb → eitil_core/lib/eitil_core/type_checkers/is_num_or_nan.rb} +5 -5
- data/eitil_core/lib/eitil_core/validations.rb +2 -0
- data/eitil_core/lib/eitil_core/validations/run_validations.rb +10 -0
- data/eitil_integrate/README.md +8 -0
- data/eitil_integrate/lib/eitil_integrate.rb +0 -0
- data/eitil_integrate/lib/eitil_integrate/railtie.rb +10 -0
- data/eitil_store/README.md +16 -0
- data/eitil_store/lib/eitil_store.rb +4 -0
- data/eitil_store/lib/eitil_store/railtie.rb +10 -0
- data/eitil_store/lib/eitil_store/regex.rb +4 -0
- data/eitil_store/lib/eitil_store/regex/regex.rb +41 -0
- data/eitil_support/README.md +78 -0
- data/eitil_support/lib/eitil_support.rb +5 -0
- data/eitil_support/lib/eitil_support/directory.rb +2 -0
- data/eitil_support/lib/eitil_support/directory/lookups.rb +23 -0
- data/eitil_support/lib/eitil_support/railtie.rb +10 -0
- data/eitil_support/lib/eitil_support/stacktrace.rb +4 -0
- data/{app/models/eitil/stack_trace → eitil_support/lib/eitil_support/stacktrace}/audit.rb +2 -2
- data/{app/models/eitil/stack_trace → eitil_support/lib/eitil_support/stacktrace}/call.rb +1 -1
- data/{app/models/eitil/stack_trace → eitil_support/lib/eitil_support/stacktrace}/stack.rb +2 -2
- data/eitil_wrapper/README.md +181 -0
- data/eitil_wrapper/lib/eitil_wrapper.rb +7 -0
- data/eitil_wrapper/lib/eitil_wrapper/decorators.rb +3 -0
- data/{config/initializers/wrappers → eitil_wrapper/lib/eitil_wrapper}/decorators/application_decorator.rb +1 -1
- data/eitil_wrapper/lib/eitil_wrapper/decorators/controller_decorator.rb +60 -0
- data/eitil_wrapper/lib/eitil_wrapper/jobs.rb +4 -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/railtie.rb +49 -0
- data/eitil_wrapper/lib/eitil_wrapper/routes.rb +2 -0
- data/{config/initializers/wrappers → eitil_wrapper/lib/eitil_wrapper}/routes/extended_resources.rb +2 -2
- data/eitil_wrapper/lib/eitil_wrapper/scopes.rb +2 -0
- data/eitil_wrapper/lib/eitil_wrapper/scopes/default_scopes.rb +80 -0
- data/lib/eitil.rb +1 -1
- data/lib/eitil/all.rb +18 -0
- data/lib/eitil/engine.rb +24 -0
- data/lib/eitil/railtie.rb +6 -0
- data/lib/eitil/version.rb +3 -1
- metadata +82 -34
- data/app/controllers/eitil/application_controller.rb +0 -4
- data/app/jobs/eitil/application_job.rb +0 -4
- data/app/mailers/eitil/application_mailer.rb +0 -6
- data/app/models/eitil/application_record.rb +0 -5
- data/config/initializers/modules/dir.rb +0 -21
- data/config/initializers/monkeys/application_controller.rb +0 -14
- data/config/initializers/monkeys/application_record.rb +0 -30
- data/config/initializers/monkeys/kernel.rb +0 -48
- data/config/initializers/wrappers/decorators/controller_decorator.rb +0 -63
- data/config/initializers/wrappers/jobs/active_job_macros.rb +0 -52
- data/config/initializers/wrappers/jobs/single_method_job.rb +0 -24
- data/config/initializers/wrappers/scopes/default_scopes.rb +0 -83
- data/config/routes.rb +0 -2
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
# require "eitil_core"
|
3
|
+
|
4
|
+
# core class patches
|
5
|
+
require "eitil_core/hash"
|
6
|
+
require "eitil_core/float"
|
7
|
+
require "eitil_core/datetime"
|
8
|
+
|
9
|
+
# multi class patches
|
10
|
+
require "eitil_core/type_checkers"
|
11
|
+
|
12
|
+
# rails class patches
|
13
|
+
require "eitil_core/application_record"
|
14
|
+
require "eitil_core/application_controller"
|
15
|
+
|
16
|
+
# helper patches
|
17
|
+
require "eitil_core/errors"
|
18
|
+
require "eitil_core/argument_helpers"
|
19
|
+
require "eitil_core/safe_executions"
|
20
|
+
require "eitil_core/setters"
|
21
|
+
require "eitil_core/validations"
|
22
|
+
require "eitil_core/lookups"
|
23
|
+
require "eitil_core/concerns"
|
24
|
+
|
@@ -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,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
|
File without changes
|
@@ -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
|
@@ -1,12 +1,12 @@
|
|
1
|
-
class String
|
2
1
|
|
3
|
-
|
4
|
-
|
2
|
+
# require "eitil_core/type_checkers/is_num_or_nan"
|
3
|
+
|
4
|
+
require "eitil_store/regex/regex"
|
5
5
|
|
6
|
-
|
6
|
+
class String
|
7
7
|
|
8
8
|
def is_nan?
|
9
|
-
self !~
|
9
|
+
self !~ EitilStore::Regex::IsNum
|
10
10
|
end
|
11
11
|
|
12
12
|
def is_num?
|
File without changes
|
@@ -0,0 +1,16 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
# EitilStore
|
5
|
+
|
6
|
+
EitilStore stores data in containers, such as Regexp instances.
|
7
|
+
|
8
|
+
|
9
|
+
## EitilSupport::Regex
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
|
13
|
+
require "eitil_store/regex"
|
14
|
+
|
15
|
+
```
|
16
|
+
Provides regular expressions which are of general use. To see which general expressions are available, see /eitil_store/regex/regex.rb
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# require "eitil_store/regex/regex"
|
2
|
+
|
3
|
+
module EitilStore
|
4
|
+
module Regex
|
5
|
+
|
6
|
+
# URL
|
7
|
+
Url = /(\A\z)|(\A(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?\z)/ix
|
8
|
+
|
9
|
+
# Domain
|
10
|
+
Domain = /(\A\z)|(\A[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?)?\z)/ix
|
11
|
+
|
12
|
+
# From the email regex research: http://fightingforalostcause.net/misc/2006/compare-email-regex.php
|
13
|
+
Email = /\A([\w\!\#\z\%\&\'\*\+\-\/\=\?\\A\`{\|\}\~]+\.)*[\w\+-]+@((((([a-z0-9]{1}[a-z0-9\-]{0,62}[a-z0-9]{1})|[a-z])\.)+[a-z]{2,6})|(\d{1,3}\.){3}\d{1,3}(\:\d{1,5})?)\z/i
|
14
|
+
|
15
|
+
# Validates a UUID as defined: http://en.wikipedia.org/wiki/Universally_unique_identifier
|
16
|
+
UUID = /\A(\h{32}|\h{8}-\h{4}-\h{4}-\h{4}-\h{12})\z/
|
17
|
+
|
18
|
+
# IsNum comes from the Rubinius source code and identifies both integers and floats correctly.
|
19
|
+
IsNum = /^\s*[+-]?((\d+_?)*\d+(\.(\d+_?)*\d+)?|\.(\d+_?)*\d+)(\s*|([eE][+-]?(\d+_?)*\d+)\s*)$/
|
20
|
+
|
21
|
+
# Validates Credit Card numbers, Checks if it contains 16 numbers in groups of 4 separated by -, space or nothing
|
22
|
+
CreditCard = /\A(\d{4}-){3}\d{4}\z|\A(\d{4}\s){3}\d{4}\z|\A\d{16}\z/
|
23
|
+
|
24
|
+
# MasterCard credit card
|
25
|
+
MasterCard = /\A5[1-5]\d{14}\z/
|
26
|
+
|
27
|
+
# Visa credit card
|
28
|
+
Visa = /\A4\d{15}\z/
|
29
|
+
|
30
|
+
# Source: http://snipplr.com/view/15322/iban-regex-all-ibans/
|
31
|
+
# You have to remove spaces or any separator character from the original field before use this regex
|
32
|
+
Iban = /[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[0-9]{7}([a-zA-Z0-9]?){0,16}/
|
33
|
+
|
34
|
+
# General postal code: validates a 5 digits postal code
|
35
|
+
GeneralPostalCode = /\A\d{5}\z/
|
36
|
+
|
37
|
+
# Validates US ZIP Code (basic and extended format)
|
38
|
+
ZIPCode = /\A(\d{5}\z)|(\d{5}-\d{4}\z)/
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|