ui_bibz 2.5.5 → 3.0.0.alpha6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (262) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -2
  3. data/.rubocop.yml +89 -1
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/Gemfile +1 -0
  7. data/Gemfile.lock +96 -108
  8. data/README.md +9 -52
  9. data/Rakefile +3 -2
  10. data/bin/test +7 -0
  11. data/config/initializers/will_paginate.rb +2 -1
  12. data/lib/ui_bibz.rb +17 -3
  13. data/lib/ui_bibz/concerns/models/searchable.rb +3 -3
  14. data/lib/ui_bibz/helpers/ui/core/boxes_helper.rb +9 -1
  15. data/lib/ui_bibz/helpers/ui/core/forms_helper.rb +20 -1
  16. data/lib/ui_bibz/helpers/ui/core/layouts_helper.rb +10 -2
  17. data/lib/ui_bibz/helpers/ui/core/lists_helper.rb +1 -1
  18. data/lib/ui_bibz/helpers/ui/core/notifications_helper.rb +9 -5
  19. data/lib/ui_bibz/helpers/ui/ux_helper.rb +2 -6
  20. data/lib/ui_bibz/infos.rb +11 -5
  21. data/lib/ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder.rb +15 -2
  22. data/lib/ui_bibz/inputs/ui_bibz_inputs/base_input.rb +4 -7
  23. data/lib/ui_bibz/inputs/ui_bibz_inputs/collection_input.rb +6 -9
  24. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_checkbox_field_input.rb +5 -1
  25. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_choice_field_input.rb +23 -0
  26. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_multi_select_field_input.rb +3 -3
  27. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_slider_field_input.rb +12 -0
  28. data/lib/ui_bibz/rails/engine.rb +1 -16
  29. data/lib/ui_bibz/railtie.rb +6 -0
  30. data/lib/ui_bibz/ui/concerns/card_itemable_concern.rb +67 -0
  31. data/lib/ui_bibz/ui/concerns/html_concern.rb +16 -0
  32. data/lib/ui_bibz/ui/core/boxes/card.rb +5 -50
  33. data/lib/ui_bibz/ui/core/boxes/card_accordion.rb +2 -0
  34. data/lib/ui_bibz/ui/core/boxes/card_column.rb +3 -1
  35. data/lib/ui_bibz/ui/core/boxes/card_deck.rb +3 -1
  36. data/lib/ui_bibz/ui/core/boxes/card_grid.rb +60 -0
  37. data/lib/ui_bibz/ui/core/boxes/card_group.rb +3 -1
  38. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_link.rb +0 -3
  39. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_subtitle.rb +47 -0
  40. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_text.rb +0 -3
  41. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_title.rb +1 -4
  42. data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +15 -0
  43. data/lib/ui_bibz/ui/core/boxes/components/card_col.rb +65 -0
  44. data/lib/ui_bibz/ui/core/boxes/components/card_footer.rb +0 -3
  45. data/lib/ui_bibz/ui/core/boxes/components/card_header.rb +2 -4
  46. data/lib/ui_bibz/ui/core/boxes/components/card_image.rb +1 -4
  47. data/lib/ui_bibz/ui/core/boxes/components/card_row.rb +65 -0
  48. data/lib/ui_bibz/ui/core/boxes/components/card_tab_group.rb +0 -4
  49. data/lib/ui_bibz/ui/core/boxes/jumbotron.rb +1 -4
  50. data/lib/ui_bibz/ui/core/component.rb +16 -9
  51. data/lib/ui_bibz/ui/core/forms/buttons/button.rb +2 -2
  52. data/lib/ui_bibz/ui/core/forms/buttons/button_group.rb +9 -11
  53. data/lib/ui_bibz/ui/core/forms/buttons/button_refresh.rb +0 -3
  54. data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_dropdown.rb +0 -3
  55. data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_split_dropdown.rb +0 -3
  56. data/lib/ui_bibz/ui/core/forms/choices/box_switch_field.rb +7 -10
  57. data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +20 -10
  58. data/lib/ui_bibz/ui/core/forms/choices/choice_group.rb +22 -2
  59. data/lib/ui_bibz/ui/core/forms/choices/components/choice.rb +24 -12
  60. data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +17 -6
  61. data/lib/ui_bibz/ui/core/forms/choices/switch_field.rb +5 -5
  62. data/lib/ui_bibz/ui/core/forms/dates/date_picker_field.rb +12 -15
  63. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_divider.rb +0 -1
  64. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_header.rb +0 -3
  65. data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +19 -20
  66. data/lib/ui_bibz/ui/core/forms/dropdowns/split_dropdown.rb +7 -5
  67. data/lib/ui_bibz/ui/core/forms/files/file_field.rb +20 -10
  68. data/lib/ui_bibz/ui/core/forms/numbers/formula_field.rb +16 -8
  69. data/lib/ui_bibz/ui/core/forms/numbers/number_field.rb +20 -3
  70. data/lib/ui_bibz/ui/core/forms/numbers/range_field.rb +51 -5
  71. data/lib/ui_bibz/ui/core/forms/numbers/slider_field.rb +144 -0
  72. data/lib/ui_bibz/ui/core/forms/numbers/slider_header.rb +71 -0
  73. data/lib/ui_bibz/ui/core/forms/selects/abstract_select.rb +0 -3
  74. data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +41 -62
  75. data/lib/ui_bibz/ui/core/forms/selects/multi_column_field.rb +0 -3
  76. data/lib/ui_bibz/ui/core/forms/selects/select_field.rb +2 -5
  77. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_addon.rb +1 -4
  78. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button.rb +0 -3
  79. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_group.rb +0 -3
  80. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_link.rb +0 -3
  81. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_refresh.rb +1 -12
  82. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_checkbox_field.rb +9 -4
  83. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_dropdown.rb +0 -3
  84. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_radio_field.rb +9 -4
  85. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_switch_field.rb +0 -3
  86. data/lib/ui_bibz/ui/core/forms/surrounds/surround_field.rb +4 -12
  87. data/lib/ui_bibz/ui/core/forms/textareas/markdown_editor_field.rb +4 -7
  88. data/lib/ui_bibz/ui/core/forms/texts/auto_complete_field.rb +2 -5
  89. data/lib/ui_bibz/ui/core/forms/texts/text_field.rb +0 -3
  90. data/lib/ui_bibz/ui/core/icons/components/glyph_counter.rb +0 -3
  91. data/lib/ui_bibz/ui/core/icons/components/glyph_text.rb +1 -4
  92. data/lib/ui_bibz/ui/core/icons/glyph.rb +1 -4
  93. data/lib/ui_bibz/ui/core/icons/star.rb +0 -3
  94. data/lib/ui_bibz/ui/core/layouts/col.rb +5 -42
  95. data/lib/ui_bibz/ui/core/layouts/container.rb +9 -6
  96. data/lib/ui_bibz/ui/core/layouts/row.rb +32 -2
  97. data/lib/ui_bibz/ui/core/lists/components/list.rb +6 -8
  98. data/lib/ui_bibz/ui/core/lists/components/list/list_body.rb +0 -3
  99. data/lib/ui_bibz/ui/core/lists/components/list/list_header.rb +0 -3
  100. data/lib/ui_bibz/ui/core/lists/list_group.rb +9 -6
  101. data/lib/ui_bibz/ui/core/navigations/breadcrumb.rb +3 -2
  102. data/lib/ui_bibz/ui/core/navigations/components/breadcrumb_link.rb +0 -3
  103. data/lib/ui_bibz/ui/core/navigations/components/nav_dropdown.rb +2 -5
  104. data/lib/ui_bibz/ui/core/navigations/components/nav_link.rb +3 -1
  105. data/lib/ui_bibz/ui/core/navigations/components/nav_link_link.rb +15 -6
  106. data/lib/ui_bibz/ui/core/navigations/components/nav_link_list.rb +0 -4
  107. data/lib/ui_bibz/ui/core/navigations/components/nav_link_span.rb +1 -4
  108. data/lib/ui_bibz/ui/core/navigations/components/nav_text.rb +0 -3
  109. data/lib/ui_bibz/ui/core/navigations/components/navbar_brand.rb +0 -3
  110. data/lib/ui_bibz/ui/core/navigations/components/navbar_form.rb +4 -4
  111. data/lib/ui_bibz/ui/core/navigations/components/navbar_nav.rb +1 -4
  112. data/lib/ui_bibz/ui/core/navigations/components/navbar_text.rb +0 -3
  113. data/lib/ui_bibz/ui/core/navigations/components/pagination_link.rb +0 -3
  114. data/lib/ui_bibz/ui/core/navigations/components/toolbar_form.rb +3 -3
  115. data/lib/ui_bibz/ui/core/navigations/link.rb +0 -3
  116. data/lib/ui_bibz/ui/core/navigations/nav.rb +37 -10
  117. data/lib/ui_bibz/ui/core/navigations/navbar.rb +28 -7
  118. data/lib/ui_bibz/ui/core/navigations/pagination.rb +3 -1
  119. data/lib/ui_bibz/ui/core/navigations/tab_group.rb +10 -5
  120. data/lib/ui_bibz/ui/core/navigations/toolbar.rb +2 -0
  121. data/lib/ui_bibz/ui/core/notifications/alert.rb +2 -2
  122. data/lib/ui_bibz/ui/core/notifications/badge.rb +2 -5
  123. data/lib/ui_bibz/ui/core/notifications/components/alert_body.rb +0 -3
  124. data/lib/ui_bibz/ui/core/notifications/components/alert_header.rb +4 -10
  125. data/lib/ui_bibz/ui/core/notifications/components/bar.rb +0 -3
  126. data/lib/ui_bibz/ui/core/notifications/components/toast_body.rb +0 -3
  127. data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +1 -6
  128. data/lib/ui_bibz/ui/core/notifications/progress_bar.rb +7 -5
  129. data/lib/ui_bibz/ui/core/notifications/spinner.rb +0 -3
  130. data/lib/ui_bibz/ui/core/notifications/toast.rb +14 -3
  131. data/lib/ui_bibz/ui/core/windows/components/modal_body.rb +0 -3
  132. data/lib/ui_bibz/ui/core/windows/components/modal_footer.rb +0 -3
  133. data/lib/ui_bibz/ui/core/windows/components/modal_header.rb +1 -7
  134. data/lib/ui_bibz/ui/core/windows/modal.rb +65 -14
  135. data/lib/ui_bibz/ui/extensions/core/component/glyph_extension.rb +6 -2
  136. data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +9 -9
  137. data/lib/ui_bibz/ui/extensions/core/forms/connect_extension.rb +2 -2
  138. data/lib/ui_bibz/ui/ux/containers/components/panel_body.rb +0 -3
  139. data/lib/ui_bibz/ui/ux/containers/components/panel_column.rb +2 -0
  140. data/lib/ui_bibz/ui/ux/containers/components/panel_deck.rb +2 -0
  141. data/lib/ui_bibz/ui/ux/containers/components/panel_footer.rb +0 -3
  142. data/lib/ui_bibz/ui/ux/containers/components/panel_group.rb +2 -0
  143. data/lib/ui_bibz/ui/ux/containers/components/panel_header.rb +4 -6
  144. data/lib/ui_bibz/ui/ux/containers/components/panel_header_title.rb +47 -0
  145. data/lib/ui_bibz/ui/ux/containers/components/panel_tab_group.rb +0 -4
  146. data/lib/ui_bibz/ui/ux/containers/components/panel_toolbar.rb +0 -3
  147. data/lib/ui_bibz/ui/ux/containers/panel.rb +4 -2
  148. data/lib/ui_bibz/ui/ux/tables/components/thead.rb +0 -3
  149. data/lib/ui_bibz/ui/ux/tables/table.rb +2 -4
  150. data/lib/ui_bibz/ui/ux/tables/table_card.rb +4 -3
  151. data/lib/ui_bibz/ui/ux/tables/table_search_field.rb +5 -5
  152. data/lib/ui_bibz/utils/breakdown_class_name_generator.rb +82 -0
  153. data/lib/ui_bibz/utils/internationalization.rb +2 -2
  154. data/lib/ui_bibz/utils/screwdriver.rb +16 -10
  155. data/test/dummy/Rakefile +1 -1
  156. data/test/dummy/app/javascripts/packs/index.js +3 -0
  157. data/test/dummy/app/views/layouts/application.html.erb +4 -1
  158. data/{app/ui/.keep → test/dummy/app/views/users/index.html.erb} +0 -0
  159. data/test/dummy/bin/setup +17 -13
  160. data/test/dummy/config.ru +2 -1
  161. data/test/dummy/config/application.rb +1 -0
  162. data/test/dummy/config/cable.yml +10 -0
  163. data/test/dummy/config/database.yml +1 -1
  164. data/test/dummy/config/environment.rb +1 -1
  165. data/test/dummy/config/environments/development.rb +33 -12
  166. data/test/dummy/config/environments/production.rb +52 -19
  167. data/test/dummy/config/environments/test.rb +18 -12
  168. data/test/dummy/config/initializers/application_controller_renderer.rb +9 -0
  169. data/test/dummy/config/initializers/assets.rb +4 -3
  170. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -1
  171. data/test/dummy/config/initializers/content_security_policy.rb +29 -0
  172. data/test/dummy/config/initializers/cookies_serializer.rb +2 -0
  173. data/test/dummy/config/initializers/inflections.rb +0 -1
  174. data/test/dummy/config/initializers/mime_types.rb +0 -1
  175. data/test/dummy/config/initializers/wrap_parameters.rb +2 -2
  176. data/test/dummy/config/puma.rb +40 -0
  177. data/test/dummy/config/routes.rb +3 -0
  178. data/test/dummy/config/spring.rb +8 -0
  179. data/test/dummy/config/storage.yml +34 -0
  180. data/test/dummy/db/migrate/20150123191805_create_users.rb +1 -1
  181. data/test/dummy/db/schema.rb +24 -24
  182. data/test/dummy/public/404.html +6 -6
  183. data/test/dummy/public/422.html +6 -6
  184. data/test/dummy/public/500.html +6 -6
  185. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  186. data/test/dummy/public/apple-touch-icon.png +0 -0
  187. data/test/dummy/storage/.keep +0 -0
  188. data/test/simple_form_test.rb +45 -44
  189. data/test/store_test.rb +5 -5
  190. data/test/test_helper.rb +18 -9
  191. data/test/ui/core/boxes/card_grid_test.rb +17 -0
  192. data/test/ui/core/boxes/card_test.rb +46 -12
  193. data/test/ui/core/boxes/jumbotron_test.rb +2 -2
  194. data/test/ui/core/component_test.rb +1 -1
  195. data/test/ui/core/forms/buttons/button_group_test.rb +1 -1
  196. data/test/ui/core/forms/buttons/button_link_test.rb +1 -1
  197. data/test/ui/core/forms/buttons/button_test.rb +2 -2
  198. data/test/ui/core/forms/choices/checkbox_field_test.rb +9 -2
  199. data/test/ui/core/forms/choices/choice_group_test.rb +11 -9
  200. data/test/ui/core/forms/choices/radio_field_test.rb +1 -1
  201. data/test/ui/core/forms/dates/date_picker_field_test.rb +1 -1
  202. data/test/ui/core/forms/dropdowns/dropdown_test.rb +2 -2
  203. data/test/ui/core/forms/files/file_field_test.rb +12 -0
  204. data/test/ui/core/forms/numbers/formula_field_test.rb +1 -1
  205. data/test/ui/core/forms/numbers/range_field_test.rb +37 -2
  206. data/test/ui/core/forms/numbers/slider_field_test.rb +26 -0
  207. data/test/ui/core/forms/selects/multi_column_field_test.rb +1 -1
  208. data/test/ui/core/forms/selects/multi_select_field_test.rb +7 -7
  209. data/test/ui/core/forms/selects/select_field_test.rb +3 -3
  210. data/test/ui/core/forms/surrounds/surround_field_test.rb +39 -3
  211. data/test/ui/core/forms/textareas/markdown_editor_field_test.rb +1 -1
  212. data/test/ui/core/forms/texts/auto_complete_field_test.rb +8 -8
  213. data/test/ui/core/forms/texts/text_field_test.rb +2 -2
  214. data/test/ui/core/layouts/col_test.rb +11 -2
  215. data/test/ui/core/layouts/container_test.rb +15 -1
  216. data/test/ui/core/layouts/row_test.rb +68 -3
  217. data/test/ui/core/lists/list_group_test.rb +1 -1
  218. data/test/ui/core/navigations/breadcrumb_test.rb +1 -1
  219. data/test/ui/core/navigations/link_test.rb +1 -1
  220. data/test/ui/core/navigations/nav_test.rb +17 -5
  221. data/test/ui/core/navigations/navbar_test.rb +7 -8
  222. data/test/ui/core/navigations/tab_group_test.rb +4 -4
  223. data/test/ui/core/notifications/alert_test.rb +2 -2
  224. data/test/ui/core/notifications/badge_test.rb +3 -3
  225. data/test/ui/core/notifications/progress_bar_test.rb +1 -1
  226. data/test/ui/core/notifications/toast_test.rb +10 -1
  227. data/test/ui/core/windows/modal_test.rb +15 -1
  228. data/test/ui/utils/breakdown_class_name_generator_test.rb +74 -0
  229. data/test/ui/ux/containers/panel_test.rb +5 -5
  230. data/test/ui/ux/tables/table_test.rb +6 -6
  231. data/test/ui_bibz_test.rb +1 -1
  232. data/ui_bibz.gemspec +16 -16
  233. metadata +100 -109
  234. data/.rubocop_todo.yml +0 -25
  235. data/app/assets/javascripts/fix_bootstrap.coffee +0 -7
  236. data/app/assets/javascripts/form.coffee +0 -83
  237. data/app/assets/javascripts/formula.coffee +0 -69
  238. data/app/assets/javascripts/input-connected.coffee +0 -101
  239. data/app/assets/javascripts/interface.coffee +0 -55
  240. data/app/assets/javascripts/jquery.multi-select-extend.coffee +0 -38
  241. data/app/assets/javascripts/table.coffee +0 -36
  242. data/app/assets/javascripts/ui_bibz.coffee.erb +0 -75
  243. data/app/assets/stylesheets/_custom_variables.sass +0 -20
  244. data/app/assets/stylesheets/_panel.scss +0 -315
  245. data/app/assets/stylesheets/bootstrap-switch.sass +0 -159
  246. data/app/assets/stylesheets/boxes.sass +0 -5
  247. data/app/assets/stylesheets/containers.sass +0 -2
  248. data/app/assets/stylesheets/fix-bootstrap-4.sass +0 -19
  249. data/app/assets/stylesheets/fix_addon.sass +0 -216
  250. data/app/assets/stylesheets/forms.sass +0 -91
  251. data/app/assets/stylesheets/navigations.sass +0 -17
  252. data/app/assets/stylesheets/notifications.sass +0 -42
  253. data/app/assets/stylesheets/tables.sass +0 -66
  254. data/app/assets/stylesheets/ui_bibz.sass.erb +0 -55
  255. data/lib/generators/ui_bibz/install_generator.rb +0 -17
  256. data/lib/generators/ui_bibz/templates/ui_bibz_initializer.rb +0 -5
  257. data/lib/ui_bibz/ui/core/forms/selects/multi_select_field.rb +0 -125
  258. data/lib/ui_bibz/ui/core/icons/glyph_group.rb +0 -101
  259. data/test/dummy/bin/bundle +0 -5
  260. data/test/ui/core/forms/files/text_field_test.rb +0 -12
  261. data/test/ui/core/forms/selects/dropdown_select_field_test.rb +0 -84
  262. data/test/ui/core/icons/glyph_group_test.rb +0 -37
