yousty-activeadmin 1.0.4.pre → 1.0.5.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +261 -211
  3. data/CONTRIBUTING.md +73 -39
  4. data/Gemfile +38 -20
  5. data/Guardfile +1 -0
  6. data/LICENSE +1 -1
  7. data/README.md +48 -24
  8. data/Rakefile +12 -4
  9. data/activeadmin.gemspec +21 -26
  10. data/app/assets/javascripts/active_admin/application.js.coffee +34 -5
  11. data/app/assets/javascripts/active_admin/base.js.coffee +11 -2
  12. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
  13. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
  14. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
  15. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +3 -4
  16. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +51 -55
  17. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
  18. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
  19. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +37 -0
  20. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
  21. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +29 -58
  22. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +2 -3
  23. data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
  24. data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +51 -15
  25. data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
  26. data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
  27. data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
  28. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
  29. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
  30. data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
  31. data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -12
  32. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +3 -1
  33. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  34. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  35. data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
  36. data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +0 -0
  37. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
  38. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  39. data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +1 -0
  40. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  41. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  42. data/app/assets/stylesheets/active_admin/mixins/{_all.css.scss → _all.scss} +0 -0
  43. data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -0
  44. data/app/assets/stylesheets/active_admin/mixins/{_gradients.css.scss → _gradients.scss} +1 -1
  45. data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
  46. data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
  47. data/app/assets/stylesheets/active_admin/mixins/{_rounded.css.scss → _rounded.scss} +0 -0
  48. data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +7 -1
  49. data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -0
  50. data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
  51. data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
  52. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +10 -7
  53. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  54. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  55. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
  56. data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
  57. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  58. data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
  59. data/app/views/active_admin/devise/sessions/new.html.erb +8 -8
  60. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  61. data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
  62. data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
  63. data/config/locales/ar.yml +120 -0
  64. data/config/locales/bg.yml +26 -6
  65. data/config/locales/bs.yml +122 -0
  66. data/config/locales/ca.yml +10 -1
  67. data/config/locales/cs.yml +7 -2
  68. data/config/locales/da.yml +7 -3
  69. data/config/locales/de-CH.yml +14 -31
  70. data/config/locales/de.yml +33 -33
  71. data/config/locales/el.yml +127 -0
  72. data/config/locales/en-GB.yml +11 -4
  73. data/config/locales/en.yml +21 -4
  74. data/config/locales/{es_MX.yml → es-MX.yml} +14 -24
  75. data/config/locales/es.yml +32 -25
  76. data/config/locales/fa.yml +120 -0
  77. data/config/locales/fi.yml +9 -5
  78. data/config/locales/fr.yml +28 -12
  79. data/config/locales/he.yml +7 -3
  80. data/config/locales/hr.yml +42 -11
  81. data/config/locales/hu.yml +10 -3
  82. data/config/locales/it.yml +31 -3
  83. data/config/locales/ja.yml +17 -4
  84. data/config/locales/ko.yml +7 -1
  85. data/config/locales/lt.yml +42 -11
  86. data/config/locales/lv.yml +7 -3
  87. data/config/locales/{no-NB.yml → nb.yml} +46 -15
  88. data/config/locales/nl.yml +36 -5
  89. data/config/locales/pl.yml +13 -8
  90. data/config/locales/pt-BR.yml +36 -5
  91. data/config/locales/pt-PT.yml +8 -4
  92. data/config/locales/ro.yml +7 -3
  93. data/config/locales/ru.yml +26 -5
  94. data/config/locales/sv-SE.yml +9 -5
  95. data/config/locales/tr.yml +10 -3
  96. data/config/locales/uk.yml +36 -12
  97. data/config/locales/vi.yml +7 -3
  98. data/config/locales/zh-CN.yml +26 -10
  99. data/config/locales/zh-TW.yml +19 -13
  100. data/docs/0-installation.md +14 -6
  101. data/docs/1-general-configuration.md +8 -5
  102. data/docs/10-custom-pages.md +68 -70
  103. data/docs/11-decorators.md +48 -59
  104. data/docs/12-arbre-components.md +79 -73
  105. data/docs/13-authorization-adapter.md +128 -107
  106. data/docs/14-gotchas.md +90 -0
  107. data/docs/2-resource-customization.md +82 -15
  108. data/docs/3-index-pages.md +71 -12
  109. data/docs/3-index-pages/custom-index.md +31 -0
  110. data/docs/3-index-pages/index-as-table.md +45 -2
  111. data/docs/4-csv-format.md +1 -1
  112. data/docs/5-forms.md +78 -29
  113. data/docs/6-show-pages.md +31 -3
  114. data/docs/7-sidebars.md +46 -25
  115. data/docs/8-custom-actions.md +98 -77
  116. data/docs/9-batch-actions.md +211 -133
  117. data/docs/README.md +24 -0
  118. data/features/action_item.feature +3 -3
  119. data/features/authorization_pundit.feature +37 -0
  120. data/features/belongs_to.feature +3 -0
  121. data/features/breadcrumb.feature +48 -0
  122. data/features/comments/commenting.feature +44 -13
  123. data/features/development_reloading.feature +3 -4
  124. data/features/edit_page.feature +9 -19
  125. data/features/favicon.feature +3 -3
  126. data/features/i18n.feature +5 -0
  127. data/features/index/batch_actions.feature +41 -0
  128. data/features/index/filters.feature +23 -0
  129. data/features/index/format_as_csv.feature +90 -4
  130. data/features/index/index_as_blog.feature +4 -4
  131. data/features/index/index_as_table.feature +102 -6
  132. data/features/index/index_blank_slate.feature +22 -0
  133. data/features/index/index_scope_to.feature +16 -16
  134. data/features/index/page_title.feature +11 -0
  135. data/features/index/pagination.feature +1 -1
  136. data/features/index/switch_index_view.feature +14 -14
  137. data/features/new_page.feature +10 -20
  138. data/features/registering_pages.feature +1 -1
  139. data/features/renamed_resource.feature +32 -0
  140. data/features/show/page_title.feature +11 -0
  141. data/features/show/tabs.feature +27 -0
  142. data/features/sidebar_sections.feature +12 -0
  143. data/features/specifying_actions.feature +3 -3
  144. data/features/step_definitions/action_item_steps.rb +2 -2
  145. data/features/step_definitions/action_link_steps.rb +14 -1
  146. data/features/step_definitions/additional_web_steps.rb +17 -18
  147. data/features/step_definitions/asset_steps.rb +3 -3
  148. data/features/step_definitions/attribute_steps.rb +8 -3
  149. data/features/step_definitions/batch_action_steps.rb +26 -9
  150. data/features/step_definitions/blog_steps.rb +3 -0
  151. data/features/step_definitions/breadcrumb_steps.rb +1 -1
  152. data/features/step_definitions/comment_steps.rb +1 -1
  153. data/features/step_definitions/configuration_steps.rb +1 -1
  154. data/features/step_definitions/dashboard_steps.rb +2 -2
  155. data/features/step_definitions/factory_steps.rb +6 -6
  156. data/features/step_definitions/filter_steps.rb +25 -3
  157. data/features/step_definitions/flash_steps.rb +3 -3
  158. data/features/step_definitions/format_steps.rb +17 -10
  159. data/features/step_definitions/index_scope_steps.rb +5 -5
  160. data/features/step_definitions/layout_steps.rb +1 -1
  161. data/features/step_definitions/member_link_steps.rb +2 -2
  162. data/features/step_definitions/menu_steps.rb +3 -3
  163. data/features/step_definitions/pagination_steps.rb +2 -3
  164. data/features/step_definitions/sidebar_steps.rb +8 -3
  165. data/features/step_definitions/site_title_steps.rb +6 -4
  166. data/features/step_definitions/symbol_leak_steps.rb +1 -1
  167. data/features/step_definitions/tab_steps.rb +5 -0
  168. data/features/step_definitions/table_steps.rb +4 -4
  169. data/features/step_definitions/user_steps.rb +15 -9
  170. data/features/step_definitions/web_steps.rb +10 -11
  171. data/features/sti_resource.feature +2 -10
  172. data/features/strong_parameters.feature +73 -0
  173. data/features/support/env.rb +35 -2
  174. data/features/support/paths.rb +2 -2
  175. data/features/support/selectors.rb +1 -1
  176. data/features/users/resetting_password.feature +7 -7
  177. data/lib/active_admin.rb +18 -13
  178. data/lib/active_admin/abstract_view_factory.rb +7 -17
  179. data/lib/active_admin/application.rb +50 -25
  180. data/lib/active_admin/asset_registration.rb +2 -2
  181. data/lib/active_admin/authorization_adapter.rb +2 -2
  182. data/lib/active_admin/base_controller.rb +2 -3
  183. data/lib/active_admin/base_controller/authorization.rb +13 -31
  184. data/lib/active_admin/batch_actions.rb +1 -1
  185. data/lib/active_admin/batch_actions/controller.rb +13 -7
  186. data/lib/active_admin/batch_actions/resource_extension.rb +43 -17
  187. data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
  188. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
  189. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
  190. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
  191. data/lib/active_admin/callbacks.rb +25 -24
  192. data/lib/active_admin/cancan_adapter.rb +7 -11
  193. data/lib/active_admin/csv_builder.rb +92 -15
  194. data/lib/active_admin/dependency.rb +93 -0
  195. data/lib/active_admin/deprecation.rb +6 -7
  196. data/lib/active_admin/devise.rb +26 -14
  197. data/lib/active_admin/dsl.rb +18 -11
  198. data/lib/active_admin/engine.rb +7 -2
  199. data/lib/active_admin/error.rb +59 -0
  200. data/lib/active_admin/filters/dsl.rb +2 -2
  201. data/lib/active_admin/filters/forms.rb +19 -30
  202. data/lib/active_admin/filters/formtastic_addons.rb +20 -11
  203. data/lib/active_admin/filters/resource_extension.rb +16 -9
  204. data/lib/active_admin/form_builder.rb +94 -105
  205. data/lib/active_admin/helpers/collection.rb +7 -13
  206. data/lib/active_admin/helpers/i18n.rb +7 -0
  207. data/lib/active_admin/helpers/optional_display.rb +5 -5
  208. data/lib/active_admin/helpers/scope_chain.rb +1 -1
  209. data/lib/active_admin/helpers/settings.rb +16 -9
  210. data/lib/active_admin/iconic.rb +17 -15
  211. data/lib/active_admin/iconic/icons.rb +136 -136
  212. data/lib/active_admin/inputs.rb +11 -7
  213. data/lib/active_admin/inputs/datepicker_input.rb +1 -1
  214. data/lib/active_admin/inputs/filters/base.rb +42 -0
  215. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  216. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  217. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  218. data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
  219. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  220. data/lib/active_admin/inputs/filters/select_input.rb +54 -0
  221. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  222. data/lib/active_admin/menu.rb +3 -3
  223. data/lib/active_admin/menu_collection.rb +1 -4
  224. data/lib/active_admin/namespace.rb +52 -29
  225. data/lib/active_admin/order_clause.rb +26 -0
  226. data/lib/active_admin/orm/active_record.rb +2 -0
  227. data/lib/active_admin/orm/active_record/comments.rb +48 -51
  228. data/lib/active_admin/orm/active_record/comments/comment.rb +16 -10
  229. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -1
  230. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -1
  231. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +15 -13
  232. data/lib/active_admin/page.rb +5 -1
  233. data/lib/active_admin/page_dsl.rb +1 -1
  234. data/lib/active_admin/page_presenter.rb +2 -2
  235. data/lib/active_admin/pundit_adapter.rb +68 -0
  236. data/lib/active_admin/resource.rb +12 -3
  237. data/lib/active_admin/resource/action_items.rb +15 -8
  238. data/lib/active_admin/resource/belongs_to.rb +7 -3
  239. data/lib/active_admin/resource/controllers.rb +1 -0
  240. data/lib/active_admin/resource/includes.rb +12 -0
  241. data/lib/active_admin/resource/menu.rb +5 -5
  242. data/lib/active_admin/resource/naming.rb +25 -47
  243. data/lib/active_admin/resource/page_presenters.rb +1 -1
  244. data/lib/active_admin/resource/routes.rb +26 -10
  245. data/lib/active_admin/resource/scope_to.rb +7 -7
  246. data/lib/active_admin/resource/sidebars.rb +1 -0
  247. data/lib/active_admin/resource_collection.rb +44 -16
  248. data/lib/active_admin/resource_controller.rb +6 -5
  249. data/lib/active_admin/resource_controller/data_access.rb +87 -82
  250. data/lib/active_admin/resource_controller/decorators.rb +91 -9
  251. data/lib/active_admin/resource_controller/streaming.rb +37 -0
  252. data/lib/active_admin/resource_dsl.rb +54 -10
  253. data/lib/active_admin/router.rb +7 -7
  254. data/lib/active_admin/scope.rb +6 -6
  255. data/lib/active_admin/sidebar_section.rb +10 -2
  256. data/lib/active_admin/version.rb +1 -1
  257. data/lib/active_admin/view_factory.rb +17 -16
  258. data/lib/active_admin/view_helpers.rb +0 -1
  259. data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
  260. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +13 -6
  261. data/lib/active_admin/view_helpers/display_helper.rb +30 -17
  262. data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -24
  263. data/lib/active_admin/view_helpers/fields_for.rb +2 -2
  264. data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
  265. data/lib/active_admin/view_helpers/form_helper.rb +5 -9
  266. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
  267. data/lib/active_admin/views/action_items.rb +2 -2
  268. data/lib/active_admin/views/components/action_list_popover.rb +1 -1
  269. data/lib/active_admin/views/components/active_admin_form.rb +123 -0
  270. data/lib/active_admin/views/components/attributes_table.rb +22 -13
  271. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  272. data/lib/active_admin/views/components/columns.rb +13 -7
  273. data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
  274. data/lib/active_admin/views/components/index_list.rb +7 -7
  275. data/lib/active_admin/views/components/paginated_collection.rb +33 -17
  276. data/lib/active_admin/views/components/panel.rb +8 -2
  277. data/lib/active_admin/views/components/popover.rb +1 -1
  278. data/lib/active_admin/views/components/scopes.rb +1 -1
  279. data/lib/active_admin/views/components/sidebar_section.rb +3 -2
  280. data/lib/active_admin/views/components/site_title.rb +2 -2
  281. data/lib/active_admin/views/components/status_tag.rb +34 -11
  282. data/lib/active_admin/views/components/table_for.rb +67 -22
  283. data/lib/active_admin/views/components/tabs.rb +28 -0
  284. data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  285. data/lib/active_admin/views/footer.rb +3 -3
  286. data/lib/active_admin/views/header.rb +3 -3
  287. data/lib/active_admin/views/index_as_blog.rb +6 -6
  288. data/lib/active_admin/views/index_as_grid.rb +2 -2
  289. data/lib/active_admin/views/index_as_table.rb +127 -40
  290. data/lib/active_admin/views/pages/base.rb +22 -18
  291. data/lib/active_admin/views/pages/form.rb +16 -6
  292. data/lib/active_admin/views/pages/index.rb +36 -20
  293. data/lib/active_admin/views/pages/layout.rb +1 -1
  294. data/lib/active_admin/views/pages/show.rb +4 -4
  295. data/lib/active_admin/views/tabbed_navigation.rb +7 -3
  296. data/lib/active_admin/views/title_bar.rb +10 -8
  297. data/lib/generators/active_admin/assets/assets_generator.rb +1 -3
  298. data/lib/generators/active_admin/devise/devise_generator.rb +20 -28
  299. data/lib/generators/active_admin/install/install_generator.rb +8 -9
  300. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -22
  301. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -9
  302. data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
  303. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
  304. data/lib/generators/active_admin/page/USAGE +8 -0
  305. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  306. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  307. data/lib/generators/active_admin/resource/resource_generator.rb +2 -4
  308. data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
  309. data/lib/ransack_ext.rb +4 -4
  310. data/script/local +2 -2
  311. data/script/travis_cache +107 -0
  312. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
  313. data/spec/javascripts/fixtures/flashes.html +2 -0
  314. data/spec/rails_helper.rb +154 -0
  315. data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
  316. data/spec/{integration → requests}/javascript_spec.rb +5 -5
  317. data/spec/requests/memory_spec.rb +23 -0
  318. data/spec/requests/stylesheets_spec.rb +18 -0
  319. data/spec/spec_helper.rb +12 -170
  320. data/spec/support/detect_rails_version.rb +31 -39
  321. data/spec/support/rails_template.rb +61 -34
  322. data/spec/support/rails_template_with_data.rb +14 -14
  323. data/spec/support/templates/admin/stores.rb +3 -5
  324. data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
  325. data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
  326. data/spec/support/templates/policies/admin_user_policy.rb +11 -0
  327. data/spec/support/templates/policies/application_policy.rb +45 -0
  328. data/spec/support/templates/policies/category_policy.rb +7 -0
  329. data/spec/support/templates/policies/post_policy.rb +15 -0
  330. data/spec/support/templates/policies/store_policy.rb +11 -0
  331. data/spec/support/templates/policies/user_policy.rb +11 -0
  332. data/spec/support/templates/post_decorator.rb +4 -46
  333. data/spec/unit/abstract_view_factory_spec.rb +11 -11
  334. data/spec/unit/action_builder_spec.rb +24 -18
  335. data/spec/unit/active_admin_spec.rb +2 -2
  336. data/spec/unit/application_spec.rb +30 -31
  337. data/spec/unit/asset_registration_spec.rb +11 -11
  338. data/spec/unit/authorization/authorization_adapter_spec.rb +7 -7
  339. data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
  340. data/spec/unit/authorization/index_overriding_spec.rb +22 -0
  341. data/spec/unit/auto_link_spec.rb +42 -5
  342. data/spec/unit/batch_actions/resource_spec.rb +15 -14
  343. data/spec/unit/batch_actions/settings_spec.rb +18 -18
  344. data/spec/unit/belongs_to_spec.rb +26 -17
  345. data/spec/unit/cancan_adapter_spec.rb +4 -4
  346. data/spec/unit/comments_spec.rb +99 -39
  347. data/spec/unit/component_spec.rb +3 -3
  348. data/spec/unit/config_shared_examples.rb +8 -8
  349. data/spec/unit/controller_filters_spec.rb +26 -14
  350. data/spec/unit/csv_builder_spec.rb +152 -24
  351. data/spec/unit/dependency_spec.rb +135 -0
  352. data/spec/unit/devise_spec.rb +17 -37
  353. data/spec/unit/dsl_spec.rb +70 -9
  354. data/spec/unit/event_spec.rb +9 -9
  355. data/spec/unit/filters/filter_form_builder_spec.rb +167 -157
  356. data/spec/unit/filters/resource_spec.rb +35 -33
  357. data/spec/unit/form_builder_spec.rb +383 -145
  358. data/spec/unit/generators/install_spec.rb +5 -5
  359. data/spec/unit/helpers/collection_spec.rb +18 -18
  360. data/spec/unit/helpers/scope_chain_spec.rb +5 -5
  361. data/spec/unit/helpers/settings_spec.rb +4 -4
  362. data/spec/unit/i18n_spec.rb +12 -0
  363. data/spec/unit/menu_collection_spec.rb +14 -14
  364. data/spec/unit/menu_item_spec.rb +42 -42
  365. data/spec/unit/menu_spec.rb +20 -20
  366. data/spec/unit/namespace/authorization_spec.rb +5 -5
  367. data/spec/unit/namespace/register_page_spec.rb +9 -9
  368. data/spec/unit/namespace/register_resource_spec.rb +26 -28
  369. data/spec/unit/namespace_spec.rb +20 -20
  370. data/spec/unit/order_clause_spec.rb +81 -0
  371. data/spec/unit/page_controller_spec.rb +1 -1
  372. data/spec/unit/page_spec.rb +18 -12
  373. data/spec/unit/pretty_format_spec.rb +42 -14
  374. data/spec/unit/pundit_adapter_spec.rb +98 -0
  375. data/spec/unit/resource/action_items_spec.rb +13 -10
  376. data/spec/unit/resource/includes_spec.rb +21 -0
  377. data/spec/unit/resource/menu_spec.rb +1 -1
  378. data/spec/unit/resource/naming_spec.rb +23 -23
  379. data/spec/unit/resource/page_presenters_spec.rb +8 -8
  380. data/spec/unit/resource/pagination_spec.rb +6 -6
  381. data/spec/unit/resource/routes_spec.rb +10 -10
  382. data/spec/unit/resource/scopes_spec.rb +14 -7
  383. data/spec/unit/resource/sidebars_spec.rb +6 -6
  384. data/spec/unit/resource_collection_spec.rb +66 -68
  385. data/spec/unit/resource_controller/data_access_spec.rb +39 -21
  386. data/spec/unit/resource_controller/decorators_spec.rb +83 -0
  387. data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
  388. data/spec/unit/resource_controller_spec.rb +66 -62
  389. data/spec/unit/resource_registration_spec.rb +12 -12
  390. data/spec/unit/resource_spec.rb +75 -40
  391. data/spec/unit/routing_spec.rb +39 -31
  392. data/spec/unit/scope_spec.rb +112 -30
  393. data/spec/unit/settings_spec.rb +51 -21
  394. data/spec/unit/view_factory_spec.rb +2 -2
  395. data/spec/unit/view_helpers/breadcrumbs_spec.rb +137 -69
  396. data/spec/unit/view_helpers/display_name_spec.rb +49 -21
  397. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
  398. data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
  399. data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
  400. data/spec/unit/view_helpers/form_helper_spec.rb +9 -22
  401. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +59 -21
  402. data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
  403. data/spec/unit/views/components/attributes_table_spec.rb +94 -52
  404. data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
  405. data/spec/unit/views/components/blank_slate_spec.rb +14 -4
  406. data/spec/unit/views/components/columns_spec.rb +52 -22
  407. data/spec/unit/views/components/index_list_spec.rb +11 -8
  408. data/spec/unit/views/components/index_table_for_spec.rb +46 -0
  409. data/spec/unit/views/components/paginated_collection_spec.rb +68 -59
  410. data/spec/unit/views/components/panel_spec.rb +32 -21
  411. data/spec/unit/views/components/popover_spec.rb +7 -7
  412. data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
  413. data/spec/unit/views/components/site_title_spec.rb +8 -8
  414. data/spec/unit/views/components/status_tag_spec.rb +178 -38
  415. data/spec/unit/views/components/table_for_spec.rb +227 -44
  416. data/spec/unit/views/components/tabs_spec.rb +39 -0
  417. data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
  418. data/spec/unit/views/pages/form_spec.rb +17 -10
  419. data/spec/unit/views/pages/index_spec.rb +60 -0
  420. data/spec/unit/views/pages/layout_spec.rb +17 -21
  421. data/spec/unit/views/pages/show_spec.rb +16 -3
  422. data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
  423. data/tasks/docs.rake +1 -1
  424. data/tasks/parallel_tests.rake +8 -2
  425. data/tasks/test.rake +8 -4
  426. data/tasks/yard.rake +7 -5
  427. metadata +180 -101
  428. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  429. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  430. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  431. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  432. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  433. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +0 -10
  434. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
  435. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
  436. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
  437. data/app/assets/images/active_admin/loading.gif +0 -0
  438. data/app/assets/javascripts/active_admin/components/application.js.coffee +0 -23
  439. data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +0 -26
  440. data/app/assets/javascripts/active_admin/components/has_many.js.coffee +0 -41
  441. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
  442. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -39
  443. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
  444. data/app/views/active_admin/dashboard/index.html.arb +0 -1
  445. data/app/views/active_admin/resource/index.csv.erb +0 -17
  446. data/docs/3-index-pages/create-an-index.md +0 -29
  447. data/lib/active_admin/inputs/filter_base.rb +0 -33
  448. data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
  449. data/lib/active_admin/inputs/filter_boolean_input.rb +0 -32
  450. data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -51
  451. data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
  452. data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
  453. data/lib/active_admin/inputs/filter_select_input.rb +0 -61
  454. data/lib/active_admin/inputs/filter_string_input.rb +0 -24
  455. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
  456. data/spec/integration/memory_spec.rb +0 -29
  457. data/spec/integration/stylesheets_spec.rb +0 -41
  458. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
  459. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
  460. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
  461. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
  462. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
  463. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
  464. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
  465. data/spec/javascripts/support/jquery.min.js +0 -4
  466. data/spec/spec_helper_without_rails.rb +0 -16
  467. data/tasks/js.rake +0 -32
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Views::AttributesTable do
4
4
 
