eitil 1.2.4 → 1.3.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.
Files changed (166) hide show
  1. checksums.yaml +4 -4
  2. data/eitil_core/README.md +31 -0
  3. data/eitil_core/lib/eitil_core/string/colorize.rb +30 -0
  4. data/eitil_core/lib/eitil_core/string.rb +1 -0
  5. data/eitil_integrate/lib/eitil_integrate/application_exporter/auto_sum/drop_data.rb +3 -1
  6. data/eitil_integrate/lib/eitil_integrate/application_exporter/initialize.rb +2 -0
  7. data/eitil_integrate/lib/eitil_integrate/application_exporter/style_cells.rb +5 -0
  8. data/eitil_wrapper/lib/eitil_wrapper/callbacks/helper_methods.rb +8 -1
  9. data/eitil_wrapper/lib/eitil_wrapper/decorators/application_decorator.rb +3 -0
  10. data/eitil_wrapper/lib/eitil_wrapper/decorators/controller_decorator.rb +7 -2
  11. data/eitil_wrapper/lib/eitil_wrapper/scopes/default_scopes.rb +8 -1
  12. data/lib/eitil/version.rb +1 -1
  13. data/spec/dummy_app/Rakefile +6 -0
  14. data/spec/dummy_app/app/assets/config/manifest.js +4 -0
  15. data/spec/dummy_app/app/assets/javascripts/application.js +15 -0
  16. data/spec/dummy_app/app/assets/javascripts/cable.js +13 -0
  17. data/spec/dummy_app/app/assets/stylesheets/addresses.css +4 -0
  18. data/spec/dummy_app/app/assets/stylesheets/application.css +15 -0
  19. data/spec/dummy_app/app/assets/stylesheets/scaffold.css +80 -0
  20. data/spec/dummy_app/app/assets/stylesheets/users.css +4 -0
  21. data/spec/dummy_app/app/channels/application_cable/channel.rb +4 -0
  22. data/spec/dummy_app/app/channels/application_cable/connection.rb +4 -0
  23. data/spec/dummy_app/app/controllers/addresses_controller.rb +58 -0
  24. data/spec/dummy_app/app/controllers/application_controller.rb +5 -0
  25. data/spec/dummy_app/app/controllers/users_controller.rb +93 -0
  26. data/spec/dummy_app/app/decorators/address_decorator.rb +3 -0
  27. data/spec/dummy_app/app/decorators/application_decorator.rb +12 -0
  28. data/spec/dummy_app/app/decorators/user_decorator.rb +19 -0
  29. data/spec/dummy_app/app/helpers/addresses_helper.rb +2 -0
  30. data/spec/dummy_app/app/helpers/application_helper.rb +2 -0
  31. data/spec/dummy_app/app/helpers/users_helper.rb +2 -0
  32. data/spec/dummy_app/app/jobs/application_job.rb +2 -0
  33. data/spec/dummy_app/app/mailers/application_mailer.rb +4 -0
  34. data/spec/dummy_app/app/models/address.rb +5 -0
  35. data/spec/dummy_app/app/models/application_record.rb +8 -0
  36. data/spec/dummy_app/app/models/user.rb +30 -0
  37. data/spec/dummy_app/app/views/addresses/_form.html.erb +17 -0
  38. data/spec/dummy_app/app/views/addresses/edit.html.erb +6 -0
  39. data/spec/dummy_app/app/views/addresses/index.html.erb +25 -0
  40. data/spec/dummy_app/app/views/addresses/new.html.erb +5 -0
  41. data/spec/dummy_app/app/views/addresses/show.html.erb +4 -0
  42. data/spec/dummy_app/app/views/layouts/application.html.erb +15 -0
  43. data/spec/dummy_app/app/views/layouts/mailer.html.erb +13 -0
  44. data/spec/dummy_app/app/views/layouts/mailer.text.erb +1 -0
  45. data/spec/dummy_app/app/views/users/_form.html.erb +17 -0
  46. data/spec/dummy_app/app/views/users/edit.html.erb +6 -0
  47. data/spec/dummy_app/app/views/users/index.html.erb +25 -0
  48. data/spec/dummy_app/app/views/users/new.html.erb +5 -0
  49. data/spec/dummy_app/app/views/users/show.html.erb +4 -0
  50. data/spec/dummy_app/bin/bundle +3 -0
  51. data/spec/dummy_app/bin/rails +4 -0
  52. data/spec/dummy_app/bin/rake +4 -0
  53. data/spec/dummy_app/bin/setup +36 -0
  54. data/spec/dummy_app/bin/update +31 -0
  55. data/spec/dummy_app/bin/yarn +11 -0
  56. data/spec/dummy_app/config/application.rb +16 -0
  57. data/spec/dummy_app/config/boot.rb +5 -0
  58. data/spec/dummy_app/config/cable.yml +10 -0
  59. data/spec/dummy_app/config/database.yml +25 -0
  60. data/spec/dummy_app/config/environment.rb +11 -0
  61. data/spec/dummy_app/config/environments/development.rb +61 -0
  62. data/spec/dummy_app/config/environments/production.rb +94 -0
  63. data/spec/dummy_app/config/environments/test.rb +46 -0
  64. data/spec/dummy_app/config/initializers/application_controller_renderer.rb +8 -0
  65. data/spec/dummy_app/config/initializers/assets.rb +14 -0
  66. data/spec/dummy_app/config/initializers/backtrace_silencers.rb +7 -0
  67. data/spec/dummy_app/config/initializers/content_security_policy.rb +25 -0
  68. data/spec/dummy_app/config/initializers/cookies_serializer.rb +5 -0
  69. data/spec/dummy_app/config/initializers/filter_parameter_logging.rb +4 -0
  70. data/spec/dummy_app/config/initializers/inflections.rb +16 -0
  71. data/spec/dummy_app/config/initializers/mime_types.rb +4 -0
  72. data/spec/dummy_app/config/initializers/wrap_parameters.rb +14 -0
  73. data/spec/dummy_app/config/locales/en.yml +33 -0
  74. data/spec/dummy_app/config/puma.rb +34 -0
  75. data/spec/dummy_app/config/routes.rb +12 -0
  76. data/spec/dummy_app/config/spring.rb +6 -0
  77. data/spec/dummy_app/config/storage.yml +34 -0
  78. data/spec/dummy_app/config.ru +5 -0
  79. data/spec/dummy_app/db/development.sqlite3 +0 -0
  80. data/spec/dummy_app/db/migrate/20210907114344_create_users.rb +12 -0
  81. data/spec/dummy_app/db/migrate/20210907114557_create_addresses.rb +16 -0
  82. data/spec/dummy_app/db/migrate/20210907131339_add_multiple_columns_to_user.rb +8 -0
  83. data/spec/dummy_app/db/schema.rb +41 -0
  84. data/spec/dummy_app/db/test.sqlite3 +0 -0
  85. data/spec/dummy_app/log/decorator_log.log +42 -0
  86. data/spec/dummy_app/log/development.log +24 -0
  87. data/spec/dummy_app/log/test.log +0 -0
  88. data/spec/dummy_app/package.json +5 -0
  89. data/spec/dummy_app/public/404.html +67 -0
  90. data/spec/dummy_app/public/422.html +67 -0
  91. data/spec/dummy_app/public/500.html +66 -0
  92. data/spec/dummy_app/public/apple-touch-icon-precomposed.png +0 -0
  93. data/spec/dummy_app/public/apple-touch-icon.png +0 -0
  94. data/spec/dummy_app/public/favicon.ico +0 -0
  95. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/2j/2jWL-rhQuwDjyPsAqfz1_wB_H15Kk2ODQ2dAu-XZKx8.cache +1 -0
  96. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/6x/6x9nAtWMtOljHkcAvx9LS3_kzIpD7XoM5jqwKXqN8SU.cache +1 -0
  97. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/7f/7fMKshWzk4gJEbG0FTuuuHVOeF6BG9SoIx1X0yGN4XA.cache +1 -0
  98. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/8-/8-O-UfzZVhbu8Cty_FaH4c3xNM-Sm6U90BGLWmTPpSo.cache +1 -0
  99. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/8a/8a5JUS7sZRAe1CpAiN0iy1n_apTjx0H3rkPqGgg_HHs.cache +1 -0
  100. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/9E/9EI_Wtkx262NF6vdNPozRjkOmUgT5wcyMxwPhhok91Y.cache +1 -0
  101. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/Au/AutOawEb2V5QIxVjqKqmRFpvJ3BHEJvFMIphdZydKPY.cache +0 -0
  102. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/BZ/BZULOBoPeioJ3yr_GDNL-cF1brDPreCMd34hrDbHvX4.cache +0 -0
  103. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/CS/CSs23ds7URW15l5Z5w3b3A6CPJS5ODsgzz0mmAHULF0.cache +1 -0
  104. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/Eu/EuFZYEzbxGLRX803DDnrfKQPcMoGo5ITR-9VuBY_35Q.cache +0 -0
  105. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/FL/FLU4EKYSshHlQjgOqP6RDQ8z7GTRbHhl-2IBWvv363s.cache +0 -0
  106. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/FL/FLl0vmABYcwCTORqhZlx9KLVZvAw1Sic_8-Vs5Q7F3I.cache +0 -0
  107. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/KF/KFlEJcPYkMbf3yhDJTUJ73BpWJ8BMzjQUhpLO1CZqUk.cache +1 -0
  108. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/LN/LNUl7yichb1dUbkovvnOVoVxkVQnhwndYgJRJwoXO_k.cache +1 -0
  109. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/LU/LUq0pj8f6-F5P5ZpVil-_pBLCVTYTqa-qRzQOVFkgGg.cache +1 -0
  110. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/N7/N7Q7f6mqtpX5Lxh78v1mILszsC6Oi9hrt9E8bYTCUg8.cache +0 -0
  111. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/OJ/OJX-7cXh407miinHDx7z55OnuYnifbaiCSjus3I2ETg.cache +0 -0
  112. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/P-/P-WGZR_jmbgi7zjScSIzMbnxmPRhR0FG-sUCbx-W0jA.cache +1 -0
  113. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/Qd/QdDsJNHB1T-o6r9B1zTqkZ6nDWfFlq7i5HIqxsMqOR8.cache +1 -0
  114. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/Qv/QvPvnJIjqHAUeoUdS4dpH_JVRh4znkA7ig3VHz7onhE.cache +1 -0
  115. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/RG/RG1PrmlixwaUlG8BV0kcm_3F7OQekxsrLYjBdf403-k.cache +2 -0
  116. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/TE/TEmdPmCEnqBmIu10fP0G66B333eV_jj1DT6NEM9BY5U.cache +1 -0
  117. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/XM/XMyLLsxd032ZvSGR9P5BcOxAXuQxt_wuaTVdjeuYUeU.cache +0 -0
  118. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/Xn/XnnrCKCkM_Fa5bHMwSjQ_NTBPicUoSK3LOeYu-ZmpYo.cache +0 -0
  119. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/cj/cjpKTBCb00-jq6B1KoFGJrP4kvsl8JACc_pqZAORMlM.cache +0 -0
  120. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/ft/ftREOVuSBdqj0d189uIhUmNEThLHS0nXTyt34tl_G9g.cache +0 -0
  121. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/iD/iDTnVSbZnIij5Xm4jkwCyIXAPDn8RwaRe5Ja8YPKibw.cache +0 -0
  122. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/iU/iU5Zc6hQ2jwcmv6lE2L4aWBJHHMnS1vrh0_LHR574kw.cache +1 -0
  123. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/iZ/iZjLEYDTYhysPjIEb36PhNErZ4rRW1BniBfuH7oa1RI.cache +0 -0
  124. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/ke/keL0ZyrZtXqgSINKKBK3qFEd2fvJSrv8qgU78i1-aqY.cache +1 -0
  125. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/n_/n_xYqQYhwEMQknb3jFQnjlxxBE9TzMNHCdJ-bEyZFIw.cache +0 -0
  126. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/nx/nxTv3sKVUQZADJyM3dPaVmUA78MIsMLD_K279yN_GsI.cache +0 -0
  127. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/pa/pas5TN2JG4i2AUMntaZrRkOZ_AZhFBtsfPaUHKOSdnM.cache +0 -0
  128. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/qP/qPmv5snMrDw830S6hSICDcnIy7kVEWoFKXhGKT38lG4.cache +2 -0
  129. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/uQ/uQImR-NTBFCJ7TsnJRrKAG0zhTcX7vpg_MFvTWvWSGQ.cache +1 -0
  130. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/uo/uosY6jh1_W3cVpcoQY0hcgG2zDeTVR169am2REYxMtI.cache +0 -0
  131. data/spec/dummy_app/tmp/cache/assets/sprockets/v4.0.0/yk/ykwP8uOyoTr4wPoEUoyB6Lrx9BG_9mWl6in8AJzBGPw.cache +1 -0
  132. data/spec/dummy_app/tmp/development_secret.txt +1 -0
  133. data/spec/dummy_app/tmp/restart.txt +0 -0
  134. data/spec/eitil_core/argument_helpers/all_args_to_ivars_bang_spec.rb +1 -1
  135. data/spec/eitil_core/argument_helpers/all_args_to_ivars_spec.rb +1 -1
  136. data/spec/eitil_core/argument_helpers/all_kwargs_to_ivars_bang_spec.rb +1 -1
  137. data/spec/eitil_core/argument_helpers/all_kwargs_to_ivars_spec.rb +1 -1
  138. data/spec/eitil_core/argument_helpers/args_to_h_bang_spec.rb +1 -1
  139. data/spec/eitil_core/argument_helpers/args_to_h_spec.rb +1 -1
  140. data/spec/eitil_core/argument_helpers/args_to_ivars_bang_spec.rb +1 -1
  141. data/spec/eitil_core/argument_helpers/args_to_ivars_spec.rb +1 -1
  142. data/spec/eitil_core/array/map_strings_spec.rb +2 -2
  143. data/spec/eitil_core/array/slice_hashes_spec.rb +1 -1
  144. data/spec/eitil_core/datetime/prettify_spec.rb +1 -1
  145. data/spec/eitil_core/errors/raise_error_spec.rb +1 -1
  146. data/spec/eitil_core/float/safe_to_i_spec.rb +1 -1
  147. data/spec/eitil_core/formatters/duck_set_spec.rb +3 -3
  148. data/spec/eitil_core/formatters/sql_spec.rb +3 -3
  149. data/spec/eitil_core/hash/auto_dig_spec.rb +1 -1
  150. data/spec/eitil_core/hash/transform_string_values_spec.rb +2 -2
  151. data/spec/eitil_core/safe_executions/safe_call.rb +1 -1
  152. data/spec/eitil_core/safe_executions/safe_send.rb +1 -1
  153. data/spec/eitil_core/setters/set_ivars_spec.rb +1 -1
  154. data/spec/eitil_core/string/colorize_spec.rb +91 -0
  155. data/spec/eitil_core/string/strip_base64_header_spec.rb +1 -1
  156. data/spec/eitil_core/string/to_filename_spec.rb +1 -1
  157. data/spec/eitil_core/type_checkers/is_num_or_nan_spec.rb +1 -1
  158. data/spec/eitil_integrate/application_exporter/auto_sum_spec.rb +106 -0
  159. data/spec/eitil_integrate/application_exporter/initialize_spec.rb +28 -0
  160. data/spec/eitil_wrapper/callbacks/helper_methods_spec.rb +34 -0
  161. data/spec/eitil_wrapper/decorators/decorators_spec.rb +49 -0
  162. data/spec/eitil_wrapper/jobs/single_method_job_spec.rb +72 -0
  163. data/spec/eitil_wrapper/routes/extended_resources_spec.rb +16 -0
  164. data/spec/eitil_wrapper/scopes/default_scopes_spec.rb +154 -0
  165. data/spec/spec_helper.rb +16 -6
  166. metadata +176 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b85f10151e9a975cf8b377f3997c976224fab4f0be988fd948ccfd0346bb68bc
