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,32 +1,46 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::CSVBuilder do
4
4
 
5
5
  describe '.default_for_resource using Post' do
6
- let(:csv_builder) { ActiveAdmin::CSVBuilder.default_for_resource(Post) }
6
+ let(:csv_builder) { ActiveAdmin::CSVBuilder.default_for_resource(Post).tap(&:exec_columns) }
7
7
 
8
- it "should return a default csv_builder for Post" do
9
- csv_builder.should be_a(ActiveAdmin::CSVBuilder)
8
+ it 'returns a default csv_builder for Post' do
9
+ expect(csv_builder).to be_a(ActiveAdmin::CSVBuilder)
10
10
  end
11
11
 
12
- specify "the first column should be Id" do
13
- csv_builder.columns.first.name.should == 'Id'
14
- csv_builder.columns.first.data.should == :id
12
+ it 'defines Id as the first column' do
13
+ expect(csv_builder.columns.first.name).to eq 'Id'
14
+ expect(csv_builder.columns.first.data).to eq :id
15
15
  end
16
16
 
17
- specify "the following columns should be content_column" do
17
+ it "has Post's content_columns" do
18
18
  csv_builder.columns[1..-1].each_with_index do |column, index|
19
- column.name.should == Post.content_columns[index].name.titleize
20
- column.data.should == Post.content_columns[index].name.to_sym
19
+ expect(column.name).to eq Post.content_columns[index].name.humanize
20
+ expect(column.data).to eq Post.content_columns[index].name.to_sym
21
+ end
22
+ end
23
+
24
+ context 'when column has a localized name' do
25
+ let(:localized_name) { 'Titulo' }
26
+
27
+ before do
28
+ allow(Post).to receive(:human_attribute_name).and_call_original
29
+ allow(Post).to receive(:human_attribute_name).with(:title){ localized_name }
30
+ end
31
+
32
+ it 'gets name from I18n' do
33
+ title_index = Post.content_columns.map(&:name).index('title') + 1 # First col is always id
34
+ expect(csv_builder.columns[title_index].name).to eq localized_name
21
35
  end
22
36
  end
23
37
  end
24
38
 
25
39
  context 'when empty' do
26
- let(:builder){ ActiveAdmin::CSVBuilder.new }
40
+ let(:builder){ ActiveAdmin::CSVBuilder.new.tap(&:exec_columns) }
27
41
 
28
42
  it "should have no columns" do
29
- builder.columns.should == []
43
+ expect(builder.columns).to eq []
30
44
  end
31
45
  end
32
46
 
@@ -34,22 +48,22 @@ describe ActiveAdmin::CSVBuilder do
34
48
  let(:builder) do
35
49
  ActiveAdmin::CSVBuilder.new do
36
50
  column :title
37
- end
51
+ end.tap(&:exec_columns)
38
52
  end
39
53
 
40
54
  it "should have one column" do
41
- builder.columns.size.should == 1
55
+ expect(builder.columns.size).to eq 1
42
56
  end
43
57
 
44
58
  describe "the column" do
45
59
  let(:column){ builder.columns.first }
46
60
 
47
61
  it "should have a name of 'Title'" do
48
- column.name.should == "Title"
62
+ expect(column.name).to eq "Title"
49
63
  end
50
64
 
51
65
  it "should have the data :title" do
52
- column.data.should == :title
66
+ expect(column.data).to eq :title
53
67
  end
54
68
  end
55
69
  end
@@ -60,44 +74,158 @@ describe ActiveAdmin::CSVBuilder do
60
74
  column "My title" do
61
75
  # nothing
62
76
  end
63
- end
77
+ end.tap(&:exec_columns)
64
78
  end
65
79
 
66
80
  it "should have one column" do
67
- builder.columns.size.should == 1
81
+ expect(builder.columns.size).to eq 1
68
82
  end
69
83
 
70
84
  describe "the column" do
71
85
  let(:column){ builder.columns.first }
72
86
 
