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.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +39 -331
  3. data/eitil_core/README.md +288 -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 +5 -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_kwargs_to_ivars.rb +12 -0
  14. data/eitil_core/lib/eitil_core/argument_helpers/args_to_ivars.rb +12 -0
  15. data/eitil_core/lib/eitil_core/concerns.rb +2 -0
  16. data/{config/initializers/monkeys/module.rb → eitil_core/lib/eitil_core/concerns/include_concerns_of.rb} +3 -0
  17. data/eitil_core/lib/eitil_core/datetime.rb +2 -0
  18. data/{config/initializers/monkeys/date_time.rb → eitil_core/lib/eitil_core/datetime/prettify.rb} +3 -0
  19. data/eitil_core/lib/eitil_core/errors.rb +2 -0
  20. data/eitil_core/lib/eitil_core/errors/raise_error.rb +11 -0
  21. data/eitil_core/lib/eitil_core/float.rb +2 -0
  22. data/{config/initializers/monkeys/float.rb → eitil_core/lib/eitil_core/float/safe_to_i.rb} +0 -0
  23. data/eitil_core/lib/eitil_core/hash.rb +2 -0
  24. data/{config/initializers/monkeys/hash.rb → eitil_core/lib/eitil_core/hash/auto_dig.rb} +3 -0
  25. data/eitil_core/lib/eitil_core/lookups.rb +2 -0
  26. data/{config/initializers/monkeys/object.rb → eitil_core/lib/eitil_core/lookups/all_methods.rb} +3 -0
  27. data/eitil_core/lib/eitil_core/railtie.rb +37 -0
  28. data/eitil_core/lib/eitil_core/safe_executions.rb +3 -0
  29. data/eitil_core/lib/eitil_core/safe_executions/safe_call.rb +12 -0
  30. data/eitil_core/lib/eitil_core/safe_executions/safe_send.rb +12 -0
  31. data/eitil_core/lib/eitil_core/setters.rb +2 -0
  32. data/eitil_core/lib/eitil_core/setters/set_ivars.rb +12 -0
  33. data/eitil_core/lib/eitil_core/type_checkers.rb +2 -0
  34. data/{config/initializers/monkeys/string.rb → eitil_core/lib/eitil_core/type_checkers/is_num_or_nan.rb} +5 -5
  35. data/eitil_core/lib/eitil_core/validations.rb +2 -0
  36. data/eitil_core/lib/eitil_core/validations/run_validations.rb +10 -0
  37. data/eitil_integrate/README.md +8 -0
  38. data/eitil_integrate/lib/eitil_integrate.rb +0 -0
  39. data/eitil_integrate/lib/eitil_integrate/railtie.rb +10 -0
  40. data/eitil_store/README.md +16 -0
  41. data/eitil_store/lib/eitil_store.rb +4 -0
  42. data/eitil_store/lib/eitil_store/railtie.rb +10 -0
  43. data/eitil_store/lib/eitil_store/regex.rb +4 -0
  44. data/eitil_store/lib/eitil_store/regex/regex.rb +41 -0
  45. data/eitil_support/README.md +78 -0
  46. data/eitil_support/lib/eitil_support.rb +5 -0
  47. data/eitil_support/lib/eitil_support/directory.rb +2 -0
  48. data/eitil_support/lib/eitil_support/directory/lookups.rb +23 -0
  49. data/eitil_support/lib/eitil_support/railtie.rb +10 -0
  50. data/eitil_support/lib/eitil_support/stacktrace.rb +4 -0
  51. data/{app/models/eitil/stack_trace → eitil_support/lib/eitil_support/stacktrace}/audit.rb +2 -2
  52. data/{app/models/eitil/stack_trace → eitil_support/lib/eitil_support/stacktrace}/call.rb +1 -1
  53. data/{app/models/eitil/stack_trace → eitil_support/lib/eitil_support/stacktrace}/stack.rb +2 -2
  54. data/eitil_wrapper/README.md +181 -0
  55. data/eitil_wrapper/lib/eitil_wrapper.rb +7 -0
  56. data/eitil_wrapper/lib/eitil_wrapper/decorators.rb +3 -0
  57. data/{config/initializers/wrappers → eitil_wrapper/lib/eitil_wrapper}/decorators/application_decorator.rb +1 -1
  58. data/eitil_wrapper/lib/eitil_wrapper/decorators/controller_decorator.rb +60 -0
  59. data/eitil_wrapper/lib/eitil_wrapper/jobs.rb +4 -0
  60. data/eitil_wrapper/lib/eitil_wrapper/jobs/new_job.rb +34 -0
  61. data/eitil_wrapper/lib/eitil_wrapper/jobs/new_job_debugger.rb +37 -0
  62. data/eitil_wrapper/lib/eitil_wrapper/jobs/single_method_job.rb +8 -0
  63. data/eitil_wrapper/lib/eitil_wrapper/railtie.rb +49 -0
  64. data/eitil_wrapper/lib/eitil_wrapper/routes.rb +2 -0
  65. data/{config/initializers/wrappers → eitil_wrapper/lib/eitil_wrapper}/routes/extended_resources.rb +2 -2
  66. data/eitil_wrapper/lib/eitil_wrapper/scopes.rb +2 -0
  67. data/eitil_wrapper/lib/eitil_wrapper/scopes/default_scopes.rb +80 -0
  68. data/lib/eitil.rb +1 -1
  69. data/lib/eitil/all.rb +18 -0
  70. data/lib/eitil/engine.rb +24 -0
  71. data/lib/eitil/railtie.rb +6 -0
  72. data/lib/eitil/version.rb +3 -1
  73. metadata +82 -34
  74. data/app/controllers/eitil/application_controller.rb +0 -4
  75. data/app/jobs/eitil/application_job.rb +0 -4
  76. data/app/mailers/eitil/application_mailer.rb +0 -6
  77. data/app/models/eitil/application_record.rb +0 -5
  78. data/config/initializers/modules/dir.rb +0 -21
  79. data/config/initializers/monkeys/application_controller.rb +0 -14
  80. data/config/initializers/monkeys/application_record.rb +0 -30
  81. data/config/initializers/monkeys/kernel.rb +0 -48
  82. data/config/initializers/wrappers/decorators/controller_decorator.rb +0 -63
  83. data/config/initializers/wrappers/jobs/active_job_macros.rb +0 -52
  84. data/config/initializers/wrappers/jobs/single_method_job.rb +0 -24
  85. data/config/initializers/wrappers/scopes/default_scopes.rb +0 -83
  86. 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,2 @@