4
- data.tar.gz: a18ab619c76964154d49875277eeb51b1020871a091161372793721715b95473
3
+ metadata.gz: 9e09221af058e64779e66dc191c93be16a85592f7abc9fb3baca2c758732f04d
4
+ data.tar.gz: bc3548f2643a9880cda0a9b78c82581afae5413ff09bfe6cd6b01ec6d34a2b43
5
5
  SHA512:
6
- metadata.gz: 6c95090129ee5c2f0eef08138cc656bdfcd6d81e612163c25ffcfcd2b10823441141a0687d9e3952d4a3a17ca002d02476de6c36d83acbdb90c946f13ae7a766
7
- data.tar.gz: 3fd66d39a64878e49e3be363a1198247a9b64c6cc23bd5825b0340ae44feba308b23f0930d7a05d9b7b73dae19db0a26b134cf91f6fcdb38e959186d1765698b
6
+ metadata.gz: df035ec77f87a82d84c55a98e4862a83a7f3696c70e9bdafc61df7c93c1c2c0ff002b554e0ae05b2f623bc100dfda09bd17d099293e13c70f54b59e327f2e1f1
7
+ data.tar.gz: 53995982137b13b5d2c23701748b79d443de3807f150e677af544b1b36301c5e530aafe9f13ec0e3c0dcb43d3d43145fa78f0248e526a5532e46a35db97a8a53
data/eitil_core/README.md CHANGED
@@ -495,6 +495,37 @@ require "eitil_core/string"
495
495
 