73
87
  it "should have a name of 'My title'" do
74
- column.name.should == "My title"
88
+ expect(column.name).to eq "My title"
75
89
  end
76
90
 
77
91
  it "should have the data :title" do
78
- column.data.should be_an_instance_of(Proc)
92
+ expect(column.data).to be_an_instance_of(Proc)
93
+ end
94
+ end
95
+ end
96
+
97
+ context "with a humanize_name column option" do
98
+ context "with symbol column name" do
99
+ let(:builder) do
100
+ ActiveAdmin::CSVBuilder.new do
101
+ column :my_title, humanize_name: false
102
+ end.tap(&:exec_columns)
103
+ end
104
+
105
+ describe "the column" do
106
+ let(:column){ builder.columns.first }
107
+
108
+ it "should have a name of 'my_title'" do
109
+ expect(column.name).to eq "my_title"
110
+ end
111
+ end
112
+ end
113
+
114
+ context "with string column name" do
115
+ let(:builder) do
116
+ ActiveAdmin::CSVBuilder.new do
117
+ column "my_title", humanize_name: false
118
+ end.tap(&:exec_columns)
119
+ end
120
+
121
+ describe "the column" do
122
+ let(:column){ builder.columns.first }
123
+
124
+ it "should have a name of 'my_title'" do
125
+ expect(column.name).to eq "my_title"
126
+ end
79
127
  end
80
128
  end
81
129
  end
82
130
 
83
131
  context "with a separator" do
84
132
  let(:builder) do
85
- ActiveAdmin::CSVBuilder.new :col_sep => ";"
133
+ ActiveAdmin::CSVBuilder.new(col_sep: ";").tap(&:exec_columns)
86
134
  end
87
135
 
88
136
  it "should have proper separator" do
89
- builder.options.should == {:col_sep => ";"}
137
+ expect(builder.options).to eq({col_sep: ";"})
138
+ end
139
+ end
140
+
141
+ context "with humanize_name option" do
142
+ let(:builder) do
143
+ ActiveAdmin::CSVBuilder.new(humanize_name: false) do
144
+ column :my_title
145
+ end.tap(&:exec_columns)
146
+ end
147
+
148
+ describe "the column" do
149
+ let(:column){ builder.columns.first }
150
+
151
+ it "should have humanize_name option set" do
152
+ expect(column.options).to eq humanize_name: false
153
+ end
154
+
155
+ it "should have a name of 'my_title'" do
156
+ expect(column.name).to eq "my_title"
157
+ end
90
158
  end
91
159
  end
92
160
 
93
161
  context "with csv_options" do
94
162
  let(:builder) do
95
- ActiveAdmin::CSVBuilder.new :force_quotes => true
163
+ ActiveAdmin::CSVBuilder.new(force_quotes: true).tap(&:exec_columns)
96
164
  end
97
165
 
98
166
  it "should have proper separator" do
99
- builder.options.should == {:force_quotes => true}
167
+ expect(builder.options).to eq({force_quotes: true})
168
+ end
169
+ end
170
+
171
+ context "with access to the controller" do
172
+ let(:dummy_view_context) { double(controller: dummy_controller) }
173
+ let(:dummy_controller) { double(names: %w(title summary updated_at created_at))}
174
+ let(:builder) do
175
+ ActiveAdmin::CSVBuilder.new do
176
+ column "id"
177
+ controller.names.each do |name|
178
+ column(name)
179
+ end
180
+ end.tap{ |b| b.exec_columns(dummy_view_context) }
181
+ end
182
+
183
+ it "should build columns provided by the controller" do
184
+ expect(builder.columns.map(&:data)).to match_array([:id, :title, :summary, :updated_at, :created_at])
185
+ end
186
+ end
187
+
188
+ context "build csv using the supplied order" do
189
+ before do
190
+ @post1 = Post.create!(title: "Hello1", published_at: Date.today - 2.day )
191
+ @post2 = Post.create!(title: "Hello2", published_at: Date.today - 1.day )
100
192
  end
