ui_bibz 2.4.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (273) hide show
  1. checksums.yaml +4 -4
  2. data/.overcommit.yml +5 -0
  3. data/.rubocop.yml +52 -0
  4. data/.rubocop_todo.yml +25 -0
  5. data/Gemfile +5 -3
  6. data/Gemfile.lock +25 -1
  7. data/Rakefile +8 -6
  8. data/config/initializers/simple_form_init.rb +3 -1
  9. data/config/initializers/will_paginate.rb +11 -6
  10. data/lib/generators/ui_bibz/install_generator.rb +6 -5
  11. data/lib/generators/ui_bibz/templates/ui_bibz_initializer.rb +1 -1
  12. data/lib/tasks/ui_bibz_tasks.rake +2 -0
  13. data/lib/ui_bibz.rb +91 -100
  14. data/lib/ui_bibz/concerns/models/searchable.rb +56 -61
  15. data/lib/ui_bibz/helpers/ui/core/boxes_helper.rb +9 -9
  16. data/lib/ui_bibz/helpers/ui/core/forms_helper.rb +26 -26
  17. data/lib/ui_bibz/helpers/ui/core/icons_helper.rb +6 -6
  18. data/lib/ui_bibz/helpers/ui/core/layouts_helper.rb +5 -5
  19. data/lib/ui_bibz/helpers/ui/core/lists_helper.rb +5 -4
  20. data/lib/ui_bibz/helpers/ui/core/navigations_helper.rb +9 -9
  21. data/lib/ui_bibz/helpers/ui/core/notifications_helper.rb +11 -11
  22. data/lib/ui_bibz/helpers/ui/core/windows_helper.rb +3 -3
  23. data/lib/ui_bibz/helpers/ui/core_helper.rb +2 -0
  24. data/lib/ui_bibz/helpers/ui/ux_helper.rb +12 -12
  25. data/lib/ui_bibz/helpers/utils_helper.rb +8 -11
  26. data/lib/ui_bibz/infos.rb +9 -7
  27. data/lib/ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder.rb +40 -39
  28. data/lib/ui_bibz/inputs/ui_bibz_inputs/base_input.rb +6 -5
  29. data/lib/ui_bibz/inputs/ui_bibz_inputs/collection_input.rb +8 -6
  30. data/lib/ui_bibz/inputs/ui_bibz_inputs/string_input.rb +18 -18
  31. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_auto_complete_field_input.rb +3 -2
  32. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_box_switch_field_input.rb +3 -2
  33. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_checkbox_field_input.rb +3 -2
  34. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_choice_group_input.rb +6 -5
  35. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_date_picker_field_input.rb +3 -2
  36. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_dropdown_select_field_input.rb +3 -3
  37. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_file_field_input.rb +3 -2
  38. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_formula_field_input.rb +5 -4
  39. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_markdown_editor_field_input.rb +3 -2
  40. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_multi_column_field_input.rb +3 -2
  41. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_multi_select_field_input.rb +3 -3
  42. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_number_field_input.rb +3 -2
  43. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_radio_field_input.rb +7 -7
  44. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_range_field_input.rb +3 -2
  45. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_select_field_input.rb +3 -2
  46. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_switch_field_input.rb +3 -2
  47. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_text_field_input.rb +3 -2
  48. data/lib/ui_bibz/rails/engine.rb +11 -15
  49. data/lib/ui_bibz/ui/base.rb +10 -6
  50. data/lib/ui_bibz/ui/core/boxes/card.rb +31 -32
  51. data/lib/ui_bibz/ui/core/boxes/card_accordion.rb +7 -8
  52. data/lib/ui_bibz/ui/core/boxes/card_column.rb +11 -12
  53. data/lib/ui_bibz/ui/core/boxes/card_deck.rb +11 -12
  54. data/lib/ui_bibz/ui/core/boxes/card_group.rb +11 -12
  55. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_link.rb +5 -6
  56. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_text.rb +5 -6
  57. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_title.rb +5 -6
  58. data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +11 -12
  59. data/lib/ui_bibz/ui/core/boxes/components/card_footer.rb +7 -8
  60. data/lib/ui_bibz/ui/core/boxes/components/card_header.rb +12 -13
  61. data/lib/ui_bibz/ui/core/boxes/components/card_image.rb +6 -7
  62. data/lib/ui_bibz/ui/core/boxes/components/card_list_group.rb +4 -5
  63. data/lib/ui_bibz/ui/core/boxes/components/card_tab_group.rb +5 -6
  64. data/lib/ui_bibz/ui/core/boxes/jumbotron.rb +5 -6
  65. data/lib/ui_bibz/ui/core/component.rb +22 -20
  66. data/lib/ui_bibz/ui/core/forms/buttons/button.rb +14 -15
  67. data/lib/ui_bibz/ui/core/forms/buttons/button_group.rb +14 -15
  68. data/lib/ui_bibz/ui/core/forms/buttons/button_link.rb +5 -6
  69. data/lib/ui_bibz/ui/core/forms/buttons/button_refresh.rb +11 -11
  70. data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_dropdown.rb +5 -6
  71. data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_split_dropdown.rb +5 -6
  72. data/lib/ui_bibz/ui/core/forms/choices/box_switch_field.rb +5 -6
  73. data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +10 -11
  74. data/lib/ui_bibz/ui/core/forms/choices/choice_group.rb +8 -9
  75. data/lib/ui_bibz/ui/core/forms/choices/components/choice.rb +5 -6
  76. data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +6 -7
  77. data/lib/ui_bibz/ui/core/forms/choices/switch_field.rb +4 -5
  78. data/lib/ui_bibz/ui/core/forms/dates/date_picker_field.rb +22 -23
  79. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_divider.rb +3 -5
  80. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_header.rb +4 -5
  81. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_link.rb +6 -7
  82. data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +21 -22
  83. data/lib/ui_bibz/ui/core/forms/dropdowns/split_dropdown.rb +8 -9
  84. data/lib/ui_bibz/ui/core/forms/files/file_field.rb +5 -6
  85. data/lib/ui_bibz/ui/core/forms/numbers/formula_field.rb +10 -11
  86. data/lib/ui_bibz/ui/core/forms/numbers/number_field.rb +3 -4
  87. data/lib/ui_bibz/ui/core/forms/numbers/range_field.rb +3 -4
  88. data/lib/ui_bibz/ui/core/forms/selects/abstract_select.rb +9 -9
  89. data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +6 -7
  90. data/lib/ui_bibz/ui/core/forms/selects/multi_column_field.rb +9 -10
  91. data/lib/ui_bibz/ui/core/forms/selects/multi_select_field.rb +13 -14
  92. data/lib/ui_bibz/ui/core/forms/selects/select_field.rb +6 -7
  93. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_addon.rb +4 -4
  94. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button.rb +3 -3
  95. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_group.rb +3 -3
  96. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_link.rb +3 -3
  97. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_refresh.rb +3 -3
  98. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_checkbox_field.rb +4 -4
  99. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_dropdown.rb +3 -3
  100. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_radio_field.rb +3 -3
  101. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_switch_field.rb +3 -3
  102. data/lib/ui_bibz/ui/core/forms/surrounds/surround_field.rb +24 -25
  103. data/lib/ui_bibz/ui/core/forms/textareas/markdown_editor_field.rb +4 -5
  104. data/lib/ui_bibz/ui/core/forms/texts/auto_complete_field.rb +6 -7
  105. data/lib/ui_bibz/ui/core/forms/texts/text_field.rb +6 -6
  106. data/lib/ui_bibz/ui/core/icons/components/glyph_counter.rb +5 -6
  107. data/lib/ui_bibz/ui/core/icons/components/glyph_text.rb +5 -6
  108. data/lib/ui_bibz/ui/core/icons/glyph.rb +13 -14
  109. data/lib/ui_bibz/ui/core/icons/glyph_group.rb +16 -17
  110. data/lib/ui_bibz/ui/core/icons/star.rb +7 -9
  111. data/lib/ui_bibz/ui/core/layouts/col.rb +20 -21
  112. data/lib/ui_bibz/ui/core/layouts/container.rb +5 -6
  113. data/lib/ui_bibz/ui/core/layouts/row.rb +4 -5
  114. data/lib/ui_bibz/ui/core/lists/components/list.rb +19 -20
  115. data/lib/ui_bibz/ui/core/lists/components/list/list_body.rb +4 -5
  116. data/lib/ui_bibz/ui/core/lists/components/list/list_header.rb +5 -6
  117. data/lib/ui_bibz/ui/core/lists/list_group.rb +15 -16
  118. data/lib/ui_bibz/ui/core/navigations/breadcrumb.rb +5 -6
  119. data/lib/ui_bibz/ui/core/navigations/components/breadcrumb_link.rb +7 -8
  120. data/lib/ui_bibz/ui/core/navigations/components/nav_dropdown.rb +6 -7
  121. data/lib/ui_bibz/ui/core/navigations/components/nav_link.rb +12 -13
  122. data/lib/ui_bibz/ui/core/navigations/components/nav_link_link.rb +7 -8
  123. data/lib/ui_bibz/ui/core/navigations/components/nav_link_list.rb +4 -5
  124. data/lib/ui_bibz/ui/core/navigations/components/nav_link_span.rb +8 -9
  125. data/lib/ui_bibz/ui/core/navigations/components/nav_text.rb +8 -9
  126. data/lib/ui_bibz/ui/core/navigations/components/navbar_brand.rb +5 -6
  127. data/lib/ui_bibz/ui/core/navigations/components/navbar_form.rb +8 -8
  128. data/lib/ui_bibz/ui/core/navigations/components/navbar_nav.rb +6 -7
  129. data/lib/ui_bibz/ui/core/navigations/components/navbar_text.rb +6 -7
  130. data/lib/ui_bibz/ui/core/navigations/components/pagination_link.rb +5 -6
  131. data/lib/ui_bibz/ui/core/navigations/components/toolbar_form.rb +7 -7
  132. data/lib/ui_bibz/ui/core/navigations/link.rb +6 -7
  133. data/lib/ui_bibz/ui/core/navigations/nav.rb +20 -27
  134. data/lib/ui_bibz/ui/core/navigations/navbar.rb +23 -24
  135. data/lib/ui_bibz/ui/core/navigations/pagination.rb +9 -12
  136. data/lib/ui_bibz/ui/core/navigations/tab_group.rb +7 -8
  137. data/lib/ui_bibz/ui/core/navigations/toolbar.rb +14 -15
  138. data/lib/ui_bibz/ui/core/notifications/alert.rb +11 -12
  139. data/lib/ui_bibz/ui/core/notifications/badge.rb +7 -8
  140. data/lib/ui_bibz/ui/core/notifications/components/alert_body.rb +5 -6
  141. data/lib/ui_bibz/ui/core/notifications/components/alert_header.rb +8 -9
  142. data/lib/ui_bibz/ui/core/notifications/components/bar.rb +11 -12
  143. data/lib/ui_bibz/ui/core/notifications/components/toast_body.rb +5 -6
  144. data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +7 -8
  145. data/lib/ui_bibz/ui/core/notifications/progress_bar.rb +12 -13
  146. data/lib/ui_bibz/ui/core/notifications/spinner.rb +11 -12
  147. data/lib/ui_bibz/ui/core/notifications/toast.rb +9 -10
  148. data/lib/ui_bibz/ui/core/windows/components/modal_body.rb +4 -5
  149. data/lib/ui_bibz/ui/core/windows/components/modal_footer.rb +4 -5
  150. data/lib/ui_bibz/ui/core/windows/components/modal_header.rb +6 -7
  151. data/lib/ui_bibz/ui/core/windows/modal.rb +8 -9
  152. data/lib/ui_bibz/ui/extensions/core/component/glyph_extension.rb +13 -15
  153. data/lib/ui_bibz/ui/extensions/core/component/klass_extension.rb +9 -10
  154. data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +22 -21
  155. data/lib/ui_bibz/ui/extensions/core/forms/connect_extension.rb +9 -9
  156. data/lib/ui_bibz/ui/extensions/core/forms/surround_extension.rb +8 -10
  157. data/lib/ui_bibz/ui/ux/containers/components/panel_body.rb +5 -6
  158. data/lib/ui_bibz/ui/ux/containers/components/panel_column.rb +6 -7
  159. data/lib/ui_bibz/ui/ux/containers/components/panel_deck.rb +6 -7
  160. data/lib/ui_bibz/ui/ux/containers/components/panel_footer.rb +5 -6
  161. data/lib/ui_bibz/ui/ux/containers/components/panel_group.rb +6 -7
  162. data/lib/ui_bibz/ui/ux/containers/components/panel_header.rb +12 -12
  163. data/lib/ui_bibz/ui/ux/containers/components/panel_tab_group.rb +5 -6
  164. data/lib/ui_bibz/ui/ux/containers/components/panel_toolbar.rb +5 -6
  165. data/lib/ui_bibz/ui/ux/containers/panel.rb +21 -22
  166. data/lib/ui_bibz/ui/ux/tables/components/actions.rb +14 -16
  167. data/lib/ui_bibz/ui/ux/tables/components/as.rb +8 -9
  168. data/lib/ui_bibz/ui/ux/tables/components/column.rb +4 -4
  169. data/lib/ui_bibz/ui/ux/tables/components/columns.rb +4 -3
  170. data/lib/ui_bibz/ui/ux/tables/components/store.rb +5 -7
  171. data/lib/ui_bibz/ui/ux/tables/components/thead.rb +5 -6
  172. data/lib/ui_bibz/ui/ux/tables/extensions/actionable.rb +24 -23
  173. data/lib/ui_bibz/ui/ux/tables/extensions/paginable.rb +8 -10
  174. data/lib/ui_bibz/ui/ux/tables/extensions/searchable.rb +9 -9
  175. data/lib/ui_bibz/ui/ux/tables/extensions/sortable.rb +26 -26
  176. data/lib/ui_bibz/ui/ux/tables/table.rb +32 -39
  177. data/lib/ui_bibz/ui/ux/tables/table_card.rb +18 -26
  178. data/lib/ui_bibz/ui/ux/tables/table_pagination.rb +15 -18
  179. data/lib/ui_bibz/ui/ux/tables/table_pagination_per_page.rb +15 -18
  180. data/lib/ui_bibz/ui/ux/tables/table_search_field.rb +19 -23
  181. data/lib/ui_bibz/utils/glyph_changer.rb +13 -13
  182. data/lib/ui_bibz/utils/internationalization.rb +10 -7
  183. data/lib/ui_bibz/utils/screwdriver.rb +7 -5
  184. data/test/dummy/Rakefile +3 -1
  185. data/test/dummy/app/controllers/application_controller.rb +2 -0
  186. data/test/dummy/app/controllers/users_controller.rb +15 -14
  187. data/test/dummy/app/helpers/application_helper.rb +2 -0
  188. data/test/dummy/app/models/application_record.rb +2 -0
  189. data/test/dummy/app/models/continent.rb +2 -0
  190. data/test/dummy/app/models/country.rb +2 -0
  191. data/test/dummy/app/models/user.rb +2 -0
  192. data/test/dummy/bin/bundle +3 -1
  193. data/test/dummy/bin/rails +3 -1
  194. data/test/dummy/bin/rake +2 -0
  195. data/test/dummy/bin/setup +10 -8
  196. data/test/dummy/config.ru +2 -0
  197. data/test/dummy/config/application.rb +5 -4
  198. data/test/dummy/config/boot.rb +4 -2
  199. data/test/dummy/config/environment.rb +3 -1
  200. data/test/dummy/config/environments/development.rb +2 -0
  201. data/test/dummy/config/environments/production.rb +2 -0
  202. data/test/dummy/config/environments/test.rb +2 -0
  203. data/test/dummy/config/initializers/assets.rb +2 -0
  204. data/test/dummy/config/initializers/backtrace_silencers.rb +2 -0
  205. data/test/dummy/config/initializers/cookies_serializer.rb +2 -0
  206. data/test/dummy/config/initializers/filter_parameter_logging.rb +2 -0
  207. data/test/dummy/config/initializers/inflections.rb +2 -0
  208. data/test/dummy/config/initializers/mime_types.rb +2 -0
  209. data/test/dummy/config/initializers/session_store.rb +2 -0
  210. data/test/dummy/config/initializers/simple_form_bootstrap.rb +3 -1
  211. data/test/dummy/config/initializers/ui_bibz.rb +1 -1
  212. data/test/dummy/config/initializers/wrap_parameters.rb +2 -0
  213. data/test/dummy/config/routes.rb +2 -0
  214. data/test/dummy/db/migrate/20150123191805_create_users.rb +2 -0
  215. data/test/dummy/db/migrate/20170309084406_continents.rb +2 -0
  216. data/test/dummy/db/migrate/20170309084453_countries.rb +2 -0
  217. data/test/dummy/db/schema.rb +22 -22
  218. data/test/dummy/test/models/user_test.rb +2 -0
  219. data/test/factories/user.rb +6 -4
  220. data/test/simple_form_test.rb +28 -34
  221. data/test/store_test.rb +10 -9
  222. data/test/support/factory_bot.rb +9 -5
  223. data/test/test_helper.rb +8 -8
  224. data/test/ui/core/boxes/card_test.rb +28 -26
  225. data/test/ui/core/boxes/jumbotron_test.rb +4 -3
  226. data/test/ui/core/component_test.rb +4 -4
  227. data/test/ui/core/forms/buttons/button_group_test.rb +8 -7
  228. data/test/ui/core/forms/buttons/button_link_test.rb +16 -14
  229. data/test/ui/core/forms/buttons/button_refresh_test.rb +5 -5
  230. data/test/ui/core/forms/buttons/button_test.rb +25 -23
  231. data/test/ui/core/forms/choices/box_switch_field_test.rb +62 -62
  232. data/test/ui/core/forms/choices/checkbox_field_test.rb +7 -6
  233. data/test/ui/core/forms/choices/choice_group_test.rb +6 -5
  234. data/test/ui/core/forms/choices/radio_field_test.rb +7 -6
  235. data/test/ui/core/forms/dates/date_picker_field_test.rb +12 -11
  236. data/test/ui/core/forms/dropdowns/dropdown_test.rb +12 -11
  237. data/test/ui/core/forms/files/text_field_test.rb +7 -6
  238. data/test/ui/core/forms/numbers/formula_field_test.rb +7 -6
  239. data/test/ui/core/forms/numbers/number_field_test.rb +12 -11
  240. data/test/ui/core/forms/numbers/range_field_test.rb +12 -11
  241. data/test/ui/core/forms/selects/dropdown_select_field_test.rb +61 -60
  242. data/test/ui/core/forms/selects/multi_column_field_test.rb +14 -13
  243. data/test/ui/core/forms/selects/multi_select_field_test.rb +19 -18
  244. data/test/ui/core/forms/selects/select_field_test.rb +13 -13
  245. data/test/ui/core/forms/surrounds/surround_field_test.rb +54 -54
  246. data/test/ui/core/forms/textareas/markdown_editor_field_test.rb +7 -6
  247. data/test/ui/core/forms/texts/auto_complete_field_test.rb +8 -7
  248. data/test/ui/core/forms/texts/text_field_test.rb +17 -16
  249. data/test/ui/core/icons/glyph_group_test.rb +8 -8
  250. data/test/ui/core/icons/glyph_test.rb +4 -4
  251. data/test/ui/core/icons/star_test.rb +37 -36
  252. data/test/ui/core/layouts/col_test.rb +11 -10
  253. data/test/ui/core/layouts/container_test.rb +3 -2
  254. data/test/ui/core/layouts/row_test.rb +4 -3
  255. data/test/ui/core/lists/list_group_test.rb +7 -6
  256. data/test/ui/core/navigations/breadcrumb_test.rb +12 -14
  257. data/test/ui/core/navigations/link_test.rb +9 -8
  258. data/test/ui/core/navigations/nav_test.rb +22 -21
  259. data/test/ui/core/navigations/navbar_test.rb +11 -11
  260. data/test/ui/core/navigations/pagination_test.rb +14 -13
  261. data/test/ui/core/navigations/tab_group_test.rb +22 -21
  262. data/test/ui/core/navigations/toolbar_test.rb +4 -3
  263. data/test/ui/core/notifications/alert_test.rb +5 -4
  264. data/test/ui/core/notifications/badge_test.rb +5 -4
  265. data/test/ui/core/notifications/progress_bar_test.rb +13 -13
  266. data/test/ui/core/notifications/spinner_test.rb +9 -8
  267. data/test/ui/core/notifications/toast_test.rb +3 -2
  268. data/test/ui/core/windows/modal_test.rb +3 -2
  269. data/test/ui/ux/containers/panel_test.rb +7 -6
  270. data/test/ui/ux/tables/table_test.rb +33 -33
  271. data/test/ui_bibz_test.rb +3 -1
  272. data/ui_bibz.gemspec +32 -28
  273. metadata +73 -42
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ui_bibz/utils/internationalization'
2
4
  module UiBibz::Ui
