activeadmin 0.6.6 → 1.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (512) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -8
  3. data/.hound.yml +11 -0
  4. data/.travis.yml +36 -10
  5. data/.yardopts +2 -1
  6. data/CHANGELOG.md +118 -67
  7. data/CONTRIBUTING.md +96 -73
  8. data/Gemfile +35 -35
  9. data/Guardfile +1 -0
  10. data/LICENSE +1 -1
  11. data/README.md +98 -0
  12. data/Rakefile +12 -4
  13. data/activeadmin.gemspec +21 -24
  14. data/app/assets/javascripts/active_admin/application.js.coffee +32 -0
  15. data/app/assets/javascripts/active_admin/base.js.coffee +14 -0
  16. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
  17. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
  18. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
  19. data/app/assets/javascripts/active_admin/{components/jquery.aa.checkbox-toggler.js.coffee → lib/checkbox-toggler.js.coffee} +3 -4
  20. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +101 -0
  21. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
  22. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
  23. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +37 -0
  24. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
  25. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +68 -0
  26. data/app/assets/javascripts/active_admin/{components/jquery.aa.table-checkbox-toggler.js.coffee → lib/table-checkbox-toggler.js.coffee} +2 -3
  27. data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
  28. data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +61 -17
  29. data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
  30. data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
  31. data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
  32. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
  33. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -1
  34. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
  35. data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
  36. data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -14
  37. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +5 -4
  38. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  39. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  40. data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
  41. data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +2 -3
  42. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
  43. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  44. data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +4 -2
  45. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  46. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  47. data/app/assets/stylesheets/active_admin/mixins/{_all.css.scss → _all.scss} +0 -0
  48. data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -1
  49. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
  50. data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
  51. data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
  52. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
  53. data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +8 -2
  54. data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -7
  55. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -9
  56. data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
  57. data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
  58. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +5 -2
  59. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +11 -9
  60. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  61. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  62. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
  63. data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
  64. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  65. data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
  66. data/app/views/active_admin/devise/sessions/new.html.erb +9 -7
  67. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  68. data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
  69. data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
  70. data/config/locales/ar.yml +120 -0
  71. data/config/locales/bg.yml +26 -6
  72. data/config/locales/bs.yml +122 -0
  73. data/config/locales/ca.yml +10 -1
  74. data/config/locales/cs.yml +7 -2
  75. data/config/locales/da.yml +7 -3
  76. data/config/locales/de-CH.yml +14 -31
  77. data/config/locales/de.yml +33 -33
  78. data/config/locales/el.yml +28 -2
  79. data/config/locales/en-GB.yml +12 -4
  80. data/config/locales/en.yml +29 -3
  81. data/config/locales/{es_MX.yml → es-MX.yml} +9 -24
  82. data/config/locales/es.yml +32 -25
  83. data/config/locales/fa.yml +120 -0
  84. data/config/locales/fi.yml +113 -0
  85. data/config/locales/fr.yml +21 -11
  86. data/config/locales/he.yml +7 -3
  87. data/config/locales/hr.yml +42 -11
  88. data/config/locales/hu.yml +10 -3
  89. data/config/locales/it.yml +31 -3
  90. data/config/locales/ja.yml +8 -3
  91. data/config/locales/ko.yml +7 -1
  92. data/config/locales/lt.yml +42 -11
  93. data/config/locales/lv.yml +7 -3
  94. data/config/locales/{no-NB.yml → nb.yml} +46 -15
  95. data/config/locales/nl.yml +36 -5
  96. data/config/locales/pl.yml +13 -8
  97. data/config/locales/pt-BR.yml +37 -5
  98. data/config/locales/pt-PT.yml +8 -4
  99. data/config/locales/ro.yml +7 -3
  100. data/config/locales/ru.yml +26 -5
  101. data/config/locales/sv-SE.yml +9 -5
  102. data/config/locales/tr.yml +10 -3
  103. data/config/locales/uk.yml +36 -12
  104. data/config/locales/vi.yml +7 -3
  105. data/config/locales/zh-CN.yml +26 -10
  106. data/config/locales/zh-TW.yml +19 -13
  107. data/docs/0-installation.md +65 -29
  108. data/docs/1-general-configuration.md +92 -81
  109. data/docs/10-custom-pages.md +68 -68
  110. data/docs/11-decorators.md +48 -59
  111. data/docs/12-arbre-components.md +80 -74
  112. data/docs/13-authorization-adapter.md +128 -107
  113. data/docs/14-gotchas.md +92 -0
  114. data/docs/2-resource-customization.md +293 -178
  115. data/docs/3-index-pages.md +160 -86
  116. data/docs/3-index-pages/custom-index.md +31 -0
  117. data/docs/3-index-pages/index-as-block.md +14 -9
  118. data/docs/3-index-pages/index-as-blog.md +41 -31
  119. data/docs/3-index-pages/index-as-grid.md +16 -8
  120. data/docs/3-index-pages/index-as-table.md +129 -52
  121. data/docs/4-csv-format.md +31 -24
  122. data/docs/5-forms.md +133 -56
  123. data/docs/6-show-pages.md +89 -27
  124. data/docs/7-sidebars.md +48 -27
  125. data/docs/8-custom-actions.md +98 -77
  126. data/docs/9-batch-actions.md +210 -146
  127. data/docs/README.md +24 -0
  128. data/features/action_item.feature +3 -3
  129. data/features/authorization_pundit.feature +37 -0
  130. data/features/breadcrumb.feature +48 -0
  131. data/features/comments/commenting.feature +56 -13
  132. data/features/development_reloading.feature +17 -30
  133. data/features/edit_page.feature +12 -1
  134. data/features/favicon.feature +3 -3
  135. data/features/i18n.feature +5 -4
  136. data/features/index/batch_actions.feature +41 -0
  137. data/features/index/filters.feature +67 -0
  138. data/features/index/format_as_csv.feature +90 -4
  139. data/features/index/formats.feature +27 -0
  140. data/features/index/index_as_blog.feature +4 -4
  141. data/features/index/index_as_table.feature +102 -6
  142. data/features/index/index_blank_slate.feature +22 -0
  143. data/features/index/index_scope_to.feature +16 -16
  144. data/features/index/page_title.feature +11 -0
  145. data/features/index/pagination.feature +1 -1
  146. data/features/index/switch_index_view.feature +14 -14
  147. data/features/new_page.feature +13 -2
  148. data/features/registering_pages.feature +1 -1
  149. data/features/renamed_resource.feature +32 -0
  150. data/features/show/page_title.feature +11 -0
  151. data/features/show/tabs.feature +27 -0
  152. data/features/sidebar_sections.feature +12 -0
  153. data/features/site_title.feature +2 -2
  154. data/features/specifying_actions.feature +3 -3
  155. data/features/step_definitions/action_item_steps.rb +2 -2
  156. data/features/step_definitions/action_link_steps.rb +14 -1
  157. data/features/step_definitions/additional_web_steps.rb +19 -20
  158. data/features/step_definitions/asset_steps.rb +3 -3
  159. data/features/step_definitions/attribute_steps.rb +8 -3
  160. data/features/step_definitions/batch_action_steps.rb +26 -9
  161. data/features/step_definitions/blog_steps.rb +3 -0
  162. data/features/step_definitions/breadcrumb_steps.rb +1 -1
  163. data/features/step_definitions/comment_steps.rb +1 -1
  164. data/features/step_definitions/configuration_steps.rb +9 -2
  165. data/features/step_definitions/dashboard_steps.rb +2 -2
  166. data/features/step_definitions/factory_steps.rb +9 -8
  167. data/features/step_definitions/filter_steps.rb +25 -3
  168. data/features/step_definitions/flash_steps.rb +3 -3
  169. data/features/step_definitions/format_steps.rb +18 -18
  170. data/features/step_definitions/index_scope_steps.rb +5 -5
  171. data/features/step_definitions/layout_steps.rb +1 -1
  172. data/features/step_definitions/member_link_steps.rb +2 -2
  173. data/features/step_definitions/menu_steps.rb +3 -3
  174. data/features/step_definitions/pagination_steps.rb +2 -3
  175. data/features/step_definitions/sidebar_steps.rb +8 -3
  176. data/features/step_definitions/site_title_steps.rb +6 -4
  177. data/features/step_definitions/symbol_leak_steps.rb +3 -0
  178. data/features/step_definitions/tab_steps.rb +5 -0
  179. data/features/step_definitions/table_steps.rb +4 -4
  180. data/features/step_definitions/user_steps.rb +10 -7
  181. data/features/step_definitions/web_steps.rb +14 -11
  182. data/features/sti_resource.feature +6 -2
  183. data/features/strong_parameters.feature +73 -0
  184. data/features/support/env.rb +34 -9
  185. data/features/support/paths.rb +14 -6
  186. data/features/support/selectors.rb +1 -1
  187. data/features/symbol_leak.feature +35 -0
  188. data/features/users/resetting_password.feature +5 -6
  189. data/lib/active_admin.rb +26 -25
  190. data/lib/active_admin/abstract_view_factory.rb +7 -17
  191. data/lib/active_admin/application.rb +72 -59
  192. data/lib/active_admin/asset_registration.rb +2 -2
  193. data/lib/active_admin/authorization_adapter.rb +2 -2
  194. data/lib/active_admin/base_controller.rb +2 -3
  195. data/lib/active_admin/base_controller/authorization.rb +13 -31
  196. data/lib/active_admin/batch_actions.rb +1 -1
  197. data/lib/active_admin/batch_actions/controller.rb +24 -8
  198. data/lib/active_admin/batch_actions/resource_extension.rb +47 -18
  199. data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
  200. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
  201. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
  202. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
  203. data/lib/active_admin/callbacks.rb +25 -24
  204. data/lib/active_admin/cancan_adapter.rb +7 -11
  205. data/lib/active_admin/csv_builder.rb +92 -15
  206. data/lib/active_admin/dependency.rb +93 -0
  207. data/lib/active_admin/deprecation.rb +6 -7
  208. data/lib/active_admin/devise.rb +28 -18
  209. data/lib/active_admin/dsl.rb +18 -11
  210. data/lib/active_admin/engine.rb +10 -8
  211. data/lib/active_admin/error.rb +62 -0
  212. data/lib/active_admin/filters/dsl.rb +2 -2
  213. data/lib/active_admin/filters/forms.rb +17 -27
  214. data/lib/active_admin/filters/formtastic_addons.rb +49 -15
  215. data/lib/active_admin/filters/resource_extension.rb +43 -34
  216. data/lib/active_admin/form_builder.rb +93 -154
  217. data/lib/active_admin/helpers/collection.rb +7 -13
  218. data/lib/active_admin/helpers/i18n.rb +7 -0
  219. data/lib/active_admin/helpers/optional_display.rb +5 -5
  220. data/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
  221. data/lib/active_admin/helpers/scope_chain.rb +1 -1
  222. data/lib/active_admin/helpers/settings.rb +16 -9
  223. data/lib/active_admin/iconic.rb +17 -15
  224. data/lib/active_admin/iconic/icons.rb +136 -136
  225. data/lib/active_admin/inputs.rb +11 -7
  226. data/lib/active_admin/inputs/datepicker_input.rb +12 -3
  227. data/lib/active_admin/inputs/filters/base.rb +42 -0
  228. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  229. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  230. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  231. data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
  232. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  233. data/lib/active_admin/inputs/filters/select_input.rb +54 -0
  234. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  235. data/lib/active_admin/menu.rb +6 -4
  236. data/lib/active_admin/menu_collection.rb +1 -4
  237. data/lib/active_admin/namespace.rb +55 -29
  238. data/lib/active_admin/order_clause.rb +26 -0
  239. data/lib/active_admin/orm/active_record.rb +5 -0
  240. data/lib/active_admin/orm/active_record/comments.rb +81 -0
  241. data/lib/active_admin/orm/active_record/comments/comment.rb +45 -0
  242. data/lib/active_admin/{comments → orm/active_record/comments}/namespace_helper.rb +2 -2
  243. data/lib/active_admin/{comments → orm/active_record/comments}/resource_helper.rb +1 -1
  244. data/lib/active_admin/{comments → orm/active_record/comments}/show_page_helper.rb +0 -0
  245. data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
  246. data/lib/active_admin/{comments → orm/active_record/comments}/views/active_admin_comments.rb +16 -14
  247. data/lib/active_admin/orm/mongoid.rb +1 -0
  248. data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
  249. data/lib/active_admin/page.rb +7 -3
  250. data/lib/active_admin/page_dsl.rb +1 -1
  251. data/lib/active_admin/page_presenter.rb +2 -2
  252. data/lib/active_admin/pundit_adapter.rb +68 -0
  253. data/lib/active_admin/resource.rb +16 -17
  254. data/lib/active_admin/resource/action_items.rb +23 -18
  255. data/lib/active_admin/resource/belongs_to.rb +7 -3
  256. data/lib/active_admin/resource/controllers.rb +1 -0
  257. data/lib/active_admin/resource/includes.rb +12 -0
  258. data/lib/active_admin/resource/menu.rb +5 -5
  259. data/lib/active_admin/resource/naming.rb +27 -43
  260. data/lib/active_admin/resource/page_presenters.rb +1 -1
  261. data/lib/active_admin/resource/routes.rb +27 -11
  262. data/lib/active_admin/resource/scope_to.rb +7 -7
  263. data/lib/active_admin/resource/sidebars.rb +1 -0
  264. data/lib/active_admin/resource_controller.rb +6 -7
  265. data/lib/active_admin/resource_controller/data_access.rb +101 -93
  266. data/lib/active_admin/resource_controller/decorators.rb +91 -9
  267. data/lib/active_admin/resource_controller/streaming.rb +37 -0
  268. data/lib/active_admin/resource_dsl.rb +53 -10
  269. data/lib/active_admin/router.rb +7 -7
  270. data/lib/active_admin/scope.rb +6 -6
  271. data/lib/active_admin/sidebar_section.rb +10 -2
  272. data/lib/active_admin/version.rb +1 -1
  273. data/lib/active_admin/view_factory.rb +17 -17
  274. data/lib/active_admin/view_helpers.rb +0 -1
  275. data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
  276. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
  277. data/lib/active_admin/view_helpers/display_helper.rb +30 -15
  278. data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -25
  279. data/lib/active_admin/view_helpers/fields_for.rb +4 -4
  280. data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
  281. data/lib/active_admin/view_helpers/form_helper.rb +5 -9
  282. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
  283. data/lib/active_admin/views/action_items.rb +2 -2
  284. data/lib/active_admin/views/components/action_list_popover.rb +1 -1
  285. data/lib/active_admin/views/components/active_admin_form.rb +123 -0
  286. data/lib/active_admin/views/components/attributes_table.rb +63 -21
  287. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  288. data/lib/active_admin/views/components/columns.rb +13 -7
  289. data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
  290. data/lib/active_admin/views/components/index_list.rb +7 -7
  291. data/lib/active_admin/views/components/paginated_collection.rb +38 -20
  292. data/lib/active_admin/views/components/panel.rb +8 -2
  293. data/lib/active_admin/views/components/popover.rb +1 -1
  294. data/lib/active_admin/views/components/scopes.rb +5 -4
  295. data/lib/active_admin/views/components/sidebar_section.rb +3 -2
  296. data/lib/active_admin/views/components/site_title.rb +2 -2
  297. data/lib/active_admin/views/components/status_tag.rb +34 -11
  298. data/lib/active_admin/views/components/table_for.rb +90 -45
  299. data/lib/active_admin/views/components/tabs.rb +28 -0
  300. data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  301. data/lib/active_admin/views/footer.rb +3 -3
  302. data/lib/active_admin/views/header.rb +3 -3
  303. data/lib/active_admin/views/index_as_block.rb +10 -10
  304. data/lib/active_admin/views/index_as_blog.rb +45 -39
  305. data/lib/active_admin/views/index_as_grid.rb +14 -10
  306. data/lib/active_admin/views/index_as_table.rb +242 -129
  307. data/lib/active_admin/views/pages/base.rb +22 -18
  308. data/lib/active_admin/views/pages/form.rb +21 -11
  309. data/lib/active_admin/views/pages/index.rb +40 -35
  310. data/lib/active_admin/views/pages/layout.rb +1 -1
  311. data/lib/active_admin/views/pages/show.rb +4 -4
  312. data/lib/active_admin/views/tabbed_navigation.rb +7 -3
  313. data/lib/active_admin/views/title_bar.rb +10 -8
  314. data/lib/generators/active_admin/assets/assets_generator.rb +3 -28
  315. data/lib/generators/active_admin/assets/templates/{3.1/active_admin.css.scss → active_admin.css.scss} +0 -0
  316. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
  317. data/lib/generators/active_admin/devise/devise_generator.rb +24 -26
  318. data/lib/generators/active_admin/install/install_generator.rb +8 -9
  319. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +28 -26
  320. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -2
  321. data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
  322. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
  323. data/lib/generators/active_admin/page/USAGE +8 -0
  324. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  325. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  326. data/lib/generators/active_admin/resource/resource_generator.rb +3 -5
  327. data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
  328. data/lib/ransack_ext.rb +12 -0
  329. data/script/local +2 -2
  330. data/script/travis_cache +107 -0
  331. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
  332. data/spec/javascripts/fixtures/flashes.html +2 -0
  333. data/spec/rails_helper.rb +154 -0
  334. data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
  335. data/spec/{integration → requests}/javascript_spec.rb +5 -5
  336. data/spec/requests/memory_spec.rb +23 -0
  337. data/spec/requests/stylesheets_spec.rb +18 -0
  338. data/spec/spec_helper.rb +12 -173
  339. data/spec/support/detect_rails_version.rb +9 -17
  340. data/spec/support/rails_template.rb +64 -35
  341. data/spec/support/rails_template_with_data.rb +14 -14
  342. data/spec/support/templates/admin/stores.rb +5 -1
  343. data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
  344. data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
  345. data/spec/support/templates/policies/admin_user_policy.rb +11 -0
  346. data/spec/support/templates/policies/application_policy.rb +45 -0
  347. data/spec/support/templates/policies/category_policy.rb +7 -0
  348. data/spec/support/templates/policies/post_policy.rb +15 -0
  349. data/spec/support/templates/policies/store_policy.rb +11 -0
  350. data/spec/support/templates/policies/user_policy.rb +11 -0
  351. data/spec/support/templates/post_decorator.rb +4 -46
  352. data/spec/unit/abstract_view_factory_spec.rb +16 -16
  353. data/spec/unit/action_builder_spec.rb +24 -18
  354. data/spec/unit/active_admin_spec.rb +2 -2
  355. data/spec/unit/application_spec.rb +33 -34
  356. data/spec/unit/asset_registration_spec.rb +25 -29
  357. data/spec/unit/authorization/authorization_adapter_spec.rb +10 -10
  358. data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
  359. data/spec/unit/authorization/index_overriding_spec.rb +22 -0
  360. data/spec/unit/auto_link_spec.rb +43 -13
  361. data/spec/unit/batch_actions/resource_spec.rb +15 -14
  362. data/spec/unit/batch_actions/settings_spec.rb +18 -18
  363. data/spec/unit/belongs_to_spec.rb +28 -19
  364. data/spec/unit/cancan_adapter_spec.rb +8 -8
  365. data/spec/unit/comments_spec.rb +99 -39
  366. data/spec/unit/component_spec.rb +3 -3
  367. data/spec/unit/config_shared_examples.rb +10 -10
  368. data/spec/unit/controller_filters_spec.rb +23 -16
  369. data/spec/unit/csv_builder_spec.rb +165 -24
  370. data/spec/unit/dependency_spec.rb +135 -0
  371. data/spec/unit/devise_spec.rb +17 -37
  372. data/spec/unit/dsl_spec.rb +70 -9
  373. data/spec/unit/event_spec.rb +11 -11
  374. data/spec/unit/filters/filter_form_builder_spec.rb +207 -148
  375. data/spec/unit/filters/resource_spec.rb +60 -26
  376. data/spec/unit/form_builder_spec.rb +419 -145
  377. data/spec/unit/generators/install_spec.rb +23 -0
  378. data/spec/unit/helpers/collection_spec.rb +18 -18
  379. data/spec/unit/helpers/scope_chain_spec.rb +6 -6
  380. data/spec/unit/helpers/settings_spec.rb +4 -4
  381. data/spec/unit/i18n_spec.rb +12 -0
  382. data/spec/unit/menu_collection_spec.rb +14 -14
  383. data/spec/unit/menu_item_spec.rb +42 -42
  384. data/spec/unit/menu_spec.rb +20 -20
  385. data/spec/unit/namespace/authorization_spec.rb +8 -8
  386. data/spec/unit/namespace/register_page_spec.rb +11 -11
  387. data/spec/unit/namespace/register_resource_spec.rb +28 -30
  388. data/spec/unit/namespace_spec.rb +20 -20
  389. data/spec/unit/order_clause_spec.rb +81 -0
  390. data/spec/unit/page_controller_spec.rb +1 -1
  391. data/spec/unit/page_spec.rb +18 -12
  392. data/spec/unit/pretty_format_spec.rb +42 -14
  393. data/spec/unit/pundit_adapter_spec.rb +98 -0
  394. data/spec/unit/resource/action_items_spec.rb +15 -12
  395. data/spec/unit/resource/includes_spec.rb +21 -0
  396. data/spec/unit/resource/menu_spec.rb +1 -1
  397. data/spec/unit/resource/naming_spec.rb +35 -21
  398. data/spec/unit/resource/page_presenters_spec.rb +8 -8
  399. data/spec/unit/resource/pagination_spec.rb +6 -6
  400. data/spec/unit/resource/routes_spec.rb +10 -10
  401. data/spec/unit/resource/scopes_spec.rb +14 -7
  402. data/spec/unit/resource/sidebars_spec.rb +6 -6
  403. data/spec/unit/resource_collection_spec.rb +31 -38
  404. data/spec/unit/resource_controller/data_access_spec.rb +96 -30
  405. data/spec/unit/resource_controller/decorators_spec.rb +83 -0
  406. data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
  407. data/spec/unit/resource_controller_spec.rb +73 -70
  408. data/spec/unit/resource_registration_spec.rb +12 -12
  409. data/spec/unit/resource_spec.rb +77 -42
  410. data/spec/unit/routing_spec.rb +39 -31
  411. data/spec/unit/scope_spec.rb +112 -30
  412. data/spec/unit/settings_spec.rb +51 -21
  413. data/spec/unit/view_factory_spec.rb +2 -3
  414. data/spec/unit/view_helpers/breadcrumbs_spec.rb +71 -60
  415. data/spec/unit/view_helpers/display_name_spec.rb +49 -21
  416. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
  417. data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
  418. data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
  419. data/spec/unit/view_helpers/form_helper_spec.rb +10 -23
  420. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +64 -22
  421. data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
  422. data/spec/unit/views/components/attributes_table_spec.rb +171 -30
  423. data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
  424. data/spec/unit/views/components/blank_slate_spec.rb +14 -4
  425. data/spec/unit/views/components/columns_spec.rb +52 -22
  426. data/spec/unit/views/components/index_list_spec.rb +11 -8
  427. data/spec/unit/views/components/index_table_for_spec.rb +46 -0
  428. data/spec/unit/views/components/paginated_collection_spec.rb +79 -90
  429. data/spec/unit/views/components/panel_spec.rb +32 -21
  430. data/spec/unit/views/components/popover_spec.rb +7 -7
  431. data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
  432. data/spec/unit/views/components/site_title_spec.rb +26 -26
  433. data/spec/unit/views/components/status_tag_spec.rb +178 -38
  434. data/spec/unit/views/components/table_for_spec.rb +237 -35
  435. data/spec/unit/views/components/tabs_spec.rb +39 -0
  436. data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
  437. data/spec/unit/views/pages/form_spec.rb +17 -10
  438. data/spec/unit/views/pages/index_spec.rb +60 -0
  439. data/spec/unit/views/pages/layout_spec.rb +17 -21
  440. data/spec/unit/views/pages/show_spec.rb +18 -6
  441. data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
  442. data/tasks/docs.rake +9 -11
  443. data/tasks/parallel_tests.rake +8 -2
  444. data/tasks/test.rake +13 -9
  445. data/tasks/yard.rake +7 -4
  446. metadata +219 -163
  447. data/.document +0 -5
  448. data/README.rdoc +0 -88
  449. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  450. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  451. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  452. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  453. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  454. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +0 -10
  455. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
  456. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
  457. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
  458. data/app/assets/images/active_admin/loading.gif +0 -0
  459. data/app/assets/javascripts/active_admin/application.js +0 -3
  460. data/app/assets/javascripts/active_admin/base.js +0 -5
  461. data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +0 -105
  462. data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +0 -97
  463. data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +0 -4
  464. data/app/assets/javascripts/active_admin/pages/application.js.coffee +0 -21
  465. data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +0 -26
  466. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
  467. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -41
  468. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
  469. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +0 -38
  470. data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +0 -43
  471. data/app/views/active_admin/dashboard/index.html.arb +0 -1
  472. data/app/views/active_admin/resource/index.csv.erb +0 -23
  473. data/docs/3-index-pages/create-an-index.md +0 -29
  474. data/lib/active_admin/comments.rb +0 -83
  475. data/lib/active_admin/comments/comment.rb +0 -42
  476. data/lib/active_admin/comments/views.rb +0 -2
  477. data/lib/active_admin/dependency_checker.rb +0 -46
  478. data/lib/active_admin/inputs/filter_base.rb +0 -33
  479. data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
  480. data/lib/active_admin/inputs/filter_boolean_input.rb +0 -36
  481. data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -40
  482. data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
  483. data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
  484. data/lib/active_admin/inputs/filter_select_input.rb +0 -49
  485. data/lib/active_admin/inputs/filter_string_input.rb +0 -24
  486. data/lib/active_admin/reloader.rb +0 -130
  487. data/lib/active_admin/resource_controller/actions.rb +0 -81
  488. data/lib/active_admin/sass/active_admin.scss +0 -3
  489. data/lib/active_admin/sass/css_loader.rb +0 -16
  490. data/lib/active_admin/sass/helpers.rb +0 -45
  491. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
  492. data/lib/active_admin/views/dashboard_section_renderer.rb +0 -19
  493. data/lib/active_admin/views/pages/dashboard.rb +0 -62
  494. data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +0 -1
  495. data/lib/generators/active_admin/assets/templates/3.1/active_admin.js +0 -1
  496. data/lib/meta_search_ext.rb +0 -10
  497. data/spec/integration/memory_spec.rb +0 -29
  498. data/spec/integration/stylesheets_spec.rb +0 -41
  499. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
  500. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
  501. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
  502. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
  503. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
  504. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
  505. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
  506. data/spec/javascripts/support/jquery.min.js +0 -4
  507. data/spec/spec_helper_without_rails.rb +0 -11
  508. data/spec/unit/generators/install_rails_3_1_spec.rb +0 -16
  509. data/spec/unit/rails_spec.rb +0 -43
  510. data/spec/unit/reloader_spec.rb +0 -124
  511. data/spec/unit/sass/helpers_spec.rb +0 -47
  512. data/tasks/js.rake +0 -32
