eitil 1.0.1.e.2 → 1.0.3.e.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +0 -1
  3. data/eitil_core/README.md +344 -0
  4. data/eitil_core/lib/eitil_core.rb +24 -0
  5. data/eitil_core/lib/eitil_core/application_controller.rb +2 -0
  6. data/eitil_core/lib/eitil_core/application_controller/slice_params.rb +14 -0
  7. data/eitil_core/lib/eitil_core/application_record.rb +4 -0
  8. data/eitil_core/lib/eitil_core/application_record/all_associations.rb +16 -0
  9. data/eitil_core/lib/eitil_core/application_record/find_by_like.rb +15 -0
  10. data/eitil_core/lib/eitil_core/application_record/where_like.rb +15 -0
  11. data/eitil_core/lib/eitil_core/argument_helpers.rb +13 -0
  12. data/eitil_core/lib/eitil_core/argument_helpers/all_args_to_ivars.rb +12 -0
  13. data/eitil_core/lib/eitil_core/argument_helpers/all_args_to_ivars_bang.rb +15 -0
  14. data/eitil_core/lib/eitil_core/argument_helpers/all_kwargs_to_ivars.rb +12 -0
  15. data/eitil_core/lib/eitil_core/argument_helpers/all_kwargs_to_ivars_bang.rb +15 -0
  16. data/eitil_core/lib/eitil_core/argument_helpers/args_to_h.rb +15 -0
  17. data/eitil_core/lib/eitil_core/argument_helpers/args_to_h_bang.rb +17 -0
  18. data/eitil_core/lib/eitil_core/argument_helpers/args_to_ivars.rb +12 -0
  19. data/eitil_core/lib/eitil_core/argument_helpers/args_to_ivars_bang.rb +15 -0
  20. data/eitil_core/lib/eitil_core/concerns.rb +2 -0
  21. data/eitil_core/lib/eitil_core/concerns/include_concerns_of.rb +15 -0
  22. data/eitil_core/lib/eitil_core/datetime.rb +2 -0
  23. data/eitil_core/lib/eitil_core/datetime/prettify.rb +10 -0
  24. data/eitil_core/lib/eitil_core/errors.rb +2 -0
  25. data/eitil_core/lib/eitil_core/errors/raise_error.rb +11 -0
  26. data/eitil_core/lib/eitil_core/float.rb +2 -0
  27. data/eitil_core/lib/eitil_core/float/safe_to_i.rb +12 -0
  28. data/eitil_core/lib/eitil_core/hash.rb +2 -0
  29. data/eitil_core/lib/eitil_core/hash/auto_dig.rb +17 -0
  30. data/eitil_core/lib/eitil_core/lookups.rb +3 -0
  31. data/eitil_core/lib/eitil_core/lookups/all_methods.rb +32 -0
  32. data/eitil_core/lib/eitil_core/lookups/gem_path.rb +10 -0
  33. data/eitil_core/lib/eitil_core/railtie.rb +37 -0
  34. data/eitil_core/lib/eitil_core/safe_executions.rb +3 -0
  35. data/eitil_core/lib/eitil_core/safe_executions/safe_call.rb +12 -0
  36. data/eitil_core/lib/eitil_core/safe_executions/safe_send.rb +12 -0
  37. data/eitil_core/lib/eitil_core/setters.rb +2 -0
  38. data/eitil_core/lib/eitil_core/setters/set_ivars.rb +12 -0
  39. data/eitil_core/lib/eitil_core/type_checkers.rb +2 -0
  40. data/eitil_core/lib/eitil_core/type_checkers/is_num_or_nan.rb +96 -0
  41. data/eitil_core/lib/eitil_core/validations.rb +2 -0
  42. data/eitil_core/lib/eitil_core/validations/run_validations.rb +10 -0
  43. data/eitil_integrate/README.md +19 -0
  44. data/eitil_integrate/lib/eitil_integrate.rb +4 -0
  45. data/eitil_integrate/lib/eitil_integrate/application_exporter.rb +22 -0
  46. data/eitil_integrate/lib/eitil_integrate/application_exporter/auto_sum.rb +10 -0
  47. data/eitil_integrate/lib/eitil_integrate/application_exporter/auto_sum/drop_data.rb +54 -0
  48. data/eitil_integrate/lib/eitil_integrate/application_exporter/auto_sum/format_data.rb +27 -0
  49. data/eitil_integrate/lib/eitil_integrate/application_exporter/auto_sum/initialize.rb +22 -0
  50. data/eitil_integrate/lib/eitil_integrate/application_exporter/auto_sum/present_data.rb +31 -0
  51. data/eitil_integrate/lib/eitil_integrate/application_exporter/auto_sum/reduce_data.rb +18 -0
  52. data/eitil_integrate/lib/eitil_integrate/application_exporter/auto_sum/sum_data.rb +56 -0
  53. data/eitil_integrate/lib/eitil_integrate/application_exporter/default_export.rb +43 -0
  54. data/eitil_integrate/lib/eitil_integrate/application_exporter/helpers.rb +50 -0
  55. data/eitil_integrate/lib/eitil_integrate/application_exporter/infos.rb +20 -0
  56. data/eitil_integrate/lib/eitil_integrate/application_exporter/initialize.rb +28 -0
  57. data/eitil_integrate/lib/eitil_integrate/application_exporter/lookups.rb +40 -0
  58. data/eitil_integrate/lib/eitil_integrate/application_exporter/selectors.rb +58 -0
  59. data/eitil_integrate/lib/eitil_integrate/application_exporter/setters.rb +27 -0
  60. data/eitil_integrate/lib/eitil_integrate/application_exporter/store_file.rb +34 -0
  61. data/eitil_integrate/lib/eitil_integrate/application_exporter/style_cells.rb +97 -0
  62. data/eitil_integrate/lib/eitil_integrate/application_exporter/validations.rb +28 -0
  63. data/eitil_integrate/lib/eitil_integrate/application_exporter/write_cells.rb +78 -0
  64. data/eitil_integrate/lib/eitil_integrate/application_exporter/write_messages.rb +18 -0
  65. data/eitil_integrate/lib/eitil_integrate/railtie.rb +10 -0
  66. data/eitil_store/README.md +16 -0
  67. data/eitil_store/lib/eitil_store.rb +4 -0
  68. data/eitil_store/lib/eitil_store/railtie.rb +10 -0
  69. data/eitil_store/lib/eitil_store/regex.rb +4 -0
  70. data/eitil_store/lib/eitil_store/regex/regex.rb +41 -0
  71. data/eitil_support/README.md +78 -0
  72. data/eitil_support/lib/eitil_support.rb +5 -0
  73. data/eitil_support/lib/eitil_support/directory.rb +2 -0
  74. data/eitil_support/lib/eitil_support/directory/lookups.rb +26 -0
  75. data/eitil_support/lib/eitil_support/railtie.rb +10 -0
  76. data/eitil_support/lib/eitil_support/stacktrace.rb +4 -0
  77. data/eitil_support/lib/eitil_support/stacktrace/audit.rb +15 -0
  78. data/eitil_support/lib/eitil_support/stacktrace/call.rb +17 -0
  79. data/eitil_support/lib/eitil_support/stacktrace/stack.rb +28 -0
  80. data/eitil_wrapper/README.md +181 -0
  81. data/eitil_wrapper/lib/eitil_wrapper.rb +7 -0
  82. data/eitil_wrapper/lib/eitil_wrapper/decorators.rb +3 -0
  83. data/eitil_wrapper/lib/eitil_wrapper/decorators/application_decorator.rb +19 -0
  84. data/eitil_wrapper/lib/eitil_wrapper/decorators/controller_decorator.rb +60 -0
  85. data/eitil_wrapper/lib/eitil_wrapper/jobs.rb +4 -0
  86. data/eitil_wrapper/lib/eitil_wrapper/jobs/new_job.rb +34 -0
  87. data/eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb +37 -0
  88. data/eitil_wrapper/lib/eitil_wrapper/jobs/single_method_job.rb +8 -0
  89. data/eitil_wrapper/lib/eitil_wrapper/railtie.rb +49 -0
  90. data/eitil_wrapper/lib/eitil_wrapper/routes.rb +2 -0
  91. data/eitil_wrapper/lib/eitil_wrapper/routes/extended_resources.rb +40 -0
  92. data/eitil_wrapper/lib/eitil_wrapper/scopes.rb +2 -0
  93. data/eitil_wrapper/lib/eitil_wrapper/scopes/default_scopes.rb +80 -0
  94. data/lib/eitil.rb +5 -0
  95. data/lib/eitil/all.rb +17 -0
  96. data/lib/eitil/railtie.rb +37 -0
  97. data/lib/eitil/version.rb +5 -0
  98. metadata +125 -2