496
496
  ```
497
497
 
498
+ ```ruby
499
+ # require "eitil_core/string/colorize"
500
+
501
+ # formats strings, so that they are styled when printed to the terminal.
502
+
503
+ 'hi'.black
504
+ 'hi'.red
505
+ 'hi'.green
506
+ 'hi'.brown
507
+ 'hi'.blue
508
+ 'hi'.magenta
509
+ 'hi'.cyan
510
+ 'hi'.gray
511
+
512
+ 'hi'.bg_black
513
+ 'hi'.bg_red
514
+ 'hi'.bg_green
515
+ 'hi'.bg_brown
516
+ 'hi'.bg_blue
517
+ 'hi'.bg_magenta
518
+ 'hi'.bg_cyan
519
+ 'hi'.bg_gray
520
+
521
+ 'hi'.bold
522
+ 'hi'.italic
523
+ 'hi'.underline
524
+ 'hi'.blink
525
+ 'hi'.reverse_color
526
+
527
+ ```
528
+
498
529
  ```ruby
499
530
  # require "eitil_core/string/strip_base64_header"
500
531
 
@@ -0,0 +1,30 @@
1
+
2
+ # require "eitil_core/string/colorize"
3
+
4
+ class String
5
+
6
+ def black; "\e[30m#{self}\e[0m" end
7
+ def red; "\e[31m#{self}\e[0m" end
8
+ def green; "\e[32m#{self}\e[0m" end
9
+ def brown; "\e[33m#{self}\e[0m" end
10
+ def blue; "\e[34m#{self}\e[0m" end
11
+ def magenta; "\e[35m#{self}\e[0m" end
12
+ def cyan; "\e[36m#{self}\e[0m" end
13
+ def gray; "\e[37m#{self}\e[0m" end
14
+
15
+ def bg_black; "\e[40m#{self}\e[0m" end
16
+ def bg_red; "\e[41m#{self}\e[0m" end
17
+ def bg_green; "\e[42m#{self}\e[0m" end
18
+ def bg_brown; "\e[43m#{self}\e[0m" end
19
+ def bg_blue; "\e[44m#{self}\e[0m" end
20
+ def bg_magenta; "\e[45m#{self}\e[0m" end
21
+ def bg_cyan; "\e[46m#{self}\e[0m" end
22
+ def bg_gray; "\e[47m#{self}\e[0m" end
23
+
24
+ def bold; "\e[1m#{self}\e[22m" end
25
+ def italic; "\e[3m#{self}\e[23m" end
26
+ def underline; "\e[4m#{self}\e[24m" end
27
+ def blink; "\e[5m#{self}\e[25m" end
28
+ def reverse_color; "\e[7m#{self}\e[27m" end
29
+
30
+ end
@@ -1,5 +1,6 @@
1
1
 