@@ -1,11 +1,10 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
  require File.expand_path('config_shared_examples', File.dirname(__FILE__))
3
3
 
4
4
  module ActiveAdmin
5
5
  describe Resource do
6
6
 
7
- it_should_behave_like "ActiveAdmin::Config"
8
-
7
+ it_should_behave_like "ActiveAdmin::Resource"
9
8
  before { load_defaults! }
10
9
 
11
10
  let(:application){ ActiveAdmin::Application.new }
@@ -19,33 +18,33 @@ module ActiveAdmin
19
18
 
20
19
  describe "#resource_table_name" do
21
20
  it "should return the resource's table name" do
22
- config.resource_table_name.should == '"categories"'
21
+ expect(config.resource_table_name).to eq '"categories"'
23
22
  end
24
23
  context "when the :as option is given" do
25
24
  it "should return the resource's table name" do
26
- config(:as => "My Category").resource_table_name.should == '"categories"'
25
+ expect(config(as: "My Category").resource_table_name).to eq '"categories"'
27
26
  end
28
27
  end
29
28
  end
30
29
 
31
30
  describe "#resource_column_names" do
32
31
  it "should return the resource's column names" do
33
- config.resource_column_names.should == Category.column_names
32
+ expect(config.resource_column_names).to eq Category.column_names
34
33
  end
