ui_bibz 2.5.3 → 3.0.0.alpha5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (263) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +2 -2
  3. data/.gitignore +3 -2
  4. data/.rubocop.yml +107 -1
  5. data/.ruby-gemset +1 -0
  6. data/.ruby-version +1 -0
  7. data/Gemfile +1 -0
  8. data/Gemfile.lock +102 -111
  9. data/README.md +9 -52
  10. data/Rakefile +3 -2
  11. data/bin/test +7 -0
  12. data/config/initializers/will_paginate.rb +2 -1
  13. data/lib/ui_bibz.rb +17 -3
  14. data/lib/ui_bibz/concerns/models/searchable.rb +3 -3
  15. data/lib/ui_bibz/helpers/ui/core/boxes_helper.rb +9 -1
  16. data/lib/ui_bibz/helpers/ui/core/forms_helper.rb +20 -1
  17. data/lib/ui_bibz/helpers/ui/core/layouts_helper.rb +10 -2
  18. data/lib/ui_bibz/helpers/ui/core/lists_helper.rb +1 -1
  19. data/lib/ui_bibz/helpers/ui/core/notifications_helper.rb +9 -5
  20. data/lib/ui_bibz/helpers/ui/ux_helper.rb +2 -6
  21. data/lib/ui_bibz/infos.rb +11 -5
  22. data/lib/ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder.rb +15 -2
  23. data/lib/ui_bibz/inputs/ui_bibz_inputs/base_input.rb +4 -7
  24. data/lib/ui_bibz/inputs/ui_bibz_inputs/collection_input.rb +6 -9
  25. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_checkbox_field_input.rb +5 -1
  26. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_choice_field_input.rb +23 -0
  27. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_multi_select_field_input.rb +3 -3
  28. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_slider_field_input.rb +12 -0
  29. data/lib/ui_bibz/rails/engine.rb +1 -16
  30. data/lib/ui_bibz/railtie.rb +6 -0
  31. data/lib/ui_bibz/ui/concerns/card_itemable_concern.rb +67 -0
  32. data/lib/ui_bibz/ui/concerns/html_concern.rb +16 -0
  33. data/lib/ui_bibz/ui/core/boxes/card.rb +5 -50
  34. data/lib/ui_bibz/ui/core/boxes/card_accordion.rb +2 -0
  35. data/lib/ui_bibz/ui/core/boxes/card_column.rb +3 -1
  36. data/lib/ui_bibz/ui/core/boxes/card_deck.rb +3 -1
  37. data/lib/ui_bibz/ui/core/boxes/card_grid.rb +60 -0
  38. data/lib/ui_bibz/ui/core/boxes/card_group.rb +3 -1
  39. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_link.rb +0 -3
  40. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_subtitle.rb +47 -0
  41. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_text.rb +0 -3
  42. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_title.rb +1 -4
  43. data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +15 -0
  44. data/lib/ui_bibz/ui/core/boxes/components/card_col.rb +65 -0
  45. data/lib/ui_bibz/ui/core/boxes/components/card_footer.rb +0 -3
  46. data/lib/ui_bibz/ui/core/boxes/components/card_header.rb +2 -4
  47. data/lib/ui_bibz/ui/core/boxes/components/card_image.rb +1 -4
  48. data/lib/ui_bibz/ui/core/boxes/components/card_row.rb +65 -0
  49. data/lib/ui_bibz/ui/core/boxes/components/card_tab_group.rb +0 -4
  50. data/lib/ui_bibz/ui/core/boxes/jumbotron.rb +1 -4
  51. data/lib/ui_bibz/ui/core/component.rb +16 -9
  52. data/lib/ui_bibz/ui/core/forms/buttons/button.rb +1 -1
  53. data/lib/ui_bibz/ui/core/forms/buttons/button_group.rb +9 -11
  54. data/lib/ui_bibz/ui/core/forms/buttons/button_refresh.rb +0 -3
  55. data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_dropdown.rb +0 -3
  56. data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_split_dropdown.rb +0 -3
  57. data/lib/ui_bibz/ui/core/forms/choices/box_switch_field.rb +7 -10
  58. data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +14 -10
  59. data/lib/ui_bibz/ui/core/forms/choices/choice_group.rb +22 -2
  60. data/lib/ui_bibz/ui/core/forms/choices/components/choice.rb +24 -12
  61. data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +11 -6
  62. data/lib/ui_bibz/ui/core/forms/choices/switch_field.rb +1 -5
  63. data/lib/ui_bibz/ui/core/forms/dates/date_picker_field.rb +12 -15
  64. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_divider.rb +0 -1
  65. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_header.rb +0 -3
  66. data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +19 -20
  67. data/lib/ui_bibz/ui/core/forms/dropdowns/split_dropdown.rb +7 -5
  68. data/lib/ui_bibz/ui/core/forms/files/file_field.rb +20 -10
  69. data/lib/ui_bibz/ui/core/forms/numbers/formula_field.rb +16 -8
  70. data/lib/ui_bibz/ui/core/forms/numbers/number_field.rb +20 -3
  71. data/lib/ui_bibz/ui/core/forms/numbers/range_field.rb +33 -5
  72. data/lib/ui_bibz/ui/core/forms/numbers/slider_field.rb +132 -0
  73. data/lib/ui_bibz/ui/core/forms/numbers/slider_header.rb +71 -0
  74. data/lib/ui_bibz/ui/core/forms/selects/abstract_select.rb +0 -3
  75. data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +41 -62
  76. data/lib/ui_bibz/ui/core/forms/selects/multi_column_field.rb +0 -3
  77. data/lib/ui_bibz/ui/core/forms/selects/select_field.rb +2 -5
  78. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_addon.rb +1 -4
  79. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button.rb +0 -3
  80. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_group.rb +0 -3
  81. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_link.rb +0 -3
  82. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_refresh.rb +1 -12
  83. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_checkbox_field.rb +9 -4
  84. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_dropdown.rb +0 -3
  85. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_radio_field.rb +9 -4
  86. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_switch_field.rb +0 -3
  87. data/lib/ui_bibz/ui/core/forms/surrounds/surround_field.rb +1 -4
  88. data/lib/ui_bibz/ui/core/forms/textareas/markdown_editor_field.rb +4 -7
  89. data/lib/ui_bibz/ui/core/forms/texts/auto_complete_field.rb +2 -5
  90. data/lib/ui_bibz/ui/core/forms/texts/text_field.rb +0 -3
  91. data/lib/ui_bibz/ui/core/icons/components/glyph_counter.rb +0 -3
  92. data/lib/ui_bibz/ui/core/icons/components/glyph_text.rb +1 -4
  93. data/lib/ui_bibz/ui/core/icons/glyph.rb +1 -4
  94. data/lib/ui_bibz/ui/core/icons/star.rb +0 -3
  95. data/lib/ui_bibz/ui/core/layouts/col.rb +5 -42
  96. data/lib/ui_bibz/ui/core/layouts/container.rb +9 -6
  97. data/lib/ui_bibz/ui/core/layouts/row.rb +32 -2
  98. data/lib/ui_bibz/ui/core/lists/components/list.rb +6 -8
  99. data/lib/ui_bibz/ui/core/lists/components/list/list_body.rb +0 -3
  100. data/lib/ui_bibz/ui/core/lists/components/list/list_header.rb +0 -3
  101. data/lib/ui_bibz/ui/core/lists/list_group.rb +9 -6
  102. data/lib/ui_bibz/ui/core/navigations/breadcrumb.rb +3 -2
  103. data/lib/ui_bibz/ui/core/navigations/components/breadcrumb_link.rb +0 -3
  104. data/lib/ui_bibz/ui/core/navigations/components/nav_dropdown.rb +2 -5
  105. data/lib/ui_bibz/ui/core/navigations/components/nav_link.rb +3 -1
  106. data/lib/ui_bibz/ui/core/navigations/components/nav_link_link.rb +15 -6
  107. data/lib/ui_bibz/ui/core/navigations/components/nav_link_list.rb +0 -4
  108. data/lib/ui_bibz/ui/core/navigations/components/nav_link_span.rb +1 -4
  109. data/lib/ui_bibz/ui/core/navigations/components/nav_text.rb +0 -3
  110. data/lib/ui_bibz/ui/core/navigations/components/navbar_brand.rb +0 -3
  111. data/lib/ui_bibz/ui/core/navigations/components/navbar_form.rb +4 -4
  112. data/lib/ui_bibz/ui/core/navigations/components/navbar_nav.rb +1 -4
  113. data/lib/ui_bibz/ui/core/navigations/components/navbar_text.rb +0 -3
  114. data/lib/ui_bibz/ui/core/navigations/components/pagination_link.rb +0 -3
  115. data/lib/ui_bibz/ui/core/navigations/components/toolbar_form.rb +3 -3
  116. data/lib/ui_bibz/ui/core/navigations/link.rb +0 -3
  117. data/lib/ui_bibz/ui/core/navigations/nav.rb +37 -10
  118. data/lib/ui_bibz/ui/core/navigations/navbar.rb +28 -7
  119. data/lib/ui_bibz/ui/core/navigations/pagination.rb +3 -1
  120. data/lib/ui_bibz/ui/core/navigations/tab_group.rb +10 -5
  121. data/lib/ui_bibz/ui/core/navigations/toolbar.rb +2 -0
  122. data/lib/ui_bibz/ui/core/notifications/alert.rb +2 -2
  123. data/lib/ui_bibz/ui/core/notifications/badge.rb +2 -5
  124. data/lib/ui_bibz/ui/core/notifications/components/alert_body.rb +0 -3
  125. data/lib/ui_bibz/ui/core/notifications/components/alert_header.rb +4 -10
  126. data/lib/ui_bibz/ui/core/notifications/components/bar.rb +0 -3
  127. data/lib/ui_bibz/ui/core/notifications/components/toast_body.rb +0 -3
  128. data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +1 -6
  129. data/lib/ui_bibz/ui/core/notifications/progress_bar.rb +7 -5
  130. data/lib/ui_bibz/ui/core/notifications/spinner.rb +0 -3
  131. data/lib/ui_bibz/ui/core/notifications/toast.rb +14 -3
  132. data/lib/ui_bibz/ui/core/windows/components/modal_body.rb +0 -3
  133. data/lib/ui_bibz/ui/core/windows/components/modal_footer.rb +0 -3
  134. data/lib/ui_bibz/ui/core/windows/components/modal_header.rb +1 -7
  135. data/lib/ui_bibz/ui/core/windows/modal.rb +61 -14
  136. data/lib/ui_bibz/ui/extensions/core/component/glyph_extension.rb +4 -2
  137. data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +9 -9
  138. data/lib/ui_bibz/ui/extensions/core/forms/connect_extension.rb +2 -2
  139. data/lib/ui_bibz/ui/ux/containers/components/panel_body.rb +0 -3
  140. data/lib/ui_bibz/ui/ux/containers/components/panel_column.rb +2 -0
  141. data/lib/ui_bibz/ui/ux/containers/components/panel_deck.rb +2 -0
  142. data/lib/ui_bibz/ui/ux/containers/components/panel_footer.rb +0 -3
  143. data/lib/ui_bibz/ui/ux/containers/components/panel_group.rb +2 -0
  144. data/lib/ui_bibz/ui/ux/containers/components/panel_header.rb +1 -4
  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 +74 -0
  153. data/lib/ui_bibz/utils/internationalization.rb +1 -1
  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/models/user.rb +1 -0
  158. data/test/dummy/app/views/layouts/application.html.erb +4 -1
  159. data/{app/ui/.keep → test/dummy/app/views/users/index.html.erb} +0 -0
  160. data/test/dummy/bin/setup +17 -13
  161. data/test/dummy/config.ru +2 -1
  162. data/test/dummy/config/application.rb +1 -0
  163. data/test/dummy/config/cable.yml +10 -0
  164. data/test/dummy/config/database.yml +1 -1
  165. data/test/dummy/config/environment.rb +1 -1
  166. data/test/dummy/config/environments/development.rb +33 -12
  167. data/test/dummy/config/environments/production.rb +52 -19
  168. data/test/dummy/config/environments/test.rb +18 -12
  169. data/test/dummy/config/initializers/application_controller_renderer.rb +9 -0
  170. data/test/dummy/config/initializers/assets.rb +4 -3
  171. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -1
  172. data/test/dummy/config/initializers/content_security_policy.rb +29 -0
  173. data/test/dummy/config/initializers/cookies_serializer.rb +2 -0
  174. data/test/dummy/config/initializers/inflections.rb +0 -1
  175. data/test/dummy/config/initializers/mime_types.rb +0 -1
  176. data/test/dummy/config/initializers/wrap_parameters.rb +2 -2
  177. data/test/dummy/config/puma.rb +40 -0
  178. data/test/dummy/config/routes.rb +3 -0
  179. data/test/dummy/config/spring.rb +8 -0
  180. data/test/dummy/config/storage.yml +34 -0
  181. data/test/dummy/db/migrate/20150123191805_create_users.rb +1 -1
  182. data/test/dummy/db/schema.rb +24 -24
  183. data/test/dummy/public/404.html +6 -6
  184. data/test/dummy/public/422.html +6 -6
  185. data/test/dummy/public/500.html +6 -6
  186. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  187. data/test/dummy/public/apple-touch-icon.png +0 -0
  188. data/test/dummy/storage/.keep +0 -0
  189. data/test/simple_form_test.rb +45 -44
  190. data/test/store_test.rb +5 -5
  191. data/test/test_helper.rb +18 -9
  192. data/test/ui/core/boxes/card_grid_test.rb +17 -0
  193. data/test/ui/core/boxes/card_test.rb +46 -12
  194. data/test/ui/core/boxes/jumbotron_test.rb +2 -2
  195. data/test/ui/core/component_test.rb +1 -1
  196. data/test/ui/core/forms/buttons/button_group_test.rb +1 -1
  197. data/test/ui/core/forms/buttons/button_link_test.rb +1 -1
  198. data/test/ui/core/forms/buttons/button_test.rb +2 -2
  199. data/test/ui/core/forms/choices/checkbox_field_test.rb +8 -1
  200. data/test/ui/core/forms/choices/choice_group_test.rb +11 -9
  201. data/test/ui/core/forms/choices/radio_field_test.rb +1 -1
  202. data/test/ui/core/forms/dates/date_picker_field_test.rb +1 -1
  203. data/test/ui/core/forms/dropdowns/dropdown_test.rb +2 -2
  204. data/test/ui/core/forms/files/file_field_test.rb +12 -0
  205. data/test/ui/core/forms/numbers/formula_field_test.rb +1 -1
  206. data/test/ui/core/forms/numbers/range_field_test.rb +23 -2
  207. data/test/ui/core/forms/numbers/slider_field_test.rb +26 -0
  208. data/test/ui/core/forms/selects/multi_column_field_test.rb +1 -1
  209. data/test/ui/core/forms/selects/multi_select_field_test.rb +7 -7
  210. data/test/ui/core/forms/selects/select_field_test.rb +3 -3
  211. data/test/ui/core/forms/surrounds/surround_field_test.rb +15 -3
  212. data/test/ui/core/forms/textareas/markdown_editor_field_test.rb +1 -1
  213. data/test/ui/core/forms/texts/auto_complete_field_test.rb +8 -8
  214. data/test/ui/core/forms/texts/text_field_test.rb +2 -2
  215. data/test/ui/core/layouts/col_test.rb +11 -2
  216. data/test/ui/core/layouts/container_test.rb +15 -1
  217. data/test/ui/core/layouts/row_test.rb +68 -3
  218. data/test/ui/core/lists/list_group_test.rb +1 -1
  219. data/test/ui/core/navigations/breadcrumb_test.rb +1 -1
  220. data/test/ui/core/navigations/link_test.rb +1 -1
  221. data/test/ui/core/navigations/nav_test.rb +17 -5
  222. data/test/ui/core/navigations/navbar_test.rb +5 -4
  223. data/test/ui/core/navigations/tab_group_test.rb +4 -4
  224. data/test/ui/core/notifications/alert_test.rb +2 -2
  225. data/test/ui/core/notifications/badge_test.rb +3 -3
  226. data/test/ui/core/notifications/progress_bar_test.rb +1 -1
  227. data/test/ui/core/notifications/toast_test.rb +10 -1
  228. data/test/ui/core/windows/modal_test.rb +15 -1
  229. data/test/ui/utils/breakdown_class_name_generator_test.rb +60 -0
  230. data/test/ui/ux/containers/panel_test.rb +5 -5
  231. data/test/ui/ux/tables/table_test.rb +6 -6
  232. data/test/ui_bibz_test.rb +1 -1
  233. data/ui_bibz.gemspec +16 -16
  234. metadata +99 -109
  235. data/.rubocop_todo.yml +0 -25
  236. data/app/assets/javascripts/fix_bootstrap.coffee +0 -7
  237. data/app/assets/javascripts/form.coffee +0 -83
  238. data/app/assets/javascripts/formula.coffee +0 -69
  239. data/app/assets/javascripts/input-connected.coffee +0 -101
  240. data/app/assets/javascripts/interface.coffee +0 -55
  241. data/app/assets/javascripts/jquery.multi-select-extend.coffee +0 -38
  242. data/app/assets/javascripts/table.coffee +0 -36
  243. data/app/assets/javascripts/ui_bibz.coffee.erb +0 -75
  244. data/app/assets/stylesheets/_custom_variables.sass +0 -20
  245. data/app/assets/stylesheets/_panel.scss +0 -315
  246. data/app/assets/stylesheets/bootstrap-switch.sass +0 -159
  247. data/app/assets/stylesheets/boxes.sass +0 -5
  248. data/app/assets/stylesheets/containers.sass +0 -2
  249. data/app/assets/stylesheets/fix-bootstrap-4.sass +0 -19
  250. data/app/assets/stylesheets/fix_addon.sass +0 -216
  251. data/app/assets/stylesheets/forms.sass +0 -91
  252. data/app/assets/stylesheets/navigations.sass +0 -17
  253. data/app/assets/stylesheets/notifications.sass +0 -42
  254. data/app/assets/stylesheets/tables.sass +0 -66
  255. data/app/assets/stylesheets/ui_bibz.sass.erb +0 -55
  256. data/lib/generators/ui_bibz/install_generator.rb +0 -17
  257. data/lib/generators/ui_bibz/templates/ui_bibz_initializer.rb +0 -5
  258. data/lib/ui_bibz/ui/core/forms/selects/multi_select_field.rb +0 -125
  259. data/lib/ui_bibz/ui/core/icons/glyph_group.rb +0 -101
  260. data/test/dummy/bin/bundle +0 -5
  261. data/test/ui/core/forms/files/text_field_test.rb +0 -12
  262. data/test/ui/core/forms/selects/dropdown_select_field_test.rb +0 -84
  263. data/test/ui/core/icons/glyph_group_test.rb +0 -37