@@ -6,13 +6,13 @@ describe ActiveAdmin::Views::AttributesTable do
6
6
  let(:helpers) { action_view }
7
7
 
8
8
  let(:post) do
9
- post = Post.new :title => "Hello World", :body => nil
10
- post.stub(:id){ 1 }
11
- post.stub(:new_record?){ false }
9
+ post = Post.new title: "Hello World", body: nil
10
+ allow(post).to receive(:id){ 1 }
11
+ allow(post).to receive(:new_record?){ false }
12
12
  post
13
13
  end
14
14
 
15
- let(:assigns){ { :post => post } }
15
+ let(:assigns){ { post: post } }
16
16
 
17
17
  # Loop through a few different ways to make the same table
18
18
  # and ensure that they produce the same results
@@ -61,17 +61,17 @@ describe ActiveAdmin::Views::AttributesTable do
61
61
  let(:table) { instance_eval &table_decleration }
62
62
 
63
63
  it "should render a div wrapper with the class '.attributes_table'" do
64
- table.tag_name.should == 'div'
65
- table.attr(:class).should include('attributes_table')
64
+ expect(table.tag_name).to eq 'div'
65
+ expect(table.attr(:class)).to include('attributes_table')
66
66
  end
67
67
 
68
68
  it "should add id and type class" do