3
5
  class Base
@@ -7,17 +9,19 @@ module UiBibz::Ui
7
9
  attr_accessor :output_buffer
8
10
 
9
11
  # To know if translation missing
10
- def i18n_set? key
11
- I18n.t key, :raise => true rescue false
12
+ def i18n_set?(key)
13
+ I18n.t key, raise: true
14
+ rescue StandardError
15
+ false
12
16
  end
13
17
 
14
18
  # Add "id" in url to match with current record
15
- def inject_url url, record
16
- url.gsub(/(\/id\/?)/, "/#{ record.id }/")
19
+ def inject_url(url, record)
20
+ url.gsub(%r{(/id/?)}, "/#{record.id}/")
17
21
  end
18
22
 
19
- def generate_id name = nil
20
- "#{ name || 'id' }-#{ Random.rand(99999) }"
23
+ def generate_id(name = nil)
24
+ "#{name || 'id'}-#{Random.rand(99_999)}"
21
25
  end
22
26
  end
23
27
  end
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ui_bibz/ui/core/boxes/components/card_header'
2
4
  require 'ui_bibz/ui/core/boxes/components/card_footer'
3
5
  require 'ui_bibz/ui/core/boxes/components/card_body'
4
6
  require 'ui_bibz/ui/core/boxes/components/card_image'
