eitil 1.0.1.e.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. checksums.yaml +4 -4
  2. data/eitil_core/README.md +288 -0
  3. data/eitil_core/lib/eitil_core.rb +24 -0
  4. data/eitil_core/lib/eitil_core/application_controller.rb +2 -0
  5. data/eitil_core/lib/eitil_core/application_controller/slice_params.rb +14 -0
  6. data/eitil_core/lib/eitil_core/application_record.rb +4 -0
  7. data/eitil_core/lib/eitil_core/application_record/all_associations.rb +16 -0
  8. data/eitil_core/lib/eitil_core/application_record/find_by_like.rb +15 -0
  9. data/eitil_core/lib/eitil_core/application_record/where_like.rb +15 -0
  10. data/eitil_core/lib/eitil_core/argument_helpers.rb +5 -0
  11. data/eitil_core/lib/eitil_core/argument_helpers/all_args_to_ivars.rb +12 -0
  12. data/eitil_core/lib/eitil_core/argument_helpers/all_kwargs_to_ivars.rb +12 -0
  13. data/eitil_core/lib/eitil_core/argument_helpers/args_to_ivars.rb +12 -0
  14. data/eitil_core/lib/eitil_core/concerns.rb +2 -0
  15. data/eitil_core/lib/eitil_core/concerns/include_concerns_of.rb +15 -0
  16. data/eitil_core/lib/eitil_core/datetime.rb +2 -0
  17. data/eitil_core/lib/eitil_core/datetime/prettify.rb +10 -0
  18. data/eitil_core/lib/eitil_core/errors.rb +2 -0
  19. data/eitil_core/lib/eitil_core/errors/raise_error.rb +11 -0
  20. data/eitil_core/lib/eitil_core/float.rb +2 -0
  21. data/eitil_core/lib/eitil_core/float/safe_to_i.rb +9 -0
  22. data/eitil_core/lib/eitil_core/hash.rb +2 -0
  23. data/eitil_core/lib/eitil_core/hash/auto_dig.rb +17 -0
  24. data/eitil_core/lib/eitil_core/lookups.rb +2 -0
  25. data/eitil_core/lib/eitil_core/lookups/all_methods.rb +32 -0
  26. data/eitil_core/lib/eitil_core/railtie.rb +37 -0
  27. data/eitil_core/lib/eitil_core/safe_executions.rb +3 -0
  28. data/eitil_core/lib/eitil_core/safe_executions/safe_call.rb +12 -0
  29. data/eitil_core/lib/eitil_core/safe_executions/safe_send.rb +12 -0
  30. data/eitil_core/lib/eitil_core/setters.rb +2 -0
  31. data/eitil_core/lib/eitil_core/setters/set_ivars.rb +12 -0
  32. data/eitil_core/lib/eitil_core/type_checkers.rb +2 -0
  33. data/eitil_core/lib/eitil_core/type_checkers/is_num_or_nan.rb +96 -0
  34. data/eitil_core/lib/eitil_core/validations.rb +2 -0
  35. data/eitil_core/lib/eitil_core/validations/run_validations.rb +10 -0
  36. data/eitil_integrate/README.md +8 -0
  37. data/eitil_integrate/lib/eitil_integrate.rb +0 -0
  38. data/eitil_integrate/lib/eitil_integrate/railtie.rb +10 -0
  39. data/eitil_store/README.md +16 -0
  40. data/eitil_store/lib/eitil_store.rb +4 -0
  41. data/eitil_store/lib/eitil_store/railtie.rb +10 -0
  42. data/eitil_store/lib/eitil_store/regex.rb +4 -0
  43. data/eitil_store/lib/eitil_store/regex/regex.rb +41 -0
  44. data/eitil_support/README.md +78 -0
  45. data/eitil_support/lib/eitil_support.rb +5 -0
  46. data/eitil_support/lib/eitil_support/directory.rb +2 -0
  47. data/eitil_support/lib/eitil_support/directory/lookups.rb +23 -0
  48. data/eitil_support/lib/eitil_support/railtie.rb +10 -0
  49. data/eitil_support/lib/eitil_support/stacktrace.rb +4 -0
  50. data/eitil_support/lib/eitil_support/stacktrace/audit.rb +15 -0
  51. data/eitil_support/lib/eitil_support/stacktrace/call.rb +17 -0
  52. data/eitil_support/lib/eitil_support/stacktrace/stack.rb +28 -0
  53. data/eitil_wrapper/README.md +181 -0
  54. data/eitil_wrapper/lib/eitil_wrapper.rb +7 -0
  55. data/eitil_wrapper/lib/eitil_wrapper/decorators.rb +3 -0
  56. data/eitil_wrapper/lib/eitil_wrapper/decorators/application_decorator.rb +19 -0
  57. data/eitil_wrapper/lib/eitil_wrapper/decorators/controller_decorator.rb +60 -0
  58. data/eitil_wrapper/lib/eitil_wrapper/jobs.rb +4 -0
  59. data/eitil_wrapper/lib/eitil_wrapper/jobs/new_job.rb +34 -0
  60. data/eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb +37 -0
  61. data/eitil_wrapper/lib/eitil_wrapper/jobs/single_method_job.rb +8 -0
  62. data/eitil_wrapper/lib/eitil_wrapper/railtie.rb +49 -0
  63. data/eitil_wrapper/lib/eitil_wrapper/routes.rb +2 -0
  64. data/eitil_wrapper/lib/eitil_wrapper/routes/extended_resources.rb +40 -0
  65. data/eitil_wrapper/lib/eitil_wrapper/scopes.rb +2 -0
  66. data/eitil_wrapper/lib/eitil_wrapper/scopes/default_scopes.rb +80 -0
  67. data/lib/eitil/version.rb +1 -1
  68. metadata +69 -4