@@ -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 ]
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- class CreateUsers < ActiveRecord::Migration
3
+ class CreateUsers < ActiveRecord::Migration[4.2]
4
4
  def change
5
5
  create_table :users do |t|
6
6
  t.string :name_fr
@@ -4,37 +4,37 @@
4
4
  # of editing this file, please use the migrations feature of Active Record to
5
5
  # incrementally modify your database, and then regenerate this schema definition.
6
6
  #
7
- # Note that this schema.rb definition is the authoritative source for your
8
- # database schema. If you need to create the application database on another
9
- # system, you should be using db:schema:load, not running all the migrations
10
- # from scratch. The latter is a flawed and unsustainable approach (the more migrations
11
- # you'll amass, the slower it'll run and the greater likelihood for issues).
7
+ # This file is the source Rails uses to define your schema when running `rails
8
+ # db:schema:load`. When creating a new database, `rails db:schema:load` tends to
9
+ # be faster and is potentially less error prone than running all of your
10
+ # migrations from scratch. Old migrations may fail to apply correctly if those
11
+ # migrations use external dependencies or application code.
12
12
  #
13
13
  # It's strongly recommended that you check this file into your version control system.
14
14
 
15
15
  ActiveRecord::Schema.define(version: 20_170_309_084_453) do
16
- create_table 'continents', force: :cascade do |t|
17
- t.string 'name'
18
- t.datetime 'created_at', null: false
19
- t.datetime 'updated_at', null: false
16
+ create_table "continents", force: :cascade do |t|
17
+ t.string "name"
18
+ t.datetime "created_at", null: false
19
+ t.datetime "updated_at", null: false
20
20
  end