35
34
  end
36
35
 
37
36
  describe '#decorator_class' do
38
37
  it 'returns nil by default' do
39
- config.decorator_class.should be_nil
38
+ expect(config.decorator_class).to be_nil
40
39
  end
41
40
  context 'when a decorator is defined' do
42
41
  let(:resource) { namespace.register(Post) { decorate_with PostDecorator } }
43
42
  specify '#decorator_class_name should return PostDecorator' do
44
- resource.decorator_class_name.should == '::PostDecorator'
43
+ expect(resource.decorator_class_name).to eq '::PostDecorator'
45
44
  end
46
45
 
47
46
  it 'returns the decorator class' do
48
- resource.decorator_class.should == PostDecorator
47
+ expect(resource.decorator_class).to eq PostDecorator
49
48
  end
50
49
  end
51
50
  end
@@ -53,12 +52,12 @@ module ActiveAdmin
53
52
 
54
53
  describe "controller name" do
55
54
  it "should return a namespaced controller name" do
56
- config.controller_name.should == "Admin::CategoriesController"
55
+ expect(config.controller_name).to eq "Admin::CategoriesController"
57
56
  end
58
57
  context "when non namespaced controller" do
59
58
  let(:namespace){ ActiveAdmin::Namespace.new(application, :root) }