193
+ let(:dummy_controller) {
194
+ class DummyController
195
+ def collection
196
+ Post.order('published_at DESC')
197
+ end
198
+
199
+ def apply_decorator(resource)
200
+ resource
201
+ end
202
+
203
+ def view_context
204
+ end
205
+ end
206
+ DummyController.new
207
+ }
208
+ let(:builder) do
209
+ ActiveAdmin::CSVBuilder.new do
210
+ column "id"
211
+ column "title"
212
+ column "published_at"
213
+ end
214
+ end
215
+
216
+ it "should generate data with the supplied order" do
217
+ expect(builder).to receive(:build_row).and_return([]).once.ordered { |post| expect(post.id).to eq @post2.id }
218
+ expect(builder).to receive(:build_row).and_return([]).once.ordered { |post| expect(post.id).to eq @post1.id }
219
+ builder.build dummy_controller, []
220
+ end
221
+ end
222
+
223
+ skip '#exec_columns'
224
+
225
+ skip '#build_row' do
226
+ it 'renders non-strings'
227
+ it 'encodes values correctly'
228
+ it 'passes custom encoding options to String#encode!'
101
229
  end
102
230
 
103
231
  end
@@ -0,0 +1,135 @@
1
+ require 'rails_helper'
2
+
3
+ describe ActiveAdmin::Dependency do
4
+
5
+ k = ActiveAdmin::Dependency
6
+
7
+ describe 'method_missing' do
8
+ before do
9
+ allow(Gem).to receive(:loaded_specs)
10
+ .and_return 'foo' => Gem::Specification.new('foo', '1.2.3')
11
+ end
12
+
13
+ it 'returns a Matcher' do
14
+ expect(k.foo).to be_a ActiveAdmin::Dependency::Matcher
15
+ expect(k.foo.inspect).to eq '<ActiveAdmin::Dependency::Matcher for foo 1.2.3>'
16
+ expect(k.bar.inspect).to eq '<ActiveAdmin::Dependency::Matcher for (missing)>'
17
+ end
18
+
19
+ describe '`?`' do
20
+ it 'base' do
21
+ expect(k.foo?).to eq true
22
+ expect(k.bar?).to eq false
23
+ end
24
+ it '=' do
25
+ expect(k.foo? '= 1.2.3').to eq true
26
+ expect(k.foo? '= 1' ).to eq false
27
+ end
28
+ it '>' do
29
+ expect(k.foo? '> 1').to eq true
30
+ expect(k.foo? '> 2').to eq false
31
+ end
32
+ it '<' do
33
+ expect(k.foo? '< 2').to eq true
34
+ expect(k.foo? '< 1').to eq false
35
+ end
36
+ it '>=' do
37
+ expect(k.foo? '>= 1.2.3').to eq true
38
+ expect(k.foo? '>= 1.2.2').to eq true
39
+ expect(k.foo? '>= 1.2.4').to eq false
40
+ end
41
+ it '<=' do
42
+ expect(k.foo? '<= 1.2.3').to eq true
43
+ expect(k.foo? '<= 1.2.4').to eq true
44
+ expect(k.foo? '<= 1.2.2').to eq false
45
+ end
46
+ it '~>' do
47
+ expect(k.foo? '~> 1.2.0').to eq true
48
+ expect(k.foo? '~> 1.1' ).to eq true
49
+ expect(k.foo? '~> 1.2.4').to eq false
50
+ end
51
+ end
52
+
53
+ describe '`!`' do
54
+ it 'raises an error if requirement not met' do
55
+ expect{ k.foo! '5' }.to raise_error ActiveAdmin::DependencyError,
56
+ 'You provided foo 1.2.3 but we need: 5.'
57
+ end
58
+ it 'accepts multiple arguments' do
59
+ expect{ k.foo! '> 1', '< 1.2' }.to raise_error ActiveAdmin::DependencyError,
60
+ 'You provided foo 1.2.3 but we need: > 1, < 1.2.'
61
+ end
62
+ it 'raises an error if not provided' do
63
+ expect{ k.bar! }.to raise_error ActiveAdmin::DependencyError,
64
+ 'To use bar you need to specify it in your Gemfile.'
65
+ end
66
+ end
67
+ end
68
+
69
+ describe '[]' do
70
+ before do
71
+ allow(Gem).to receive(:loaded_specs)
72
+ .and_return 'a-b' => Gem::Specification.new('a-b', '1.2.3')
73
+ end
74
+
75
+ it 'allows access to gems with an arbitrary name' do
76
+ expect(k['a-b']).to be_a ActiveAdmin::Dependency::Matcher
77
+ expect(k['a-b'].inspect).to eq '<ActiveAdmin::Dependency::Matcher for a-b 1.2.3>'
78
+ expect(k['c-d'].inspect).to eq '<ActiveAdmin::Dependency::Matcher for (missing)>'
79
+ end
80
+
81
+ # Note: more extensive tests for match? and match! are above.
82
+
83
+ it 'match?' do
84
+ expect(k['a-b'].match? ).to eq true
85
+ expect(k['a-b'].match? '1.2.3').to eq true
86
+ expect(k['b-c'].match? ).to eq false
87
+ end
88
+
89
+ it 'match!' do
90
+ expect(k['a-b'].match! ).to eq nil
91
+ expect(k['a-b'].match! '1.2.3').to eq nil
92
+
93
+ expect{ k['a-b'].match! '2.5' }.to raise_error ActiveAdmin::DependencyError,
94
+ 'You provided a-b 1.2.3 but we need: 2.5.'
95
+
96
+ expect{ k['b-c'].match! }.to raise_error ActiveAdmin::DependencyError,
97
+ 'To use b-c you need to specify it in your Gemfile.'
98
+ end
99
+
100
+ # Note: Ruby comparison operators are separate from the `foo? '> 1'` syntax
101
+
102
+ describe 'Ruby comparison syntax' do
103
+
104
+ it '==' do
105
+ expect(k['a-b'] == '1.2.3').to eq true
106
+ expect(k['a-b'] == '1.2' ).to eq false
107
+ expect(k['a-b'] == 1 ).to eq false
108
+ end
109
+ it '>' do
110
+ expect(k['a-b'] > 1).to eq true
111
+ expect(k['a-b'] > 2).to eq false
112
+ end
113
+ it '<' do
114
+ expect(k['a-b'] < 2).to eq true
115
+ expect(k['a-b'] < 1).to eq false
116
+ end
117
+ it '>=' do
118
+ expect(k['a-b'] >= '1.2.3').to eq true
119
+ expect(k['a-b'] >= '1.2.2').to eq true
120
+ expect(k['a-b'] >= '1.2.4').to eq false
121
+ end
122
+ it '<=' do
123
+ expect(k['a-b'] <= '1.2.3').to eq true
124
+ expect(k['a-b'] <= '1.2.4').to eq true
125
+ expect(k['a-b'] <= '1.2.2').to eq false
126
+ end
127
+
128
+ it 'throws a custom error if the gem is missing' do
129
+ expect{ k['b-c'] < 23 }.to raise_error ActiveAdmin::DependencyError,
130
+ 'To use b-c you need to specify it in your Gemfile.'
131
+ end
132
+ end
133
+ end
134
+
135
+ end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Devise::Controller do
4
4
 