5
7
  require 'ui_bibz/ui/core/boxes/components/card_list_group'
6
8
  module UiBibz::Ui::Core::Boxes
7
-
8
9
  # Create a card
9
10
  #
10
11
  # This element is an extend of UiBibz::Ui::Core::Component.
@@ -20,7 +21,7 @@ module UiBibz::Ui::Core::Boxes
20
21
  #
21
22
  # You can add HTML attributes using the +html_options+.
22
23
  # You can pass arguments in options attribute:
23
- # * +status+ - status of élement with symbol value:
24
+ # * +status+ - status of element with symbol value:
24
25
  # (+:primary+, +:secondary+, +:info+, +:warning+, +:danger+)
25
26
  # * text - Hash (+:size+, +:position+)
26
27
  # (+:left+, +:right+, +:center+)
@@ -87,48 +88,47 @@ module UiBibz::Ui::Core::Boxes
87
88
  # end
88
89
  #
89
90
  class Card < UiBibz::Ui::Core::Component
90
-
91
91
  # See UiBibz::Ui::Core::Component.initialize
92
- def initialize content = nil, options = nil, html_options = nil, &block
92
+ def initialize(content = nil, options = nil, html_options = nil, &block)
93
93
  super
94
94
  @items = @content.nil? ? [] : [UiBibz::Ui::Core::Boxes::Components::CardBody.new(@content).render]