69
- table.class_names.should include("post")
70
- table.id.should == "attributes_table_post_1"
69
+ expect(table.class_names).to include("post")
70
+ expect(table.id).to eq "attributes_table_post_1"
71
71
  end
72
72
 
73
73
  it "should render 3 rows" do
74
- table.find_by_tag("tr").size.should == 3
74
+ expect(table.find_by_tag("tr").size).to eq 3
75
75
  end
76
76
 
77
77
  describe "rendering the rows" do
@@ -79,17 +79,16 @@ describe ActiveAdmin::Views::AttributesTable do
79
79
  ["Id" , "1"],
80
80
  ["Title" , "Hello World"],
81
81
  ["Body" , "<span class=\"empty\">Empty</span>"]
82
- ].each_with_index do |set, i|
83
- describe "for #{set[0]}" do
84
- let(:title){ set[0] }
85
- let(:content){ set[1] }
82
+ ].each_with_index do |(title, content), i|
83
+ describe "for #{title}" do
86
84
  let(:current_row){ table.find_by_tag("tr")[i] }
87
85
 
88
- it "should have the title '#{set[0]}'" do
89
- current_row.find_by_tag("th").first.content.should == title
86
+ it "should have the title '#{title}'" do
87
+ expect(current_row.find_by_tag("th").first.content).to eq title
90
88
  end