2
2
  # require "eitil_core/string"
3
3
 
4
+ require "eitil_core/string/colorize"
4
5
  require "eitil_core/string/strip_base64_header"
5
6
  require "eitil_core/string/to_filename"
@@ -25,7 +25,9 @@ module EitilIntegrate::RubyXL
25
25
  end
26
26
 
27
27
  def drop_empty_values
28
- @hash.transform_values! { |array| array.reject { |item| item.safe_send :empty? } }
28
+ @hash.transform_values! do |array|
29
+ array.reject { |item| item.respond_to?(:empty?) && item.empty? }
30
+ end
29
31
  end
30
32
 
31
33
  def drop_non_accepted_values
@@ -3,6 +3,8 @@
3
3
 
4
4
  require "eitil_core/setters/set_ivars"
5
5
  require "eitil_core/argument_helpers/all_kwargs_to_ivars"
6
+ require "action_view"
7
+ require "rubyXL"
6
8
 
7
9
  module EitilIntegrate
8
10
  module RubyXL
@@ -22,6 +22,7 @@ module EitilIntegrate::RubyXL
22
22
  style_column_width
23
23
  style_first_row_bold
24
24
  style_first_column_bold
25
+ style_first_column_width
25
26
  end
26
27
 
27
28
  def style_custom