95
95
  end
96
96
 
97
97
  # Add Header which is a component
98
- def header content = nil, options = nil, html_options = nil, &block
98
+ def header(content = nil, options = nil, html_options = nil, &block)
99
99
  options, content = inherit_options(content, options, block)
100
- if is_tap(content, options)
101
- @header = UiBibz::Ui::Core::Boxes::Components::CardHeader.new(content, options, html_options).tap(&block).render
102
- else
103
- @header = UiBibz::Ui::Core::Boxes::Components::CardHeader.new(content, options, html_options, &block).render
104
- end
100
+ @header = if tap?(content, options)
101
+ UiBibz::Ui::Core::Boxes::Components::CardHeader.new(content, options, html_options).tap(&block).render
102
+ else
103
+ UiBibz::Ui::Core::Boxes::Components::CardHeader.new(content, options, html_options, &block).render
104
+ end
105
105
  end
106
106
 
107
107
  # Add Body div which is a component
108
- def body content = nil, options = nil, html_options = nil, &block
108
+ def body(content = nil, options = nil, html_options = nil, &block)
109
109
  options, content = inherit_options(content, options, block)
110
- if is_tap(content, options)
111
- content = (content || {}).merge(collapse: options.try(:[], :collapse), parent_collapse: @options[:parent_collapse] )
110
+ if tap?(content, options)
111
+ content = (content || {}).merge(collapse: options.try(:[], :collapse), parent_collapse: @options[:parent_collapse])
112
112
  @items << UiBibz::Ui::Core::Boxes::Components::CardBody.new(content, options, html_options).tap(&block).render