@@ -6,7 +6,7 @@
6
6
  #
7
7
  default: &default
8
8
  adapter: sqlite3
9
- pool: 5
9
+ pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
10
10
  timeout: 5000
11
11
 
12
12
  development:
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Load the Rails application.
4
- require File.expand_path('application', __dir__)
4
+ require_relative 'application'
5
5
 
6
6
  # Initialize the Rails application.
7
7
  Rails.application.initialize!
@@ -11,33 +11,54 @@ Rails.application.configure do
11
11
  # Do not eager load code on boot.
12
12
  config.eager_load = false
13
13
 
14
- # Show full error reports and disable caching.
15
- config.consider_all_requests_local = true
16
- config.action_controller.perform_caching = false
14
+ # Show full error reports.
15
+ config.consider_all_requests_local = true
16
+
17
+ # Enable/disable caching. By default caching is disabled.
18
+ # Run rails dev:cache to toggle caching.
19
+ if Rails.root.join('tmp/caching-dev.txt').exist?
20
+ config.action_controller.perform_caching = true
21
+ config.action_controller.enable_fragment_cache_logging = true
22
+
23
+ config.cache_store = :memory_store
24
+ config.public_file_server.headers = {
25
+ 'Cache-Control' => "public, max-age=#{2.days.to_i}"
26
+ }
27
+ else
28
+ config.action_controller.perform_caching = false
29
+
30
+ config.cache_store = :null_store
31
+ end
32
+
33
+ # Store uploaded files on the local file system (see config/storage.yml for options).
34
+ config.active_storage.service = :local
17
35
 