91
- it "should have the content '#{set[1]}'" do
92
- current_row.find_by_tag("td").first.content.chomp.strip.should == content
89
+
90
+ it "should have the content '#{content}'" do
91
+ expect(current_row.find_by_tag("td").first.content.chomp.strip).to eq content
93
92
  end
94
93
  end
95
94
  end
@@ -105,51 +104,64 @@ describe ActiveAdmin::Views::AttributesTable do
105
104
  row :created_at
106
105
  end
107
106
  }
108
- table.find_by_tag("tr").first.to_s.
109
- split("\n").first.lstrip.
110
- should == '<tr class="row row-title">'
107
+ expect(table.find_by_tag("tr").first.to_s.
108
+ split("\n").first.lstrip).
109
+ to eq '<tr class="row row-title">'
111
110
 
112
- table.find_by_tag("tr").last.to_s.
113
- split("\n").first.lstrip.
114
- should == '<tr class="row row-created_at">'
111
+ expect(table.find_by_tag("tr").last.to_s.
112
+ split("\n").first.lstrip).
113
+ to eq '<tr class="row row-created_at">'
115
114
  end
116
115
 
117
116
  it "should allow html options for the row itself" do
118
117
  table = render_arbre_component(assigns) {
119
118
  attributes_table_for(post) do
120
- row("Wee", :class => "custom_row", :style => "custom_style") { }
119
+ row("Wee", class: "custom_row", style: "custom_style") { }
121
120
  end
122
121
  }