113
113
  else
114
- options = (options || {}).merge(collapse: options.try(:[], :collapse), parent_collapse: @options[:parent_collapse] )
114
+ options = (options || {}).merge(collapse: options.try(:[], :collapse), parent_collapse: @options[:parent_collapse])
115
115
  @items << UiBibz::Ui::Core::Boxes::Components::CardBody.new(content, options, html_options, &block).render
116
116
  end
117
117
  end
118
118
 
119
119
  # Add Footer which is a component
120
- def footer content = nil, options = nil, html_options = nil, &block
120
+ def footer(content = nil, options = nil, html_options = nil, &block)
121
121
  options, content = inherit_options(content, options, block)
122
122
  @footer = UiBibz::Ui::Core::Boxes::Components::CardFooter.new(content, options, html_options, &block).render
123
123
  end
124
124
 
125
125
  # Add List group which is a component
126
- def list_group content = nil, options = nil, html_options = nil, &block
126
+ def list_group(content = nil, options = nil, html_options = nil, &block)
127
127
  @items << UiBibz::Ui::Core::Boxes::Components::CardListGroup.new(content, options, html_options).tap(&block).render
128
128
  end
129
129
 
130
130
  # Add Image which is a component
131
- def image content = nil, options = nil, html_options = nil, &block
131
+ def image(content = nil, options = nil, html_options = nil, &block)
132
132
  @items << UiBibz::Ui::Core::Boxes::Components::CardImage.new(content, options, html_options, &block).render