60
59
  it "should return a non namespaced controller name" do
61
- config.controller_name.should == "CategoriesController"
60
+ expect(config.controller_name).to eq "CategoriesController"
62
61
  end
63
62
  end
64
63
  end
@@ -69,27 +68,27 @@ module ActiveAdmin
69
68
 
70
69
  context "when regular resource" do
71
70
  let(:resource){ namespace.register(Post) }
72
- it { should be_include_in_menu }
71
+ it { is_expected.to be_include_in_menu }
73
72
  end
74
73
 
75
74
  context "when menu set to false" do
76
75
  let(:resource){ namespace.register(Post){ menu false } }
77
- it { should_not be_include_in_menu }
76
+ it { is_expected.not_to be_include_in_menu }
78
77
  end
79
78
  end
80
79
 
81
80
  describe "#belongs_to" do
82
81
 
83
82
  it "should build a belongs to configuration" do
84
- config.belongs_to_config.should be_nil
83
+ expect(config.belongs_to_config).to be_nil
85
84
  config.belongs_to :posts
86
- config.belongs_to_config.should_not be_nil
85
+ expect(config.belongs_to_config).to_not be_nil
87
86
  end
88
87
 
89
88
  it "should set the target menu to the belongs to target" do
90
- config.navigation_menu_name.should == ActiveAdmin::DEFAULT_MENU
89
+ expect(config.navigation_menu_name).to eq ActiveAdmin::DEFAULT_MENU
91
90
  config.belongs_to :posts