123
- table.find_by_tag("tr").first.to_s.
124
- split("\n").first.lstrip.
125
- should == '<tr class="row custom_row" style="custom_style">'
122
+ expect(table.find_by_tag("tr").first.to_s.split("\n").first.lstrip).
123
+ to eq '<tr class="row custom_row" style="custom_style">'
126
124
  end
127
125
 
128
126
  it "should allow html content inside the attributes table" do
129
127
  table = render_arbre_component(assigns) {
130
128
  attributes_table_for(post) do
131
- row("ID"){ span(post.id, :class => 'id') }
129
+ row("ID"){ span(post.id, class: 'id') }
132
130
  end
133
131
  }
134
- table.find_by_tag("td").first.content.chomp.strip.should == "<span class=\"id\">1</span>"
132
+ expect(table.find_by_tag("td").first.content.chomp.strip).to eq "<span class=\"id\">1</span>"
135
133
  end
136
134
 
137
- it "should check if an association exists when an attribute has id in it" do
138
- post.author = User.new :username => 'john_doe', :first_name => 'John', :last_name => 'Doe'
139
- table = render_arbre_component(assigns) {
140
- attributes_table_for post, :author_id
141
- }
142
- table.find_by_tag('td').first.content.should == 'John Doe'
135
+ context 'an attribute ending in _id' do
136
+ before do
137
+ post.foo_id = 23
138
+ post.author = User.new username: 'john_doe', first_name: 'John', last_name: 'Doe'
139
+ end
140
+ it 'should call the association if one exists' do
141
+ table = render_arbre_component assigns do
142
+ attributes_table_for post, :author_id
143
+ end
144
+ expect(table.find_by_tag('th').first.content).to eq 'Author'
145
+ expect(table.find_by_tag('td').first.content).to eq 'John Doe'
146
+ end
147
+ it 'should not attempt to call a nonexistant association' do
148
+ table = render_arbre_component assigns do
149
+ attributes_table_for post, :foo_id
150
+ end
151
+ expect(table.find_by_tag('th').first.content).to eq 'Foo'
152
+ expect(table.find_by_tag('td').first.content).to eq '23'
153
+ end
143
154
  end