133
133
  end
134
134
 
@@ -137,15 +137,15 @@ module UiBibz::Ui::Core::Boxes
137
137
  content_tag :div, html_structure, html_options
138
138
  end
139
139
 
140
- protected
140
+ protected
141
141
 
142
142
  def html_structure
143
143
  [@header, @items.join, @footer].compact.join.html_safe
144
144
  end
145
145
 
146
- def inherit_options content, options, block
146
+ def inherit_options(content, options, block)
147
147
  if block.nil?
148
- options = (options || {}).merge({ outline: @options[:outline] , status: @options[:status] })
148
+ options = (options || {}).merge({ outline: @options[:outline], status: @options[:status] })
149
149
  else
150
150
  content = (content || {}).merge({ outline: @options[:outline], status: @options[:status] })
151
151
  end
@@ -153,36 +153,35 @@ module UiBibz::Ui::Core::Boxes
153
153
  end
154
154
 
155
155
  def component_html_classes
156
- ["card", text, type, tab_pane, outline]
156
+ ['card', text, type, tab_pane, outline]
157
157
  end
158
158
 
159
159
  def status
160
- unless @options[:status].nil?
161
- output = @options[:outline] ? ["border-#{ @options[:status] }"] : ["bg-#{ @options[:status] }"]
162
- output << "text-white" if @options[:status] != :light && @options[:status] != :warning
163
- output.join(' ')
164
- end
160
+ return if @options[:status].nil?
161
+
162
+ output = @options[:outline] ? ["border-#{@options[:status]}"] : ["bg-#{@options[:status]}"]
163
+ output << 'text-white' if @options[:status] != :light && @options[:status] != :warning
164
+ output.join(' ')
165
165
  end