@@ -0,0 +1,2 @@
1
+
2
+ require "eitil_core/concerns/include_concerns_of"
@@ -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,2 @@
1
+
2
+ require "eitil_core/datetime/prettify"
@@ -0,0 +1,10 @@
1
+
2
+ # require "eitil_core/datetime/prettify"
3
+
4
+ class DateTime
5
+
6
+ def prettify
7
+ strftime "%Y-%m-%d.%H:%M:%S"
8
+ end
9
+
10
+ end
@@ -0,0 +1,2 @@
1
+
2
+ require "eitil_core/errors/raise_error"
@@ -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,2 @@
1
+
2
+ require "eitil_core/float/safe_to_i"
@@ -0,0 +1,9 @@
1
+ class Float
2
+
3
+ # converts a float to an integer, only when no decimal values are lost.
4
+
5
+ def safe_to_i
6
+ self == self.to_i ? self.to_i : self
7
+ end
8
+
9
+ end
@@ -0,0 +1,2 @@
1
+
2
+ require "eitil_core/hash/auto_dig"
@@ -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,2 @@
1
+
2
+ require "eitil_core/lookups/all_methods"
@@ -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
@@ -0,0 +1,3 @@
1
+
2
+ require "eitil_core/safe_executions/safe_send"
3
+ require "eitil_core/safe_executions/safe_call"
@@ -0,0 +1,12 @@
1
+
2
+ # require "eitil_core/safe_executions/safe_call"
3
+
4
+ Kernel.module_eval do
5
+
6
+ def safe_call(*args, return_value: nil, &block)
7
+ block.call self, *args
8
+ rescue
9
+ return_value
10
+ end
11
+
12
+ end
@@ -0,0 +1,12 @@
1
+
2
+ # require "eitil_core/safe_executions/safe_send"
3
+
4
+ Kernel.module_eval do
5
+
6
+ def safe_send(method, *args, return_value: nil)
7
+ self.send method, *args
8
+ rescue
9
+ return_value
10
+ end
11
+
12
+ end
@@ -0,0 +1,2 @@
1
+
2
+ require "eitil_core/setters/set_ivars"
@@ -0,0 +1,12 @@
1
+
2
+ # require "eitil_core/setters/set_ivars"
3
+
4
+ Kernel.module_eval do
5
+
6
+ def set_ivars(*ivars)
7
+ ivars.each do |ivar|
8
+ instance_variable_set("@#{ivar}", send("set_#{ivar}"))
9
+ end
10
+ end
11
+
12
+ end
@@ -0,0 +1,2 @@
1
+
2
+ require "eitil_core/type_checkers/is_num_or_nan"
@@ -0,0 +1,96 @@
1
+
2
+ # require "eitil_core/type_checkers/is_num_or_nan"
3
+
4
+ require "eitil_store/regex/regex"
5
+
6
+ class String
7
+
8
+ def is_nan?
9
+ self !~ EitilStore::Regex::IsNum
10
+ end
11
+
12
+ def is_num?
13
+ !is_nan?
14
+ end
15
+
16
+ end
17
+
18
+ # Descending classes which are always numeric
19
+
20
+ class Numeric
21
+
22
+ def is_nan?
23
+ false
24
+ end
25
+
26
+ def is_num?
27
+ true
28
+ end
29
+
30
+ end
31
+
32
+ # Classes which are never numeric
33
+
34
+ class NilClass
35
+
36
+ def is_nan?
37
+ true
38
+ end
39
+
40
+ def is_num?
41
+ false
42
+ end
43
+
44
+ end
45
+
46
+
47
+ class TrueClass
48
+
49
+ def is_nan?
50
+ true
51
+ end
52
+
53
+ def is_num?
54
+ false
55
+ end
56
+
57
+ end
58
+
59
+
60
+ class FalseClass
61
+
62
+ def is_nan?
63
+ true
64
+ end
65
+
66
+ def is_num?
67
+ false
68
+ end
69
+
70
+ end
71
+
72
+
73
+ class Hash
74
+
75
+ def is_nan?
76
+ true
77
+ end
78
+
79
+ def is_num?
80
+ false
81
+ end
82
+
83
+ end
84
+
85
+
86
+ class Array
87
+
88
+ def is_nan?
89
+ true
90
+ end
91
+
92
+ def is_num?
93
+ false
94
+ end
95
+
96
+ end
@@ -0,0 +1,2 @@
1
+
2
+ require "eitil_core/validations/run_validations"
@@ -0,0 +1,10 @@
1
+
2
+ # require "eitil_core/validations/run_validations"
3
+
4
+ Kernel.module_eval do
5
+
6
+ def run_validations(*validations)
7
+ validations.each { |v| eval "validate_#{v}" }
8
+ end
9
+
10
+ end
@@ -0,0 +1,8 @@
1
+
2
+
3
+
4
+ # EitilIntegrate
5
+
6
+ EitilIntegrate provides seamless integrations with select gems and API's, through helper methods stored in PORO's.
7
+
8
+
File without changes
@@ -0,0 +1,10 @@
1
+
2
+ require "rails"
3
+ require "eitil_integrate"
4
+
5
+ module EitilIntegrate
6
+
7
+ class Railtie < Rails::Railtie
8
+ end
9
+
10
+ end
@@ -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,4 @@
1
+
2
+ # require "eitil_store"
3
+
4
+ require "eitil_store/regex"
@@ -0,0 +1,10 @@
1
+
2
+ require "rails"
3
+ require "eitil_store"
4
+
5
+ module EitilStore
6
+
7
+ class Railtie < Rails::Railtie
8
+ end
9
+
10
+ end
@@ -0,0 +1,4 @@
1
+
2
+ # require "eitil_store/regex"
3
+
4
+ require "eitil_store/regex/regex"
@@ -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