144
155
 
145
156
  context "with a collection" do
146
157
  let(:posts) do
147
- [Post.new(:title => "Hello World", :id => 1), Post.new(:title => "Multi Column", :id => 2)].each_with_index do |post, index|
148
- post.stub(:id => index + 1, :new_record? => false)
158
+ [Post.new(title: "Hello World", id: 1), Post.new(title: "Multi Column", id: 2)].each_with_index do |post, index|
159
+ allow(post).to receive(:id).and_return(index + 1)
160
+ allow(post).to receive(:new_record?).and_return(false)
149
161
  end
150
162
  end
151
163
 
152
- let(:assigns) { { :posts => posts } }
164
+ let(:assigns) { { posts: posts } }
153
165
 
154
166
  let(:table) do
155
167
  render_arbre_component(assigns) do
@@ -158,38 +170,38 @@ describe ActiveAdmin::Views::AttributesTable do
158
170
  end
159
171
 
160
172
  it "does not set id on the table" do
161
- table.attr(:id).should be_nil
173
+ expect(table.attr(:id)).to be_nil
162
174
  end
163
175
 
164
176
  context "colgroup" do
165
177
  let(:cols) { table.find_by_tag "col" }
166
178
 
167
179
  it "contains a col for each record (plus headers)" do
168
- cols.size.should == (2 + 1)
180
+ expect(cols.size).to eq (2 + 1)
169
181
  end
170
182
 
171
183
  it "assigns an id to each col" do
172
184
  cols[1..-1].each_with_index do |col, index|
173
- col.id.should == "attributes_table_post_#{index + 1}"
185
+ expect(col.id).to eq "attributes_table_post_#{index + 1}"
174
186
  end
175
187
  end
176
188
 
177
189
  it "assigns a class to each col" do
178
190
  cols[1..-1].each_with_index do |col, index|
179
- col.class_names.should include("post")
191
+ expect(col.class_names).to include("post")
180
192
  end
181
193
  end
182
194
 
183
195
  it "assigns alternation classes to each col" do
184
196
  cols[1..-1].each_with_index do |col, index|
185
- col.class_names.should include(["even", "odd"][index % 2])
197
+ expect(col.class_names).to include(["even", "odd"][index % 2])
186
198
  end
187
199
  end
188
200
  end
189
201
 
190
202
  context "when rendering the rows" do
191
203
  it "should contain 3 columns" do
192
- table.find_by_tag("tr").first.children.size.should == 3
204
+ expect(table.find_by_tag("tr").first.children.size).to eq 3
193
205
  end
194
206
 