18
36
  # Don't care if the mailer can't send.
19
37
  config.action_mailer.raise_delivery_errors = false
20
38
 
39
+ config.action_mailer.perform_caching = false
40
+
21
41
  # Print deprecation notices to the Rails logger.
22
42
  config.active_support.deprecation = :log
23
43
 
24
44
  # Raise an error on page load if there are pending migrations.
25
45
  config.active_record.migration_error = :page_load
26
46
 
47
+ # Highlight code that triggered database queries in logs.
48
+ config.active_record.verbose_query_logs = true
49
+
27
50
  # Debug mode disables concatenation and preprocessing of assets.
28
51
  # This option may cause significant delays in view rendering with a large
29
52
  # number of complex assets.
30
53
  config.assets.debug = true
31
54
 
32
- # Asset digests allow you to set far-future HTTP expiration dates on all assets,
33
- # yet still be able to expire them through the digest params.
34
- config.assets.digest = true
55
+ # Suppress logger output for asset requests.
56
+ config.assets.quiet = true
35
57
 
36
- # Adds additional error checking when serving assets at runtime.
37
- # Checks for improperly declared sprockets dependencies.
38
- # Raises helpful error messages.
39
- config.assets.raise_runtime_errors = true
40
-
41
- # Raises error for missing translations
58
+ # Raises error for missing translations.
42
59
  # config.action_view.raise_on_missing_translations = true