166
166
 
167
167
  def text
168
- "text-#{ @options[:text][:size] || :md }-#{ @options[:text][:position] || :left }" unless @options[:text].nil?
168
+ "text-#{@options[:text][:size] || :md}-#{@options[:text][:position] || :left}" unless @options[:text].nil?
169
169
  end
170
170
 
171
171
  def card_block
172
- "card-block" if !@options[:block].nil? || @options[:tap].nil?
172
+ 'card-block' if !@options[:block].nil? || @options[:tap].nil?
173
173
  end
174
174
 
175
175
  def type
176
- "card-#{ @options[:type] }" unless @options[:type].nil?
176
+ "card-#{@options[:type]}" unless @options[:type].nil?
177
177
  end
178
178
 
179
179
  def tab_pane
180
- "tab-pane" if @options[:tab]
180
+ 'tab-pane' if @options[:tab]
181
181
  end
182
182
 
183
183
  def outline
184
- "bg-transparent" if @options[:outline]
184
+ 'bg-transparent' if @options[:outline]
185
185
  end
186
-
187
186
  end
188
187
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes
3
4
  # Create a card accordion
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes
30
31
  # end.render
31
32
  #
32
33
  class CardAccordion < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  @items = []
38
38
  end
@@ -42,24 +42,23 @@ module UiBibz::Ui::Core::Boxes
42
42
  content_tag :div, @items.join.html_safe, html_options
43
43
  end
44
44
 
45
- def card content = nil, options = nil, html_options = nil, &block
45
+ def card(content = nil, options = nil, html_options = nil, &block)
46
46
  content = (content || {}).merge({ parent_collapse: id })
47
47
  @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
48
48
  end
49
49
 
50
- private
50
+ private
51
51
 
52
52
  def id
53
- @id ||= generate_id("card-accordion-id")
53
+ @id ||= generate_id('card-accordion-id')
54
54
  end
55
55
 
56
56
  def component_html_classes
57
- "accordion"
57
+ 'accordion'
58
58
  end
59
59
 
60
60
  def component_html_options