195
207
  [
@@ -202,29 +214,59 @@ describe ActiveAdmin::Views::AttributesTable do
202
214
  let(:current_row){ table.find_by_tag("tr")[i] }
203
215
 
204
216
  it "should have the title '#{set[0]}'" do
205
- current_row.find_by_tag("th").first.content.should == title
217
+ expect(current_row.find_by_tag("th").first.content).to eq title
206
218
  end
207
219
 
208
220
  context "with defined attribute name translation" do
209
221
  it "should have the translated attribute name in the title" do
210
- begin
211
- I18n.backend.store_translations(:en, :activerecord => { :attributes => { :post => { :title => 'Translated Title', :id => 'Translated Id' } } })
212
- current_row.find_by_tag("th").first.content.should == "Translated #{title}"
213
- ensure
214
- I18n.backend.reload!
222
+ with_translation activerecord: {attributes: {post: {title: 'Translated Title', id: 'Translated Id'}}} do
223
+ expect(current_row.find_by_tag("th").first.content).to eq "Translated #{title}"
215
224
  end
216
225
  end
217
226
  end
218
227
 
219
228
  set[1..-1].each_with_index do |content, index|
220
229
  it "column #{index} should have the content '#{content}'" do
221
- current_row.find_by_tag("td")[index].content.chomp.strip.should == content
230
+ expect(current_row.find_by_tag("td")[index].content.chomp.strip).to eq content
222
231
  end
223
232
  end
224
233
  end
225
234
  end
226
235
  end # describe rendering rows
227
236
  end # with a collection
237
+
238
+
239
+ context "when using a single Hash" do
240
+ let(:table) do
241
+ render_arbre_component nil, helpers do
242
+ attributes_table_for foo: 1, bar: 2 do
243
+ row :foo
244
+ row :bar
245
+ end
246
+ end
247
+ end
248
+ it "should render" do
249
+ expect(table.find_by_tag("th")[0].content).to eq "Foo"
250
+ expect(table.find_by_tag("th")[1].content).to eq "Bar"
251
+ expect(table.find_by_tag("td")[0].content).to eq "1"
252
+ expect(table.find_by_tag("td")[1].content).to eq "2"
253
+ end
254
+ end
255
+
256
+ context "when using an Array of Hashes" do
257
+ let(:table) do
258
+ render_arbre_component nil, helpers do
259
+ attributes_table_for [{foo: 1},{foo: 2}] do
260
+ row :foo
261
+ end
262
+ end
263
+ end
264
+ it "should render" do
265
+ expect(table.find_by_tag("th")[0].content).to eq "Foo"
266
+ expect(table.find_by_tag("td")[0].content).to eq "1"
267
+ expect(table.find_by_tag("td")[1].content).to eq "2"
268
+ end
269
+ end
228
270
  end
229
271
 
230
272
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
  require 'active_admin/batch_actions/views/batch_action_popover'
3
3
 
4
4
  describe ActiveAdmin::BatchActions::BatchActionPopover do
@@ -14,7 +14,7 @@ describe ActiveAdmin::BatchActions::BatchActionPopover do
14
14
  end
15
15
 
16
16
  it "should have an id" do
17
- the_popover.id.should == "batch_actions_popover"
17
+ expect(the_popover.id).to eq "batch_actions_popover"
18
18
  end
19
19
 
20
20
  describe "the action list" do
@@ -22,11 +22,25 @@ describe ActiveAdmin::BatchActions::BatchActionPopover do
22
22
  the_popover.find_by_class("popover_contents").first
23
23
  end
24
24
 
25
- its(:tag_name) { should eql("ul") }
25
+ describe '#tag_name' do
26
+ subject { super().tag_name }
27
+ it { is_expected.to eql("ul") }
28
+ end
29
+
30
+ describe '#content' do
31
+ subject { super().content }
32
+ it{ is_expected.to include("class=\"batch_action\" data-action=\"action_1\"") }
33
+ end
26
34
 
27
- its(:content){ should include("class=\"batch_action\" data-action=\"action_1\"") }
28
- its(:content){ should include("class=\"batch_action\" data-action=\"action_2\"") }
29
- its(:content){ should include("class=\"batch_action\" data-action=\"action_3\"") }
35
+ describe '#content' do
36
+ subject { super().content }
37
+ it{ is_expected.to include("class=\"batch_action\" data-action=\"action_2\"") }
38
+ end
39
+
40
+ describe '#content' do
41
+ subject { super().content }
42
+ it{ is_expected.to include("class=\"batch_action\" data-action=\"action_3\"") }
43
+ end
30
44
 
31
45
  end
32
46
 
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Views::BlankSlate do
4
4
 
@@ -9,9 +9,19 @@ describe ActiveAdmin::Views::BlankSlate do
9
9
  end
10
10
  end
11
11
 
12
- its(:tag_name) { should eql 'div' }
13
- its(:class_list) { should include('blank_slate_container') }
12
+ describe '#tag_name' do
13
+ subject { super().tag_name }
14
+ it { is_expected.to eql 'div' }
15
+ end
16
+
17
+ describe '#class_list' do
18
+ subject { super().class_list }
19
+ it { is_expected.to include('blank_slate_container') }
20
+ end
14
21
 
15
- its(:content) { should include '<span class="blank_slate">There are no Posts yet. <a href="/posts/new">Create one</a></span>' }
22
+ describe '#content' do
23
+ subject { super().content }
24
+ it { is_expected.to include '<span class="blank_slate">There are no Posts yet. <a href="/posts/new">Create one</a></span>' }
25
+ end
16
26
  end
17
27
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Views::Columns do
4
4
 
@@ -12,16 +12,16 @@ describe ActiveAdmin::Views::Columns do
12
12
  end
13
13
 
14
14
  it "should have the class .columns" do
15
- cols.class_list.should include("columns")
15
+ expect(cols.class_list).to include("columns")
16
16
  end
17
17
 
18
18
  it "should have one column" do
19
- cols.children.size.should == 1
20
- cols.children.first.class_list.should include("column")
19
+ expect(cols.children.size).to eq 1
20
+ expect(cols.children.first.class_list).to include("column")
21
21
  end
22
22
 
23
23
  it "should have one column with the width 100.0%" do
24
- cols.children.first.attr(:style).should include("width: 100.0%")
24
+ expect(cols.children.first.attr(:style)).to include("width: 100.0%")
25
25
  end
26
26
  end
27
27
 
@@ -36,15 +36,15 @@ describe ActiveAdmin::Views::Columns do
36
36
  end
37
37
 
38
38
  it "should have two columns" do
39
- cols.children.size.should == 2
39
+ expect(cols.children.size).to eq 2
40
40
  end
41
41
 
42
42
  it "should have a first column with width 49% and margin 2%" do
43
- cols.children.first.attr(:style).should == "width: 49.0%; margin-right: 2%;"
43
+ expect(cols.children.first.attr(:style)).to eq "width: 49.0%; margin-right: 2%;"
44
44
  end
45
45
 
46
46
  it "should have a second column with width 49% and no right margin" do
47
- cols.children.last.attr(:style).should == "width: 49.0%;"
47
+ expect(cols.children.last.attr(:style)).to eq "width: 49.0%;"
48
48
  end
49
49
  end
50
50
 
@@ -61,18 +61,18 @@ describe ActiveAdmin::Views::Columns do
61
61
  end
62
62
 
63
63
  it "should have four columns" do
64
- cols.children.size.should == 4
64
+ expect(cols.children.size).to eq 4
65
65
  end
66
66
 
67
67
 
68
68
  (0..2).to_a.each do |index|
69
69
  it "should have column #{index + 1} with width 49% and margin 2%" do
70
- cols.children[index].attr(:style).should == "width: 23.5%; margin-right: 2%;"
70
+ expect(cols.children[index].attr(:style)).to eq "width: 23.5%; margin-right: 2%;"
71
71
  end
72
72
  end
73
73
 
74
74
  it "should have column 4 with width 49% and no margin" do
75
- cols.children[3].attr(:style).should == "width: 23.5%;"
75
+ expect(cols.children[3].attr(:style)).to eq "width: 23.5%;"
76
76
  end
77
77
  end
78
78
 
@@ -81,7 +81,7 @@ describe ActiveAdmin::Views::Columns do
81
81
  let(:cols) do
82
82
  render_arbre_component do
83
83
  columns do
84
- column(:span => 2){ "Hello World" }
84
+ column(span: 2){ "Hello World" }
85
85
  column(){ "Hello World" }
86
86
  column(){ "Hello World" }
87
87
  end
@@ -89,11 +89,11 @@ describe ActiveAdmin::Views::Columns do
89
89
  end
90
90
 
91
91
  it "should set the span when declared" do
92
- cols.children.first.attr(:style).should == "width: 49.0%; margin-right: 2%;"
92
+ expect(cols.children.first.attr(:style)).to eq "width: 49.0%; margin-right: 2%;"
93
93
  end
94
94
 
95
95
  it "should default to 1 if not passed in" do
96
- cols.children.last.attr(:style).should == "width: 23.5%;"
96
+ expect(cols.children.last.attr(:style)).to eq "width: 23.5%;"
97
97
  end
98
98
  end
99
99
 
@@ -102,18 +102,33 @@ describe ActiveAdmin::Views::Columns do
102
102
  let(:cols) do
103
103
  render_arbre_component do
104
104
  columns do
105
- column(:max_width => "100px"){ "Hello World" }
105
+ column(max_width: "100px"){ "Hello World" }
106
106
  column(){ "Hello World" }
107
107
  end
108
108
  end
109
109
  end
110
110
 
111
111
  it "should set the max with if passed in" do
112
- cols.children.first.attr(:style).should == "width: 49.0%; max-width: 100px; margin-right: 2%;"
112
+ expect(cols.children.first.attr(:style)).to eq "width: 49.0%; max-width: 100px; margin-right: 2%;"
113
113
  end
114
114
 
115
- it "should omit the value if not presetn" do
116
- cols.children.last.attr(:style).should == "width: 49.0%;"
115
+ it "should omit the value if not present" do
116
+ expect(cols.children.last.attr(:style)).to eq "width: 49.0%;"
117
+ end
118
+
119
+ context "when passed an integer value" do
120
+ let(:cols) do
121
+ render_arbre_component do
122
+ columns do
123
+ column(max_width: 100){ "Hello World" }
124
+ column(){ "Hello World" }
125
+ end
126
+ end
127
+ end
128
+
129
+ it "should be treated as pixels" do
130
+ expect(cols.children.first.attr(:style)).to eq "width: 49.0%; max-width: 100px; margin-right: 2%;"
131
+ end
117
132
  end
118
133
 
119
134
  end
@@ -123,18 +138,33 @@ describe ActiveAdmin::Views::Columns do
123
138
  let(:cols) do
124
139
  render_arbre_component do
125
140
  columns do
126
- column(:min_width => "100px"){ "Hello World" }
141
+ column(min_width: "100px"){ "Hello World" }
127
142
  column(){ "Hello World" }
128
143
  end
129
144
  end
130
145
  end
131
146
 
132
147
  it "should set the min with if passed in" do
133
- cols.children.first.attr(:style).should == "width: 49.0%; min-width: 100px; margin-right: 2%;"
148
+ expect(cols.children.first.attr(:style)).to eq "width: 49.0%; min-width: 100px; margin-right: 2%;"
134
149
  end
135
150
 
136
- it "should omit the value if not presetn" do
137
- cols.children.last.attr(:style).should == "width: 49.0%;"
151
+ it "should omit the value if not present" do
152
+ expect(cols.children.last.attr(:style)).to eq "width: 49.0%;"
153
+ end
154
+
155
+ context "when passed an integer value" do
156
+ let(:cols) do
157
+ render_arbre_component do
158
+ columns do
159
+ column(min_width: 100){ "Hello World" }
160
+ column(){ "Hello World" }
161
+ end
162
+ end
163
+ end
164
+
165
+ it "should be treated as pixels" do
166
+ expect(cols.children.first.attr(:style)).to eq "width: 49.0%; min-width: 100px; margin-right: 2%;"
167
+ end
138
168
  end
139
169
 
140
170
  end