@@ -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,13 @@
1
+ # require "eitil_core/arugment_helpers"
2
+
3
+ require "eitil_core/argument_helpers/all_args_to_ivars"
4
+ require "eitil_core/argument_helpers/all_args_to_ivars_bang"
5
+
6
+ require "eitil_core/argument_helpers/args_to_ivars"
7
+ require "eitil_core/argument_helpers/args_to_ivars_bang"
8
+
9
+ require "eitil_core/argument_helpers/args_to_h"
10
+ require "eitil_core/argument_helpers/args_to_h_bang"
11
+
12
+ require "eitil_core/argument_helpers/all_kwargs_to_ivars"
13
+ require "eitil_core/argument_helpers/all_kwargs_to_ivars_bang"
@@ -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,15 @@
1
+
2
+ # require "eitil_core/argument_helpers/all_args_to_ivars_bang"
3
+
4
+ require "eitil_core/lookups/gem_path"
5
+ require "#{Find.gem_path('binding_of_caller')}/lib/binding_of_caller/mri.rb"
6
+
7
+ Kernel.module_eval do
8
+
9
+ def all_args_to_ivars!
10
+ binding.of_caller(1).local_variables.each do |lvar|
11
+ instance_variable_set("@#{lvar}", binding.of_caller(2).local_variable_get(lvar))
12
+ end
13
+ end
14
+
15
+ 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,15 @@
1
+
2
+ # require "eitil_core/argument_helpers/all_kwargs_to_ivars_bang"
3
+
4
+ require "eitil_core/lookups/gem_path"
5
+ require "#{Find.gem_path('binding_of_caller')}/lib/binding_of_caller/mri.rb"
6
+
7
+ Kernel.module_eval do
8
+
9
+ def all_kwargs_to_ivars!(namespace=:kwargs)
10
+ binding.of_caller(1).local_variable_get(namespace).each do |name, value|
11
+ instance_variable_set "@#{name}", value
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1,15 @@
1
+
2
+ # require "eitil_core/argument_helpers/args_to_h"
3
+
4
+ Kernel.module_eval do
5
+
6
+ def args_to_h(local_binding, *local_vars)
7
+
8
+ local_vars.reject { |lvar| lvar == local_binding }
9
+ .reject { |lvar| lvar.to_s.starts_with?('_') }
10
+ .map { |lvar| { "#{lvar}": local_binding.local_variable_get(lvar) } }
11
+ .inject &:merge
12
+
13
+ end
14
+
15
+ end
@@ -0,0 +1,17 @@
1
+
2
+ # require "eitil_core/argument_helpers/args_to_h_bang"
3
+
4
+ require "eitil_core/lookups/gem_path"
5
+ require "#{Find.gem_path('binding_of_caller')}/lib/binding_of_caller/mri.rb"
6
+
7
+ Kernel.module_eval do
8
+
9
+ def args_to_h!(*local_vars)
10
+
11
+ local_vars.reject { |lvar| lvar.to_s.starts_with?('_') }
12
+ .map { |lvar| { "#{lvar}": binding.of_caller(2).local_variable_get(lvar) } }
13
+ .inject &:merge
14
+
15
+ end
16
+
17
+ 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/argument_helpers/args_to_ivars_bang"
3
+
4
+ require "eitil_core/lookups/gem_path"
5
+ require "#{Find.gem_path('binding_of_caller')}/lib/binding_of_caller/mri.rb"
6
+
7
+ Kernel.module_eval do
8
+
9
+ def args_to_ivars!(*local_vars)
10
+ local_vars.each do |lvar|
11
+ instance_variable_set("@#{lvar}", binding.of_caller(2).local_variable_get(lvar))
12
+ end
13
+ end
14
+
15
+ end
@@ -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,12 @@
1
+
2
+ # require "eitil_core/float/safe_to_i"
3
+
4
+ class Float
5
+
6
+ # converts a float to an integer, only when no decimal values are lost.
7
+
8
+ def safe_to_i
9
+ self == self.to_i ? self.to_i : self
10
+ end
11
+
12
+ 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,3 @@
1
+
2
+ require "eitil_core/lookups/all_methods"
3
+ require "eitil_core/lookups/gem_path"
@@ -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,10 @@
1
+
2
+ # require "eitil_core/lookups/gem_path"
3
+
4
+ module Find
5
+
6
+ def self.gem_path(gem_name)
7
+ Gem.loaded_specs[gem_name].full_gem_path
8
+ end
9
+
10
+ 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