61
61
  { id: id }
62
62
  end
63
-
64
63
  end
65
64
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes
3
4
  # Create a card column
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes
30
31
  # end.render
31
32
  #
32
33
  class CardColumn < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  @items = []
38
38
  end
@@ -42,19 +42,18 @@ module UiBibz::Ui::Core::Boxes
42
42
  content_tag :div, @items.join.html_safe, html_options
43
43
  end
44
44
 
45
- def card content = nil, options = nil, html_options = nil, &block
46
- if is_tap content, options
47
- @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
48
- else
49
- @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
50
- end
45
+ def card(content = nil, options = nil, html_options = nil, &block)
46
+ @items << if tap? content, options
47
+ UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
48
+ else
49
+ UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
50
+ end
51
51
  end
52
52
 
53
- private
53
+ private
54
54
 
55
55
  def component_html_classes
56
- "card-columns"
56
+ 'card-columns'
57
57
  end
58
-
59
58
  end
60
59
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes
3
4
  # Create a card deck
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes
30
31
  # end.render
31
32
  #
32
33
  class CardDeck < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  @items = []
38
38
  end
@@ -44,19 +44,18 @@ module UiBibz::Ui::Core::Boxes
44
44
  end
45
45
  end
46
46
 
47
- def card content = nil, options = nil, html_options = nil, &block
48
- if is_tap content, options
49
- @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
50
- else
51
- @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
52
- end
47
+ def card(content = nil, options = nil, html_options = nil, &block)
48
+ @items << if tap? content, options
49
+ UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
50
+ else
51
+ UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
52
+ end
53
53
  end
54
54
 
55
- private
55
+ private
56
56
 
57
57
  def component_html_classes
58
- "card-deck-wrapper"
58
+ 'card-deck-wrapper'
59
59
  end
60
-
61
60
  end
62
61
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes
3
4
  # Create a card group
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes
30
31
  # end.render
31
32
  #
32
33
  class CardGroup < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  @items = []
38
38
  end
@@ -42,19 +42,18 @@ module UiBibz::Ui::Core::Boxes
42
42
  content_tag :div, @items.join.html_safe, html_options
43
43
  end
44
44
 
45
- def card content = nil, options = nil, html_options = nil, &block
46
- if is_tap content, options
47
- @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
48
- else
49
- @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
50
- end
45
+ def card(content = nil, options = nil, html_options = nil, &block)
46
+ @items << if tap? content, options
47
+ UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
48
+ else
49
+ UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
50
+ end
51
51
  end
52
52
 
53
- private
53
+ private
54
54
 
55
55
  def component_html_classes
56
- "card-group"
56
+ 'card-group'
57
57
  end
58
-
59
58
  end
60
59
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes::Components::Body
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes::Components::Body
3
4
  # Create a card block title
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes::Components::Body
30
31
  # end.render
31
32
  #
32
33
  class CardBodyLink < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  end
38
38
 
@@ -41,11 +41,10 @@ module UiBibz::Ui::Core::Boxes::Components::Body
41
41
  link_to content, options[:url], html_options
42
42
  end
43
43
 
44
- private
44
+ private
45
45
 
46
46
  def component_html_classes
47
- "card-link"
47
+ 'card-link'
48
48
  end
49
-
50
49
  end
51
50
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes::Components::Body
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes::Components::Body
3
4
  # Create a card block title
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes::Components::Body
30
31
  # end.render
31
32
  #
32
33
  class CardBodyText < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  end
38
38
 
@@ -41,11 +41,10 @@ module UiBibz::Ui::Core::Boxes::Components::Body
41
41
  content_tag :p, content.html_safe, html_options
42
42
  end
43
43
 
44
- private
44
+ private
45
45
 
46
46
  def component_html_classes
47
- "card-text"
47
+ 'card-text'
48
48
  end
49
-
50
49
  end
51
50
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes::Components::Body
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes::Components::Body
3
4
  # Create a card block title
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes::Components::Body
30
31
  # end.render
31
32
  #
32
33
  class CardBodyTitle < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  end
38
38
 
@@ -41,11 +41,10 @@ module UiBibz::Ui::Core::Boxes::Components::Body
41
41
  content_tag :h4, content, html_options
42
42
  end
43
43
 
44
- private
44
+ private
45
45
 
46
46
  def component_html_classes
47
- "card-title"
47
+ 'card-title'
48
48
  end
49
-
50
49
  end
51
50
  end