@@ -18,12 +18,12 @@ describe ActiveAdmin::Devise::Controller do
18
18
  before { Rails.configuration.action_controller[:relative_url_root] = '/foo' }
19
19
 
20
20
  it "should set the root path to the default namespace" do
21
- controller.root_path.should == "/foo/admin"
21
+ expect(controller.root_path).to eq "/foo/admin"
22
22
  end
23
23
 
24
24
  it "should set the root path to '/' when no default namespace" do
25
- ActiveAdmin.application.stub default_namespace: false
26
- controller.root_path.should == "/foo/"
25
+ allow(ActiveAdmin.application).to receive(:default_namespace).and_return(false)
26
+ expect(controller.root_path).to eq "/foo/"
27
27
  end
28
28
 
29
29
  end
@@ -33,12 +33,12 @@ describe ActiveAdmin::Devise::Controller do
33
33
  before { Rails.configuration.action_controller[:relative_url_root] = nil }
34
34
 
35
35
  it "should set the root path to the default namespace" do
36
- controller.root_path.should == "/admin"
36
+ expect(controller.root_path).to eq "/admin"
37
37
  end
38
38
 
39
39
  it "should set the root path to '/' when no default namespace" do
40
- ActiveAdmin.application.stub default_namespace: false
41
- controller.root_path.should == "/"
40
+ allow(ActiveAdmin.application).to receive(:default_namespace).and_return(false)
41
+ expect(controller.root_path).to eq "/"
42
42
  end