60
+
61
+ # Use an evented file watcher to asynchronously detect changes in source code,
62
+ # routes, locales, etc. This feature depends on the listen gem.
63
+ # config.file_watcher = ActiveSupport::EventedFileUpdateChecker
43
64
  end
@@ -16,33 +16,35 @@ Rails.application.configure do
16
16
  config.consider_all_requests_local = false
17
17
  config.action_controller.perform_caching = true
18
18
 
19
- # Enable Rack::Cache to put a simple HTTP cache in front of your application
20
- # Add `rack-cache` to your Gemfile before enabling this.
21
- # For large-scale production use, consider using a caching reverse proxy like
22
- # NGINX, varnish or squid.
23
- # config.action_dispatch.rack_cache = true
19
+ # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
20
+ # or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
21
+ # config.require_master_key = true
24
22
 
25
23
  # Disable serving static files from the `/public` folder by default since
26
24
  # Apache or NGINX already handles this.
27
- config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
25
+ config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
28
26
 
29
- # Compress JavaScripts and CSS.
30
- config.assets.js_compressor = :uglifier
27
+ # Compress CSS using a preprocessor.
31
28
  # config.assets.css_compressor = :sass
32
29
 
33
30
  # Do not fallback to assets pipeline if a precompiled asset is missed.