1
+
2
+ require "eitil_core/application_controller/slice_params"
@@ -0,0 +1,14 @@
1
+
2
+ # require "eitil_core/application_controller/slice_params"
3
+
4
+ module EitilCore
5
+ module ApplicationController
6
+ module SliceParams
7
+
8
+ def slice_params(*args)
9
+ params.slice(*args).as_json.symbolize_keys
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,4 @@
1
+
2
+ require "eitil_core/application_record/where_like"
3
+ require "eitil_core/application_record/find_by_like"
4
+ require "eitil_core/application_record/all_associations"
@@ -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,5 @@
1
+ # require "eitil_core/arugment_helpers"
2
+
3
+ require "eitil_core/argument_helpers/all_args_to_ivars"
4
+ require "eitil_core/argument_helpers/args_to_ivars"
5
+ require "eitil_core/argument_helpers/all_kwargs_to_ivars"
@@ -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,2 @@
1
+
2
+ require "eitil_core/concerns/include_concerns_of"
@@ -1,3 +1,6 @@
1
+
2
+ # require "eitil_core/concerns/include_concerns_of"
3
+
1
4
  class Module
2
5
 
3
6
  def include_concerns_of(*directories, namespace: nil)
@@ -0,0 +1,2 @@
1
+
2
+ require "eitil_core/datetime/prettify"
@@ -1,3 +1,6 @@
1
+
2
+ # require "eitil_core/datetime/prettify"
3
+
1
4
  class DateTime
2
5
 
3
6
  def prettify
@@ -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,2 @@
1
+
2
+ require "eitil_core/hash/auto_dig"
@@ -1,3 +1,6 @@
1
+
2
+ # require "eitil_core/hash/auto_dig"
3
+
1
4
  class Hash
2
5
 
3
6
  def auto_dig(_hash = self, _key)
@@ -0,0 +1,2 @@
1
+
2
+ require "eitil_core/lookups/all_methods"
@@ -1,3 +1,6 @@
1
+
2
+ # require "eitil_core/lookups/all_methods"
3
+
1
4
  require "awesome_print"
2
5
 
3
6
  class Object
@@ -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"
@@ -1,12 +1,12 @@
1
- class String
2
1
 
3
- # The NumberRegex belows comes from the Rubinius source code and
4
- # identifies both integers and floats correctly.
2
+ # require "eitil_core/type_checkers/is_num_or_nan"
3
+
4
+ require "eitil_store/regex/regex"
5
5
 
6
- NumberRegex = /^\s*[+-]?((\d+_?)*\d+(\.(\d+_?)*\d+)?|\.(\d+_?)*\d+)(\s*|([eE][+-]?(\d+_?)*\d+)\s*)$/
6
+ class String
7
7
 
8
8
  def is_nan?
9
- self !~ NumberRegex
9
+ self !~ EitilStore::Regex::IsNum
10
10
  end
11
11
 
12
12
  def is_num?
@@ -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