92
- config.navigation_menu_name.should == :posts
91
+ expect(config.navigation_menu_name).to eq :posts
93
92
  end
94
93
 
95
94
  end
@@ -105,7 +104,7 @@ module ActiveAdmin
105
104
  end
106
105
  it "should call the proc for the begin of association chain" do
107
106
  begin_of_association_chain = @resource.controller.new.send(:begin_of_association_chain)
108
- begin_of_association_chain.should == "scoped"
107
+ expect(begin_of_association_chain).to eq "scoped"
109
108
  end
110
109
  end
111
110
 
@@ -117,9 +116,9 @@ module ActiveAdmin
117
116
  end
118
117
  it "should call the method for the begin of association chain" do
119
118
  controller = @resource.controller.new
120
- controller.should_receive(:current_user).and_return(true)
119
+ expect(controller).to receive(:current_user).and_return(true)
121
120
  begin_of_association_chain = controller.send(:begin_of_association_chain)
122
- begin_of_association_chain.should == true
121
+ expect(begin_of_association_chain).to eq true
123
122
  end
124
123
  end
125
124
 
@@ -131,17 +130,17 @@ module ActiveAdmin
131
130
  end
132
131
  end
133
132
  it "should return the pluralized collection name" do
134
- @resource.controller.new.send(:method_for_association_chain).should == :categories
133
+ expect(@resource.controller.new.send(:method_for_association_chain)).to eq :categories
135
134
  end