34
31
  config.assets.compile = false
35
32
 
36
- # Asset digests allow you to set far-future HTTP expiration dates on all assets,
37
- # yet still be able to expire them through the digest params.
38
- config.assets.digest = true
39
-
40
- # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
33
+ # Enable serving of images, stylesheets, and JavaScripts from an asset server.
34
+ # config.action_controller.asset_host = 'http://assets.example.com'
41
35
 
42
36
  # Specifies the header that your server uses for sending files.
43
37
  # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
44
38
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
45
39
 
40
+ # Store uploaded files on the local file system (see config/storage.yml for options).
41
+ config.active_storage.service = :local
42
+
43
+ # Mount Action Cable outside main process or domain.
44
+ # config.action_cable.mount_path = nil
45
+ # config.action_cable.url = 'wss://example.com/cable'
46
+ # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
47
+
46
48
  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
47
49
  # config.force_ssl = true
48
50
 
@@ -51,16 +53,16 @@ Rails.application.configure do
51
53
  config.log_level = :debug
52
54
 
53
55
  # Prepend all log lines with the following tags.
54
- # config.log_tags = [ :subdomain, :uuid ]
55
-
56
- # Use a different logger for distributed setups.
57
- # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
56
+ config.log_tags = [:request_id]
58
57
 