21
21
 
22
- create_table 'countries', force: :cascade do |t|
23
- t.string 'name'
24
- t.integer 'continent_id'
25
- t.datetime 'created_at', null: false
26
- t.datetime 'updated_at', null: false
22
+ create_table "countries", force: :cascade do |t|
23
+ t.string "name"
24
+ t.integer "continent_id"
25
+ t.datetime "created_at", null: false
26
+ t.datetime "updated_at", null: false
27
27
  end
28
28
 
29
- create_table 'users', force: :cascade do |t|
30
- t.string 'name_fr'
31
- t.string 'name_en'
32
- t.string 'body_fr'
33
- t.string 'body_en'
34
- t.boolean 'active'
35
- t.float 'price'
36
- t.string 'price_formula'
37
- t.datetime 'created_at', null: false
38
- t.datetime 'updated_at', null: false
29
+ create_table "users", force: :cascade do |t|
30
+ t.string "name_fr"
31
+ t.string "name_en"
32
+ t.string "body_fr"
33
+ t.string "body_en"
34
+ t.boolean "active"
35
+ t.float "price"
36
+ t.string "price_formula"
37
+ t.datetime "created_at", null: false
38
+ t.datetime "updated_at", null: false
39
39
  end
40
40
  end
@@ -4,7 +4,7 @@
4
4
  <title>The page you were looking for doesn't exist (404)</title>