136
135
  end
137
136
  context "when passing in the method as an option" do
138
137
  before do
139
138
  @resource = application.register Category do
140
- scope_to :current_user, :association_method => :blog_categories
139
+ scope_to :current_user, association_method: :blog_categories
141
140
  end
142
141
  end
143
142
  it "should return the method from the option" do
144
- @resource.controller.new.send(:method_for_association_chain).should == :blog_categories
143
+ expect(@resource.controller.new.send(:method_for_association_chain)).to eq :blog_categories
145
144
  end
146
145
  end
147
146
  end
@@ -152,22 +151,22 @@ module ActiveAdmin
152
151
 
153
152
  context "when resource class responds to primary_key" do
154
153
  it "should sort by primary key desc by default" do
155
- MockResource.should_receive(:primary_key).and_return("pk")
154
+ expect(MockResource).to receive(:primary_key).and_return("pk")
156
155
  config = Resource.new(namespace, MockResource)
157
- config.sort_order.should == "pk_desc"
156
+ expect(config.sort_order).to eq "pk_desc"
158
157
  end
159
158
  end
160
159
 
161
160
  context "when resource class does not respond to primary_key" do
162
161
  it "should default to id" do
163
162
  config = Resource.new(namespace, MockResource)
164
- config.sort_order.should == "id_desc"
163
+ expect(config.sort_order).to eq "id_desc"
165
164
  end
166
165
  end
167
166
 
168
167
  it "should be set-able" do
169
168
  config.sort_order = "task_id_desc"
170
- config.sort_order.should == "task_id_desc"
169
+ expect(config.sort_order).to eq "task_id_desc"
171
170
  end
172
171
 
173
172
  end
@@ -176,19 +175,19 @@ module ActiveAdmin
176
175
 
177
176
  it "should add a scope" do
178
177
  config.scope :published
179
- config.scopes.first.should be_a(ActiveAdmin::Scope)
180
- config.scopes.first.name.should == "Published"
178
+ expect(config.scopes.first).to be_a(ActiveAdmin::Scope)
179
+ expect(config.scopes.first.name).to eq "Published"
181
180
  end
182
181
 
183
182
  it "should retrive a scope by its id" do
184
183
  config.scope :published
185
- config.get_scope_by_id(:published).name.should == "Published"
184
+ expect(config.get_scope_by_id(:published).name).to eq "Published"
186
185
  end
187
186
 
188
187
  it "should retrieve the default scope by proc" do
189
- config.scope :published, :default => proc{ true }
188
+ config.scope :published, default: proc{ true }
190
189
  config.scope :all
191
- config.default_scope.name.should == "Published"
190
+ expect(config.default_scope.name).to eq "Published"
192
191
  end
193
192
 