59
58
  # Use a different cache store in production.
60
59
  # config.cache_store = :mem_cache_store
61
60
 
62
- # Enable serving of images, stylesheets, and JavaScripts from an asset server.
63
- # config.action_controller.asset_host = 'http://assets.example.com'
61
+ # Use a real queuing backend for Active Job (and separate queues per environment).
62
+ # config.active_job.queue_adapter = :resque
63
+ # config.active_job.queue_name_prefix = "dummy_production"
64
+
65
+ config.action_mailer.perform_caching = false
64
66
 
65
67
  # Ignore bad email addresses and do not raise email delivery errors.
66
68
  # Set this to true and configure the email server for immediate delivery to raise delivery errors.
@@ -76,6 +78,37 @@ Rails.application.configure do
76
78
  # Use default logging formatter so that PID and timestamp are not suppressed.
77
79
  config.log_formatter = ::Logger::Formatter.new
78
80
 
81
+ # Use a different logger for distributed setups.
82
+ # require 'syslog/logger'
83
+ # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
84
+
85
+ if ENV["RAILS_LOG_TO_STDOUT"].present?
86
+ logger = ActiveSupport::Logger.new($stdout)
87
+ logger.formatter = config.log_formatter
88
+ config.logger = ActiveSupport::TaggedLogging.new(logger)
89
+ end
90
+
79
91
  # Do not dump schema after migrations.
80
92
  config.active_record.dump_schema_after_migration = false
93
+
94
+ # Inserts middleware to perform automatic connection switching.
95
+ # The `database_selector` hash is used to pass options to the DatabaseSelector
96
+ # middleware. The `delay` is used to determine how long to wait after a write
97
+ # to send a subsequent read to the primary.
98
+ #
99
+ # The `database_resolver` class is used by the middleware to determine which
100
+ # database is appropriate to use based on the time delay.
101
+ #
102
+ # The `database_resolver_context` class is used by the middleware to set
103
+ # timestamps for the last write to the primary. The resolver uses the context
104
+ # class timestamps to determine how long to wait before reading from the
105
+ # replica.
106
+ #
107
+ # By default Rails will store a last write timestamp in the session. The
108
+ # DatabaseSelector middleware is designed as such you can define your own
109
+ # strategy for connection switching and pass that into the middleware through
110
+ # these configuration options.
111
+ # config.active_record.database_selector = { delay: 2.seconds }
112
+ # config.active_record.database_resolver = ActiveRecord::Middleware::DatabaseSelector::Resolver
113
+ # config.active_record.database_resolver_context = ActiveRecord::Middleware::DatabaseSelector::Resolver::Session
81
114
  end