@@ -59,6 +60,10 @@ module EitilIntegrate::RubyXL
59
60
  base_style_x_columns_width (0...n_columns), width
60
61
  end
61
62
 
63
+ def style_first_column_width(width = 35)
64
+ style_first_x_columns_width 1, width
65
+ end
66
+
62
67
  alias_method :base_style_first_x_columns_width, :style_first_x_columns_width
63
68
 
64
69
  def style_x_columns_width(column_indices = [], width)
@@ -14,8 +14,15 @@ module EitilWrapper
14
14
 
15
15
  def inherited(subclass)
16
16
  super
17
-
18
17
  return if Eitil.skip_callback_helper_methods_for_models.include?(subclass.to_s.to_sym)
18
+
19
+ # Set the proper table_names for namespaced models. Without setting this,
20
+ # Rails run into problems due to the fact that the first call to the model's
21
+ # constant triggers this initializer first, and only thereafter the model file
22
+ # which sets the correct table_name through a macro.
23
+ namespaced_class = subclass.to_s.include?('::')
24
+ subclass.table_name = subclass.to_s.gsub('::', '_').downcase.pluralize if namespaced_class
25
+
19
26
  subclass.use_eitil_callback_helper_methods
20
27
 
21
28
  rescue => e
@@ -1,3 +1,6 @@
1
+
2
+ require "active_model/railtie"
3
+
1
4
  module EitilWrapper