194
193
  end
@@ -196,7 +195,7 @@ module ActiveAdmin
196
195
  describe "#csv_builder" do
197
196
  context "when no csv builder set" do
198
197
  it "should return a default column builder with id and content columns" do
199
- config.csv_builder.columns.size.should == Category.content_columns.size + 1
198
+ expect(config.csv_builder.exec_columns.size).to eq Category.content_columns.size + 1
200
199
  end
201
200
  end
202
201
 
@@ -204,38 +203,74 @@ module ActiveAdmin
204
203
  it "shuld return the csv_builder we set" do
205
204
  csv_builder = CSVBuilder.new
206
205
  config.csv_builder = csv_builder
207
- config.csv_builder.should == csv_builder
206
+ expect(config.csv_builder).to eq csv_builder
207
+ end
208
+ end
209
+ end
210
+
211
+ describe "#breadcrumb" do
212
+ subject { config.breadcrumb }
213
+
214
+ context "when no breadcrumb is set" do
215
+ it { is_expected.to eq(namespace.breadcrumb) }
216
+ end
217
+
218
+ context "when breadcrumb is set" do
219
+ context "when set to true" do
220
+ before { config.breadcrumb = true }
221
+ it { is_expected.to be_truthy }
222
+ end
223
+
224
+ context "when set to false" do
225
+ before { config.breadcrumb = false }
226
+ it { is_expected.to be_falsey }
208
227
  end
209
228
  end
210
229
  end
211
230
 
212
231
  describe '#find_resource' do
213
232
  let(:resource) { namespace.register(Post) }
214
- let(:post) { stub }
233
+ let(:post) { double }
215
234
  before do
216
- Post.stub(:where).with('id' => '12345').and_return { [post] }
235
+ allow(Post).to receive(:find_by_id).with('12345') { post }
217
236
  end
218
237
 
219
238
  it 'can find the resource' do
220
- resource.find_resource('12345').should == post
239
+ expect(resource.find_resource('12345')).to eq post
221
240
  end
222
241
 
223
242
  context 'with a decorator' do
224
243
  let(:resource) { namespace.register(Post) { decorate_with PostDecorator } }
225
244
  it 'decorates the resource' do
226
- resource.find_resource('12345').should == PostDecorator.new(post)
245
+ expect(resource.find_resource('12345')).to eq PostDecorator.new(post)
227
246
  end
228
247
  end
229
248
 
230
249
  context 'when using a nonstandard primary key' do
231
- let(:different_post) { stub }
250
+ let(:different_post) { double }
232
251
  before do
233
- Post.stub(:primary_key).and_return 'something_else'
234
- Post.stub(:where).with('something_else' => '55555').and_return { [different_post] }
252
+ allow(Post).to receive(:primary_key).and_return 'something_else'
253
+ allow(Post).to receive(:find_by_something_else).with('55555') { different_post }
235
254
  end
236
255
 
237
256
  it 'can find the post by the custom primary key' do
238
- resource.find_resource('55555').should == different_post
257
+ expect(resource.find_resource('55555')).to eq different_post
258
+ end
259
+ end
260
+
261
+ context 'when using controller finder' do
262
+ let(:resource) do
263
+ namespace.register(Post) do
264
+ controller do
265
+ defaults finder: :find_by_title!
266
+ end
267
+ end
268
+ end
269
+
270
+ it 'can find the post by controller finder' do
271
+ allow(Post).to receive(:find_by_title!).with('title-name').and_return(post)
272
+
273
+ expect(resource.find_resource('title-name')).to eq post
239
274
  end
240
275
  end
241
276
  end
@@ -1,8 +1,8 @@
1
1
  # encoding: utf-8
2
2
 
3
- require 'spec_helper'
3
+ require 'rails_helper'
4
4
 
5
- describe ActiveAdmin, "Routing", :type => :routing do
5
+ describe ActiveAdmin, "Routing", type: :routing do
6
6
 
7
7
  before do
8
8
  load_defaults!
@@ -10,51 +10,59 @@ describe ActiveAdmin, "Routing", :type => :routing do
10
10
  end
11
11
 
12
12
  it "should only have the namespaces necessary for route testing" do
13
- ActiveAdmin.application.namespaces.keys.should eq [:admin, :root]
13
+ expect(ActiveAdmin.application.namespaces.names).to eq [:admin, :root]
14
14
  end
15
15
 
16
16
  it "should route to the admin dashboard" do
17
- get('/admin').should route_to 'admin/dashboard#index'
17
+ expect(get('/admin')).to route_to 'admin/dashboard#index'
18
+ end
19
+
20
+ describe "root path helper" do
21
+ context "when in admin namespace" do
22
+ it "should be admin_root_path" do
23
+ expect(admin_root_path).to eq "/admin"
24
+ end
25
+ end
18
26
  end
19
27
 
20
28
  describe "standard resources" do
21
29
  context "when in admin namespace" do
22
30
  it "should route the index path" do
23
- admin_posts_path.should == "/admin/posts"
31
+ expect(admin_posts_path).to eq "/admin/posts"
24
32
  end
25
33
 
26
34
  it "should route the show path" do
27
- admin_post_path(1).should == "/admin/posts/1"
35
+ expect(admin_post_path(1)).to eq "/admin/posts/1"
28
36
  end
29
37
 
30
38
  it "should route the new path" do
31
- new_admin_post_path.should == "/admin/posts/new"
39
+ expect(new_admin_post_path).to eq "/admin/posts/new"
32
40
  end
33
41
 
34
42
  it "should route the edit path" do
35
- edit_admin_post_path(1).should == "/admin/posts/1/edit"
43
+ expect(edit_admin_post_path(1)).to eq "/admin/posts/1/edit"
36
44
  end
37
45
  end
38
46
 
39
47
  context "when in root namespace" do
40
48
  before(:each) do
41
- load_resources { ActiveAdmin.register(Post, :namespace => false) }
49
+ load_resources { ActiveAdmin.register(Post, namespace: false) }
42
50
  end