@@ -1,26 +1,31 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # The test environment is used exclusively to run your application's
4
+ # test suite. You never need to work with it otherwise. Remember that
5
+ # your test database is "scratch space" for the test suite and is wiped
6
+ # and recreated between test runs. Don't rely on the data there!
7
+
3
8
  Rails.application.configure do
4
9
  # Settings specified here will take precedence over those in config/application.rb.
5
10
 
6
- # The test environment is used exclusively to run your application's
7
- # test suite. You never need to work with it otherwise. Remember that
8
- # your test database is "scratch space" for the test suite and is wiped
9
- # and recreated between test runs. Don't rely on the data there!
10
- config.cache_classes = true
11
+ config.cache_classes = false
12
+ config.action_view.cache_template_loading = true
11
13
 
12
14
  # Do not eager load code on boot. This avoids loading your whole application
13
15
  # just for the purpose of running a single test. If you are using a tool that
14
16
  # preloads Rails for running tests, you may have to set it to true.
15
17
  config.eager_load = false
16
18
 
17
- # Configure static file server for tests with Cache-Control for performance.
19
+ # Configure public file server for tests with Cache-Control for performance.
18
20
  config.public_file_server.enabled = true
19
- config.public_file_server.headers = { 'Cache-Control' => 'public, max-age=3600' }
21
+ config.public_file_server.headers = {
22
+ 'Cache-Control' => "public, max-age=#{1.hour.to_i}"
23
+ }
20
24
 
21
25
  # Show full error reports and disable caching.
22
26
  config.consider_all_requests_local = true
23
27
  config.action_controller.perform_caching = false
28
+ config.cache_store = :null_store
24
29
 
25
30
  # Raise exceptions instead of rendering exception templates.
26
31
  config.action_dispatch.show_exceptions = false
@@ -28,18 +33,19 @@ Rails.application.configure do
28
33
  # Disable request forgery protection in test environment.
29
34
  config.action_controller.allow_forgery_protection = false
30
35
 
36
+ # Store uploaded files on the local file system in a temporary directory.
37
+ config.active_storage.service = :test
38
+
39
+ config.action_mailer.perform_caching = false
40
+
31
41
  # Tell Action Mailer not to deliver emails to the real world.
32
42
  # The :test delivery method accumulates sent emails in the
33
43
  # ActionMailer::Base.deliveries array.
34
44
  config.action_mailer.delivery_method = :test
35
45
 
36
- # Randomize the order test cases are executed.
37
- config.active_support.test_order = :random
38
-
39
46
  # Print deprecation notices to the stderr.
40
47
  config.active_support.deprecation = :stderr
41
48
 
42
- # Raises error for missing translations
49
+ # Raises error for missing translations.
43
50
  # config.action_view.raise_on_missing_translations = true
44
- config.active_record.sqlite3.represent_boolean_as_integer = true
45
51
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+ # Be sure to restart your server when you modify this file.
3
+
4
+ # ActiveSupport::Reloader.to_prepare do
5
+ # ApplicationController.renderer.defaults.merge!(
6
+ # http_host: 'example.org',
7
+ # https: false
8
+ # )
9
+ # end
@@ -5,9 +5,10 @@
5
5
  # Version of your assets, change this if you want to expire all your assets.
6
6
  Rails.application.config.assets.version = '1.0'
7
7
 
8
- # Add additional assets to the asset load path
8
+ # Add additional assets to the asset load path.
9
9
  # Rails.application.config.assets.paths << Emoji.images_path
10
10
 
11
11
  # Precompile additional assets.
12
- # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
13
- # Rails.application.config.assets.precompile += %w( search.js )
12
+ # application.js, application.css, and all non-JS/CSS in the app/assets
13
+ # folder are already added.
14
+ # Rails.application.config.assets.precompile += %w( admin.js admin.css )
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  # Be sure to restart your server when you modify this file.
4
3
 
5
4
  # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+ # Be sure to restart your server when you modify this file.
3
+
4
+ # Define an application-wide content security policy
5
+ # For further information see the following documentation
6
+ # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
7
+
8
+ # Rails.application.config.content_security_policy do |policy|
9
+ # policy.default_src :self, :https
10
+ # policy.font_src :self, :https, :data
11
+ # policy.img_src :self, :https, :data
12
+ # policy.object_src :none
13
+ # policy.script_src :self, :https
14
+ # policy.style_src :self, :https
15
+
16
+ # # Specify URI for violation reports
17
+ # # policy.report_uri "/csp-violation-report-endpoint"
18
+ # end
19
+
20
+ # If you are using UJS then enable automatic nonce generation
21
+ # Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) }
22
+
23
+ # Set the nonce only to specific directives
24
+ # Rails.application.config.content_security_policy_nonce_directives = %w(script-src)
25
+
26
+ # Report CSP violations to a specified URI
27
+ # For further information see the following documentation:
28
+ # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
29
+ # Rails.application.config.content_security_policy_report_only = true
@@ -2,4 +2,6 @@
2
2
 