43
43
 
44
44
  end
@@ -54,7 +54,7 @@ describe ActiveAdmin::Devise::Controller do
54
54
 
55
55
  # Add scoped routes
56
56
  routes.draw do
57
- scope :path => SCOPE do
57
+ scope path: SCOPE do
58
58
  ActiveAdmin.routes(self)
59
59
  devise_for :admin_users, ActiveAdmin::Devise.config
60
60
  end
@@ -67,7 +67,7 @@ describe ActiveAdmin::Devise::Controller do
67
67
  end
68
68
 
69
69
  it "should include scope path in root_path" do
70
- controller.root_path.should == "#{SCOPE}/admin"
70
+ expect(controller.root_path).to eq "#{SCOPE}/admin"
71
71
  end
72
72
 
73
73
  end
@@ -76,38 +76,18 @@ describe ActiveAdmin::Devise::Controller do
76
76
  let(:config) { ActiveAdmin::Devise.config }
77
77
 
78
78
  describe ":sign_out_via option" do
79
+ it "should contain the application.logout_link_method" do
80
+ expect(::Devise).to receive(:sign_out_via).and_return(:delete)
81
+ expect(ActiveAdmin.application).to receive(:logout_link_method).and_return(:get)
79
82
 
80
- subject { config[:sign_out_via] }
81
-
82
- context "when Devise does not implement sign_out_via (version < 1.2)" do
83
- before do
84
- ::Devise.should_receive(:respond_to?).with(:sign_out_via).and_return(false)
85
- end
86
-
87
- it "should not contain any customization for sign_out_via" do
88
- config.should_not have_key(:sign_out_via)
89
- end
83
+ expect(config[:sign_out_via]).to include(:get)
90
84
  end
91
85
 
92
- context "when Devise implements sign_out_via (version >= 1.2)" do
93
- before do
94
- ::Devise.should_receive(:respond_to?).with(:sign_out_via).and_return(true)
95
- ::Devise.stub(:sign_out_via) { :delete }
96
- end
97
-
98
- it "should contain the application.logout_link_method" do
99
- ::Devise.should_receive(:sign_out_via).and_return(:delete)
100
- ActiveAdmin.application.should_receive(:logout_link_method).and_return(:get)
101
-
102
- config[:sign_out_via].should include(:get)
103
- end
86
+ it "should contain Devise's logout_via_method(s)" do
87
+ expect(::Devise).to receive(:sign_out_via).and_return([:delete, :post])
88
+ expect(ActiveAdmin.application).to receive(:logout_link_method).and_return(:get)
104
89
 
105
- it "should contain Devise's logout_via_method(s)" do
106
- ::Devise.should_receive(:sign_out_via).and_return([:delete, :post])
107
- ActiveAdmin.application.should_receive(:logout_link_method).and_return(:get)
108
-
109
- config[:sign_out_via].should == [:delete, :post, :get]
110
- end
90
+ expect(config[:sign_out_via]).to eq [:delete, :post, :get]
111
91
  end
112
92
 
113
93
  end # describe ":sign_out_via option"