5
5
  <meta name="viewport" content="width=device-width,initial-scale=1">
6
6
  <style>
7
- body {
7
+ .rails-default-error-page {
8
8
  background-color: #EFEFEF;
9
9
  color: #2E2F30;
10
10
  text-align: center;
@@ -12,13 +12,13 @@
12
12
  margin: 0;
13
13
  }
14
14
 
15
- div.dialog {
15
+ .rails-default-error-page div.dialog {
16
16
  width: 95%;
17
17
  max-width: 33em;
18
18
  margin: 4em auto 0;
19
19
  }
20
20
 
21
- div.dialog > div {
21
+ .rails-default-error-page div.dialog > div {
22
22
  border: 1px solid #CCC;
23
23
  border-right-color: #999;
24
24
  border-left-color: #999;
@@ -31,13 +31,13 @@
31
31
  box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
32
  }
33
33
 
34
- h1 {
34
+ .rails-default-error-page h1 {
35
35
  font-size: 100%;
36
36
  color: #730E15;
37
37
  line-height: 1.5em;
38
38
  }
39
39
 
40
- div.dialog > p {
40
+ .rails-default-error-page div.dialog > p {
41
41
  margin: 0 0 1em;
42
42
  padding: 1em;
43
43
  background-color: #F7F7F7;
@@ -54,7 +54,7 @@
54
54
  </style>
55
55
  </head>
56
56
 
57
- <body>
57
+ <body class="rails-default-error-page">
58
58
  <!-- This file lives in public/404.html -->
59
59
  <div class="dialog">
60
60
  <div>