43
51
 
44
52
  it "should route the index path" do
45
- posts_path.should == "/posts"
53
+ expect(posts_path).to eq "/posts"
46
54
  end
47
55
 
48
56
  it "should route the show path" do
49
- post_path(1).should == "/posts/1"
57
+ expect(post_path(1)).to eq "/posts/1"
50
58
  end
51
59
 
52
60
  it "should route the new path" do
53
- new_post_path.should == "/posts/new"
61
+ expect(new_post_path).to eq "/posts/new"
54
62
  end
55
63
 
56
64
  it "should route the edit path" do
57
- edit_post_path(1).should == "/posts/1/edit"
65
+ expect(edit_post_path(1)).to eq "/posts/1/edit"
58
66
  end
59
67
  end
60
68
 
@@ -67,36 +75,36 @@ describe ActiveAdmin, "Routing", :type => :routing do
67
75
  end
68
76
 
69
77
  it "should default to GET" do
70
- {:get => "/admin/posts/1/do_something"}.should be_routable
71
- {:post => "/admin/posts/1/do_something"}.should_not be_routable
78
+ expect({get: "/admin/posts/1/do_something"}).to be_routable
79
+ expect({post: "/admin/posts/1/do_something"}).to_not be_routable
72
80
  end
73
81
  end
74
82
 
75
83
  context "with one http verb" do
76
84
  before do
77
85
  load_resources do
78
- ActiveAdmin.register(Post){ member_action "do_something", :method => :post }
86
+ ActiveAdmin.register(Post){ member_action "do_something", method: :post }
79
87
  end
80
88
  end
81
89
 
82
90
  it "should properly route" do
83
- {:post => "/admin/posts/1/do_something"}.should be_routable
91
+ expect({post: "/admin/posts/1/do_something"}).to be_routable
84
92
  end
85
93
  end
86
94
 
87
95
  context "with two http verbs" do
88
96
  before do
89
97
  load_resources do
90
- ActiveAdmin.register(Post){ member_action "do_something", :method => [:put, :delete] }
98
+ ActiveAdmin.register(Post){ member_action "do_something", method: [:put, :delete] }
91
99
  end
92
100
  end
93
101
 
94
102
  it "should properly route the first verb" do
95
- {:put => "/admin/posts/1/do_something"}.should be_routable
103
+ expect({put: "/admin/posts/1/do_something"}).to be_routable
96
104
  end
97
105
 
98
106
  it "should properly route the second verb" do
99
- {:delete => "/admin/posts/1/do_something"}.should be_routable
107
+ expect({delete: "/admin/posts/1/do_something"}).to be_routable
100
108
  end
101
109
  end
102
110
  end
@@ -104,26 +112,26 @@ describe ActiveAdmin, "Routing", :type => :routing do
104
112
 
105
113
  describe "belongs to resource" do
106
114
  it "should route the nested index path" do
107
- admin_user_posts_path(1).should == "/admin/users/1/posts"
115
+ expect(admin_user_posts_path(1)).to eq "/admin/users/1/posts"
108
116
  end
109
117
 
110
118
  it "should route the nested show path" do
111
- admin_user_post_path(1,2).should == "/admin/users/1/posts/2"
119
+ expect(admin_user_post_path(1,2)).to eq "/admin/users/1/posts/2"
112
120
  end
113
121
 
114
122
  it "should route the nested new path" do
115
- new_admin_user_post_path(1).should == "/admin/users/1/posts/new"
123
+ expect(new_admin_user_post_path(1)).to eq "/admin/users/1/posts/new"
116
124
  end
117
125
 
118
126
  it "should route the nested edit path" do
119
- edit_admin_user_post_path(1,2).should == "/admin/users/1/posts/2/edit"
127
+ expect(edit_admin_user_post_path(1,2)).to eq "/admin/users/1/posts/2/edit"
120
128
  end
121
129
 
122
130
  context "with collection action" do
123
131
  before do
124
132
  load_resources do
125
133
  ActiveAdmin.register(Post) do
126
- belongs_to :user, :optional => true
134
+ belongs_to :user, optional: true
127
135
  end
128
136
  ActiveAdmin.register(User) do
129
137
  collection_action "do_something"
@@ -132,8 +140,8 @@ describe ActiveAdmin, "Routing", :type => :routing do
132
140
  end
133
141
 
134
142
  it "should properly route the collection action" do
135
- { :get => "/admin/users/do_something" }.
136
- should route_to({ :controller => 'admin/users',:action => 'do_something'})
143
+ expect({ get: "/admin/users/do_something" }).to \
144
+ route_to({ controller: 'admin/users', action: 'do_something'})
137
145
  end
138
146
  end
139
147
  end
@@ -145,16 +153,16 @@ describe ActiveAdmin, "Routing", :type => :routing do
145
153
  end
146
154
 
147
155
  it "should route to the page under /admin" do
148
- admin_chocolate_i_love_you_path.should == "/admin/chocolate_i_love_you"
156
+ expect(admin_chocolate_i_love_you_path).to eq "/admin/chocolate_i_love_you"
149
157
  end
150
158
 
151
159
  context "when in the root namespace" do
152
160
  before(:each) do
153
- load_resources { ActiveAdmin.register_page("Chocolate I lØve You!", :namespace => false) }
161
+ load_resources { ActiveAdmin.register_page("Chocolate I lØve You!", namespace: false) }
154
162
  end
155
163
 
156
164
  it "should route to page under /" do
157
- chocolate_i_love_you_path.should == "/chocolate_i_love_you"
165
+ expect(chocolate_i_love_you_path).to eq "/chocolate_i_love_you"
158
166
  end
159
167
  end
160
168
 
@@ -164,7 +172,7 @@ describe ActiveAdmin, "Routing", :type => :routing do
164
172
  end
165
173
 
166
174
  it "should not inject _index_ into the route name" do
167
- admin_log_path.should == "/admin/log"
175
+ expect(admin_log_path).to eq "/admin/log"
168
176
  end
169
177
  end
170
178
  end