2
5
  class ApplicationDecorator
3
6
 
@@ -50,17 +50,22 @@ module EitilWrapper
50
50
  end
51
51
 
52
52
  def set_decorator
53
- @dec_class.new ivars
53
+ @dec_class.new **ivars
54
54
  end
55
55
 
56
+ # Converts the controller_ivars, given in your main application's configuration,
57
+ # into an hash. If no controller_ivars, continue with converting, in order to avoid
58
+ # issues due to differing data types.
56
59
  def controller_ivars
60
+ return {} unless Eitil.controller_ivars.any?
61
+
57
62
  Eitil.controller_ivars.map do |ivar|
58
63
  { ivar => instance_variable_get("@#{ivar.to_s}") }
59
64
  end.inject &:merge
60
65
  end
61
66
 
62
67
  def ivars
63
- @dec_kwargs ? controller_ivars.merge(@dec_kwargs) : controller_ivars
68
+ @dec_kwargs.any? ? controller_ivars.merge(@dec_kwargs) : controller_ivars
64
69
  end
65
70
 
66
71
  end
@@ -36,8 +36,15 @@ module EitilWrapper
36
36
 
37
37
  def inherited(subclass)
38
38
  super
39
-
40
39
  return if Eitil.skip_default_scopes_for_models.include?(subclass.to_s.to_sym)
40
+
41
+ # Set the proper table_names for namespaced models. Without setting this,
42
+ # Rails run into problems due to the fact that the first call to the model's
43
+ # constant triggers this initializer first, and only thereafter the model file
44
+ # which sets the correct table_name through a macro.
45
+ namespaced_class = subclass.to_s.include?('::')
46
+ subclass.table_name = subclass.to_s.gsub('::', '_').downcase.pluralize if namespaced_class
47
+
41
48
  subclass.use_eitil_scopes
42
49
 
43
50
  rescue => e
data/lib/eitil/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Eitil
2
2
 
3
- VERSION = '1.2.4'
3
+ VERSION = '1.3.3'
4
4
 