3
3
  # Be sure to restart your server when you modify this file.
4
4
 
5
+ # Specify a serializer for the signed and encrypted cookie jars.
6
+ # Valid options are :json, :marshal, and :hybrid.
5
7
  Rails.application.config.action_dispatch.cookies_serializer = :json
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  # Be sure to restart your server when you modify this file.
4
3
 
5
4
  # Add new inflection rules using the following format. Inflections
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
-
3
2
  # Be sure to restart your server when you modify this file.
4
3
 
5
4
  # Add new mime types for use in respond_to blocks:
@@ -7,10 +7,10 @@
7
7
 
8
8
  # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
9
9
  ActiveSupport.on_load(:action_controller) do
10
- wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
10
+ wrap_parameters format: [:json]
11
11
  end
12
12
 
13
13
  # To enable root element in JSON for ActiveRecord objects.
14
14
  # ActiveSupport.on_load(:active_record) do
15
- # self.include_root_in_json = true
15
+ # self.include_root_in_json = true
16
16
  # end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Puma can serve each request in a thread from an internal thread pool.
4
+ # The `threads` method setting takes two numbers: a minimum and maximum.
5
+ # Any libraries that use thread pools should be configured to match
6
+ # the maximum value specified for Puma. Default is set to 5 threads for minimum
7
+ # and maximum; this matches the default thread size of Active Record.
8
+ #
9
+ max_threads_count = ENV.fetch("RAILS_MAX_THREADS", 5)
10
+ min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
11
+ threads min_threads_count, max_threads_count
12
+
13
+ # Specifies the `port` that Puma will listen on to receive requests; default is 3000.
14
+ #
15
+ port ENV.fetch("PORT", 3000)
16
+
17
+ # Specifies the `environment` that Puma will run in.
18
+ #
19
+ environment ENV.fetch("RAILS_ENV", "development")
20
+
21
+ # Specifies the `pidfile` that Puma will use.
22
+ pidfile ENV.fetch("PIDFILE", "tmp/pids/server.pid")
23
+
24
+ # Specifies the number of `workers` to boot in clustered mode.
25
+ # Workers are forked web server processes. If using threads and workers together
26
+ # the concurrency of the application would be max `threads` * `workers`.
27
+ # Workers do not work on JRuby or Windows (both of which do not support
28
+ # processes).
29
+ #
30
+ # workers ENV.fetch("WEB_CONCURRENCY") { 2 }
31
+
32
+ # Use the `preload_app!` method when specifying a `workers` number.
33
+ # This directive tells Puma to first boot the application and load code
34
+ # before forking the application. This takes advantage of Copy On Write
35
+ # process behavior so workers use less memory.
36
+ #
37
+ # preload_app!
38
+
39
+ # Allow puma to be restarted by `rails restart` command.
40
+ plugin :tmp_restart
@@ -2,6 +2,9 @@
2
2
 
3
3
  Rails.application.routes.draw do
4
4
  resources :users
5
+
6
+ root to: "users#index"
7
+
5
8
  # The priority is based upon order of creation: first created -> highest priority.
6
9
  # See how all your routes lay out with "rake routes".
7
10
 
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ Spring.watch(
4
+ ".ruby-version",
5
+ ".rbenv-vars",
6
+ "tmp/restart.txt",
7
+ "tmp/caching-dev.txt"
8
+ )
@@ -0,0 +1,34 @@
1
+ test:
2
+ service: Disk
3
+ root: <%= Rails.root.join("tmp/storage") %>
4
+
5
+ local:
6
+ service: Disk
7
+ root: <%= Rails.root.join("storage") %>
8
+
9
+ # Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
10
+ # amazon:
11
+ # service: S3
12
+ # access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
13
+ # secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
14
+ # region: us-east-1
15
+ # bucket: your_own_bucket
16
+
17
+ # Remember not to checkin your GCS keyfile to a repository
18
+ # google:
19
+ # service: GCS
20
+ # project: your_project
21
+ # credentials: <%= Rails.root.join("path/to/gcs.keyfile") %>
22
+ # bucket: your_own_bucket
23
+
24
+ # Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key)
25
+ # microsoft:
26
+ # service: AzureStorage
27
+ # storage_account_name: your_account_name
28
+ # storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %>
29
+ # container: your_container_name
30
+
31
+ # mirror:
32
+ # service: Mirror
33
+ # primary: local
34
+ # mirrors: [ amazon, google, microsoft ]