5
5
  end
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative 'config/application'
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,4 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../javascripts .js
3
+ //= link_directory ../stylesheets .css
4
+ //= link dummy_app_manifest.js
@@ -0,0 +1,15 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file. JavaScript code in this file should be added after the last require_* statement.
9
+ //
10
+ // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require rails-ujs
14
+ //= require activestorage
15
+ //= require_tree .
@@ -0,0 +1,13 @@
1
+ // Action Cable provides the framework to deal with WebSockets in Rails.
2
+ // You can generate new channels where WebSocket features live using the `rails generate channel` command.
3
+ //
4
+ //= require action_cable
5
+ //= require_self
6
+ //= require_tree ./channels
7
+
8
+ (function() {
9
+ this.App || (this.App = {});
10
+
11
+ App.cable = ActionCable.createConsumer();
12
+
13
+ }).call(this);
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,80 @@
1
+ body {
2
+ background-color: #fff;
3
+ color: #333;
4
+ margin: 33px;
5
+ }
6
+
7
+ body, p, ol, ul, td {
8
+ font-family: verdana, arial, helvetica, sans-serif;
9
+ font-size: 13px;
10
+ line-height: 18px;
11
+ }
12
+
13
+ pre {
14
+ background-color: #eee;
15
+ padding: 10px;
16
+ font-size: 11px;
17
+ }
18
+
19
+ a {
20
+ color: #000;
21
+ }
22
+
23
+ a:visited {
24
+ color: #666;
25
+ }
26
+
27
+ a:hover {
28
+ color: #fff;
29
+ background-color: #000;
30
+ }
31
+
32
+ th {
33
+ padding-bottom: 5px;
34
+ }
35
+
36
+ td {
37
+ padding: 0 5px 7px;
38
+ }
39
+
40
+ div.field,
41
+ div.actions {
42
+ margin-bottom: 10px;
43
+ }
44
+
45
+ #notice {
46
+ color: green;
47
+ }
48
+
49
+ .field_with_errors {
50
+ padding: 2px;
51
+ background-color: red;
52
+ display: table;
53
+ }
54
+
55
+ #error_explanation {
56
+ width: 450px;
57
+ border: 2px solid red;
58
+ padding: 7px 7px 0;
59
+ margin-bottom: 20px;
60
+ background-color: #f0f0f0;
61
+ }
62
+
63
+ #error_explanation h2 {
64
+ text-align: left;
65
+ font-weight: bold;
66
+ padding: 5px 5px 5px 15px;
67
+ font-size: 12px;
68
+ margin: -7px -7px 0;
69
+ background-color: #c00;
70
+ color: #fff;
71
+ }
72
+
73
+ #error_explanation ul li {
74
+ font-size: 12px;
75
+ list-style: square;
76
+ }
77
+
78
+ label {
79
+ display: block;
80
+ }
@@ -0,0 +1,4 @@
1
+ /*
2
+ Place all the styles related to the matching controller here.
3
+ They will automatically be included in application.css.
4
+ */
@@ -0,0 +1,4 @@
1
+ module ApplicationCable
2
+ class Channel < ActionCable::Channel::Base
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module ApplicationCable
2
+ class Connection < ActionCable::Connection::Base
3
+ end
4
+ end
@@ -0,0 +1,58 @@
1
+ class AddressesController < ApplicationController
2
+ before_action :set_address, only: [:show, :edit, :update, :destroy]
3
+
4
+ # GET /addresses
5
+ def index
6
+ @addresses = Address.all
7
+ end
8
+
9
+ # GET /addresses/1
10
+ def show
11
+ end
12
+
13
+ # GET /addresses/new
14
+ def new
15
+ @address = Address.new
16
+ end
17
+
18
+ # GET /addresses/1/edit
19
+ def edit
20
+ end
21
+
22
+ # POST /addresses
23
+ def create
24
+ @address = Address.new(address_params)
25
+
26
+ if @address.save
27
+ redirect_to @address, notice: 'Address was successfully created.'
28
+ else
29
+ render :new
30
+ end
31
+ end
32
+
33
+ # PATCH/PUT /addresses/1
34
+ def update
35
+ if @address.update(address_params)
36
+ redirect_to @address, notice: 'Address was successfully updated.'
37
+ else
38
+ render :edit
39
+ end
40
+ end
41
+
42
+ # DELETE /addresses/1
43
+ def destroy
44
+ @address.destroy
45
+ redirect_to addresses_url, notice: 'Address was successfully destroyed.'
46
+ end
47
+
48
+ private
49
+ # Use callbacks to share common setup or constraints between actions.
50
+ def set_address
51
+ @address = Address.find(params[:id])
52
+ end
53
+
54
+ # Only allow a list of trusted parameters through.
55
+ def address_params
56
+ params.fetch(:address, {})
57
+ end
58
+ end
@@ -0,0 +1,5 @@
1
+ class ApplicationController < ActionController::Base
2
+
3
+ include EitilWrapper::ControllerDecorator
4
+
5
+ end