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,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Scope do
4
4
 
@@ -7,41 +7,123 @@ describe ActiveAdmin::Scope do
7
7
 
8
8
  context "when just a scope method" do
9
9
  let(:scope) { ActiveAdmin::Scope.new :published }
10
- its(:name) { should == "Published"}
11
- its(:id) { should == "published"}
12
- its(:scope_method) { should == :published }
10
+
11
+ describe '#name' do
12
+ subject { super().name }
13
+ it { is_expected.to eq("Published")}
14
+ end
15
+
16
+ describe '#id' do
17
+ subject { super().id }
18
+ it { is_expected.to eq("published")}
19
+ end
20
+
21
+ describe '#scope_method' do
22
+ subject { super().scope_method }
23
+ it { is_expected.to eq(:published) }
24
+ end
13
25
  end
14
26
 
15
27
  context "when scope method is :all" do
16
28
  let(:scope) { ActiveAdmin::Scope.new :all }
17
- its(:name) { should == "All"}
18
- its(:id) { should == "all"}
29
+
30
+ describe '#name' do
31
+ subject { super().name }
32
+ it { is_expected.to eq("All")}
33
+ end
34
+
35
+ describe '#id' do
36
+ subject { super().id }
37
+ it { is_expected.to eq("all")}
38
+ end
19
39
  # :all does not return a chain but an array of active record
20
40
  # instances. We set the scope_method to nil then.
21
- its(:scope_method) { should == nil }
22
- its(:scope_block) { should == nil }
41
+
42
+ describe '#scope_method' do
43
+ subject { super().scope_method }
44
+ it { is_expected.to eq(nil) }
45
+ end
46
+
47
+ describe '#scope_block' do
48
+ subject { super().scope_block }
49
+ it { is_expected.to eq(nil) }
50
+ end
23
51
  end
24
52
 
25
53
  context 'when a name and scope method is :all' do
26
54
  let(:scope) { ActiveAdmin::Scope.new 'Tous', :all }
27
- its(:name) { should eq 'Tous' }
28
- its(:scope_method) { should be_nil }
29
- its(:scope_block) { should be_nil }
55
+
56
+ describe '#name' do
57
+ subject { super().name }
58
+ it { is_expected.to eq 'Tous' }
59
+ end
60
+
61
+ describe '#scope_method' do
62
+ subject { super().scope_method }
63
+ it { is_expected.to be_nil }
64
+ end
65
+
66
+ describe '#scope_block' do
67
+ subject { super().scope_block }
68
+ it { is_expected.to be_nil }
69
+ end
30
70
  end
31
71
 
32
72
  context "when a name and scope method" do
33
73
  let(:scope) { ActiveAdmin::Scope.new "With API Access", :with_api_access }
34
- its(:name) { should == "With API Access"}
35
- its(:id) { should == "with_api_access"}
36
- its(:scope_method) { should == :with_api_access }
74
+
75
+ describe '#name' do
76
+ subject { super().name }
77
+ it { is_expected.to eq("With API Access")}
78
+ end
79
+
80
+ describe '#id' do
81
+ subject { super().id }
82
+ it { is_expected.to eq("with_api_access")}
83
+ end
84
+
85
+ describe '#scope_method' do
86
+ subject { super().scope_method }
87
+ it { is_expected.to eq(:with_api_access) }
88
+ end
37
89
  end
38
90
 
39
91
  context "when a name and scope block" do
40
92
  let(:scope) { ActiveAdmin::Scope.new("My Scope"){|s| s } }
41
- its(:name) { should == "My Scope"}
42
- its(:id) { should == "my_scope"}
43
- its(:scope_method) { should == nil }
44
- its(:scope_block) { should be_a(Proc)}
93
+
94
+ describe '#name' do
95
+ subject { super().name }
96
+ it { is_expected.to eq("My Scope")}
97
+ end
98
+
99
+ describe '#id' do
100
+ subject { super().id }
101
+ it { is_expected.to eq("my_scope")}
102
+ end
103
+
104
+ describe '#scope_method' do
105
+ subject { super().scope_method }
106
+ it { is_expected.to eq(nil) }
107
+ end
108
+
109
+ describe '#scope_block' do
110
+ subject { super().scope_block }
111
+ it { is_expected.to be_a(Proc)}
112
+ end
113
+ end
114
+
115
+ context "when a name has a space and lowercase" do
116
+ let(:scope) { ActiveAdmin::Scope.new("my scope") }
117
+
118
+ describe '#name' do
119
+ subject { super().name }
120
+ it { is_expected.to eq("my scope")}
121
+ end
122
+
123
+ describe '#id' do
124
+ subject { super().id }
125
+ it { is_expected.to eq("my_scope")}
126
+ end
45
127
  end
46
128
 
47
129
  context "with a proc as the label" do
@@ -52,7 +134,7 @@ describe ActiveAdmin::Scope do
52
134
 
53
135
  it "should properly render the proc" do
54
136
  scope = ActiveAdmin::Scope.new proc{ Date.today.strftime '%A' }, :foobar
55
- scope.name.should eq Date.today.strftime '%A'
137
+ expect(scope.name).to eq Date.today.strftime '%A'
56
138
  end
57
139
  end
58
140
 
@@ -62,12 +144,12 @@ describe ActiveAdmin::Scope do
62
144
 
63
145
  it "should return true by default" do
64
146
  scope = ActiveAdmin::Scope.new(:default)
65
- scope.display_if_block.call.should == true
147
+ expect(scope.display_if_block.call).to eq true
66
148
  end
67
149
 
68
150
  it "should return the :if block if set" do
69
- scope = ActiveAdmin::Scope.new(:with_block, nil, :if => proc{ false })
70
- scope.display_if_block.call.should == false
151
+ scope = ActiveAdmin::Scope.new(:with_block, nil, if: proc{ false })
152
+ expect(scope.display_if_block.call).to eq false
71
153
  end
72
154
 
73
155
  end
@@ -75,18 +157,18 @@ describe ActiveAdmin::Scope do
75
157
  describe "#default" do
76
158
 
77
159
  it "should accept a boolean" do
78
- scope = ActiveAdmin::Scope.new(:method, nil, :default => true)
79
- scope.default_block.should == true
160
+ scope = ActiveAdmin::Scope.new(:method, nil, default: true)
161
+ expect(scope.default_block).to eq true
80
162
  end
81
163
 
82
164
  it "should default to a false #default_block" do
83
165
  scope = ActiveAdmin::Scope.new(:method, nil)
84
- scope.default_block.call.should == false
166
+ expect(scope.default_block.call).to eq false
85
167
  end
86
168
 
87
169
  it "should store the :default proc" do
88
- scope = ActiveAdmin::Scope.new(:with_block, nil, :default => proc{ true })
89
- scope.default_block.call.should == true
170
+ scope = ActiveAdmin::Scope.new(:with_block, nil, default: proc{ true })
171
+ expect(scope.default_block.call).to eq true
90
172
  end
91
173
 
92
174
  end
@@ -94,13 +176,13 @@ describe ActiveAdmin::Scope do
94
176
  describe "show_count" do
95
177
 
96
178
  it "should allow setting of show_count to prevent showing counts" do
97
- scope = ActiveAdmin::Scope.new(:default, nil, :show_count => false)
98
- scope.show_count.should == false
179
+ scope = ActiveAdmin::Scope.new(:default, nil, show_count: false)
180
+ expect(scope.show_count).to eq false
99
181
  end
100
182
 
101
183
  it "should set show_count to true if not passed in" do
102
184
  scope = ActiveAdmin::Scope.new(:default)
103
- scope.show_count.should == true
185
+ expect(scope.show_count).to eq true
104
186
  end
105
187
 
106
188
  end
@@ -1,23 +1,23 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Settings do
4
4
 
5
5
  subject{ Class.new{ include ActiveAdmin::Settings } }
6
6
 
7
- it{ should respond_to :setting }
8
- it{ should respond_to :deprecated_setting }
9
- it{ should respond_to :default_settings }
7
+ it{ is_expected.to respond_to :setting }
8
+ it{ is_expected.to respond_to :deprecated_setting }
9
+ it{ is_expected.to respond_to :default_settings }
10
10
 
11
11
  describe "class API" do
12
12
  it "should create settings" do
13
13
  subject.setting :foo, 'bar'
14
- subject.default_settings[:foo].should eq 'bar'
14
+ expect(subject.default_settings[:foo]).to eq 'bar'
15
15
  end
16
16
 
17
17
  it "should create deprecated settings" do
18
- ActiveAdmin::Deprecation.should_receive(:deprecate).twice
18
+ expect(ActiveAdmin::Deprecation).to receive(:deprecate).twice
19
19
  subject.deprecated_setting :baz, 32
20
- subject.default_settings[:baz].should eq 32
20
+ expect(subject.default_settings[:baz]).to eq 32
21
21
  end
22
22
  end
23
23
 
@@ -30,16 +30,16 @@ describe ActiveAdmin::Settings do
30
30
  let(:instance) { subject.new }
31
31
 
32
32
  it "should have access to a default value" do
33
- instance.foo.should eq 'bar'
33
+ expect(instance.foo).to eq 'bar'
34
34
  instance.foo = 'qqq'
35
- instance.foo.should eq 'qqq'
35
+ expect(instance.foo).to eq 'qqq'
36
36
  end
37
37
 
38
38
  it "should have access to a deprecated value" do
39
- ActiveAdmin::Deprecation.should_receive(:warn).exactly(3).times
40
- instance.baz.should eq 32
39
+ expect(ActiveAdmin::Deprecation).to receive(:warn).exactly(3).times
40
+ expect(instance.baz).to eq 32
41
41
  instance.baz = [45]
42
- instance.baz.should eq [45]
42
+ expect(instance.baz).to eq [45]
43
43
  end
44
44
  end
45
45
 
@@ -55,9 +55,9 @@ describe ActiveAdmin::Settings::Inheritance do
55
55
  end
56
56
  end
57
57
 
58
- it{ should respond_to :settings_inherited_by }
59
- it{ should respond_to :inheritable_setting }
60
- it{ should respond_to :deprecated_inheritable_setting }
58
+ it{ is_expected.to respond_to :settings_inherited_by }
59
+ it{ is_expected.to respond_to :inheritable_setting }
60
+ it{ is_expected.to respond_to :deprecated_inheritable_setting }
61
61
 
62
62
  let(:heir) { Class.new }
63
63
 
@@ -68,20 +68,50 @@ describe ActiveAdmin::Settings::Inheritance do
68
68
  describe "class API" do
69
69
  it "should add setting to an heir" do
70
70
  subject.inheritable_setting :one, 2
71
- heir.default_settings[:one].should eq 2
71
+ expect(heir.default_settings[:one]).to eq 2
72
72
  end
73
73
 
74
74
  it "should add deprecated setting to an heir" do
75
- ActiveAdmin::Deprecation.should_receive(:deprecate).exactly(4).times
75
+ expect(ActiveAdmin::Deprecation).to receive(:deprecate).exactly(4).times
76
76
  subject.deprecated_inheritable_setting :three, 4
77
- heir.default_settings[:three].should eq 4
77
+ expect(heir.default_settings[:three]).to eq 4
78
78
  end
79
79
  end
80
80
 
81
81
  describe "instance API" do
82
- before{ subject.inheritable_setting :left, :right }
83
- it "should work" do
84
- heir.new.left.should eq :right
82
+ describe "the setter `config.left =`" do
83
+ before{ subject.inheritable_setting :left, :right }
84
+ it "should work" do
85
+ config = heir.new
86
+ config.left = :none
87
+ expect(config.left).to eq :none
88
+ end
89
+ end
90
+
91
+ describe "the getter `config.left`" do
92
+ before{ subject.inheritable_setting :left, :right }
93
+ it "should work" do
94
+ expect(heir.new.left).to eq :right
95
+ end
96
+ end
97
+
98
+ describe "the getter with question-mark `config.left?`" do
99
+ {
100
+ "nil" => [nil, false],
101
+ "false" => [false, false],
102
+ "true" => [true, true],
103
+ "string" => ["string", true],
104
+ "empty string" => ["", false],
105
+ "array" => [[1, 2], true],
106
+ "empty array" => [[], false]
107
+ }.each do |context, (value, result)|
108
+ context "with a #{context} value" do
109
+ before{ subject.inheritable_setting :left, value }
110
+ it "should be #{result}" do
111
+ expect(heir.new.left?).to eq result
112
+ end
113
+ end
114
+ end
85
115
  end
86
116
  end
87
117
 
@@ -1,8 +1,8 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  def it_should_have_view(key, value)
4
4
  it "should have #{value} for view key '#{key}'" do
5
- subject.send(key).should == value
5
+ expect(subject.send(key)).to eq value
6
6
  end
7
7
  end
8
8
 
@@ -16,7 +16,6 @@ describe ActiveAdmin::ViewFactory do
16
16
  it_should_have_view :blank_slate, ActiveAdmin::Views::BlankSlate
17
17
  it_should_have_view :action_list_popover, ActiveAdmin::Views::ActionListPopover
18
18
 
19
- it_should_have_view :dashboard_page, ActiveAdmin::Views::Pages::Dashboard
20
19
  it_should_have_view :layout, ActiveAdmin::Views::Pages::Layout
21
20
 
22
21
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe "Breadcrumbs" do
4
4
 
@@ -6,10 +6,8 @@ describe "Breadcrumbs" do
6
6
 
7
7
  describe "generating a trail from paths" do
8
8
 
9
- # Mock our params
10
9
  def params; {}; end
11
- # Mock link to and return a hash
12
- def link_to(name, url); {:name => name, :path => url}; end
10
+ def link_to(name, url); {name: name, path: url}; end
13
11
 
14
12
  actions = ActiveAdmin::BaseController::ACTIVE_ADMIN_ACTIONS
15
13
 
@@ -30,7 +28,19 @@ describe "Breadcrumbs" do
30
28
  let(:path) { "/admin" }
31
29
 
32
30
  it "should not have any items" do
33
- trail.size.should == 0
31
+ expect(trail.size).to eq 0
32
+ end
33
+ end
34
+
35
+ context "when path 'admin/users'" do
36
+ let(:path) { 'admin/users' }
37
+
38
+ it 'should have one item' do
39
+ expect(trail.size).to eq 1
40
+ end
41
+ it 'should have a link to /admin' do
42
+ expect(trail[0][:name]).to eq 'Admin'
43
+ expect(trail[0][:path]).to eq '/admin'
34
44
  end
35
45
  end
36
46
 
@@ -38,11 +48,11 @@ describe "Breadcrumbs" do
38
48
  let(:path) { "/admin/users" }
39
49
 
40
50
  it "should have one item" do
41
- trail.size.should == 1
51
+ expect(trail.size).to eq 1
42
52
  end
43
53
  it "should have a link to /admin" do
44
- trail[0][:name].should == "Admin"
45
- trail[0][:path].should == "/admin"
54
+ expect(trail[0][:name]).to eq "Admin"
55
+ expect(trail[0][:path]).to eq "/admin"
46
56
  end
47
57
  end
48
58
 
@@ -50,15 +60,15 @@ describe "Breadcrumbs" do
50
60
  let(:path) { "/admin/users/1" }
51
61
 
52
62
  it "should have 2 items" do
53
- trail.size.should == 2
63
+ expect(trail.size).to eq 2
54
64
  end
55
65
  it "should have a link to /admin" do
56
- trail[0][:name].should == "Admin"
57
- trail[0][:path].should == "/admin"
66
+ expect(trail[0][:name]).to eq "Admin"
67
+ expect(trail[0][:path]).to eq "/admin"
58
68
  end
59
69
  it "should have a link to /admin/users" do
60
- trail[1][:name].should == "Users"
61
- trail[1][:path].should == "/admin/users"
70
+ expect(trail[1][:name]).to eq "Users"
71
+ expect(trail[1][:path]).to eq "/admin/users"
62
72
  end
63
73
  end
64
74
 
@@ -66,29 +76,29 @@ describe "Breadcrumbs" do
66
76
  let(:path) { "/admin/users/1/posts" }
67
77
 
68
78
  it "should have 3 items" do
69
- trail.size.should == 3
79
+ expect(trail.size).to eq 3
70
80
  end
71
81
  it "should have a link to /admin" do
72
- trail[0][:name].should == "Admin"
73
- trail[0][:path].should == "/admin"
82
+ expect(trail[0][:name]).to eq "Admin"
83
+ expect(trail[0][:path]).to eq "/admin"
74
84
  end
75
85
  it "should have a link to /admin/users" do
76
- trail[1][:name].should == "Users"
77
- trail[1][:path].should == "/admin/users"
86
+ expect(trail[1][:name]).to eq "Users"
87
+ expect(trail[1][:path]).to eq "/admin/users"
78
88
  end
79
89
 
80
90
  context "when User.find(1) doesn't exist" do
81
- before { user_config.stub(find_resource: nil) }
91
+ before { allow(user_config).to receive(:find_resource) }
82
92
  it "should have a link to /admin/users/1" do
83
- trail[2][:name].should == "1"
84
- trail[2][:path].should == "/admin/users/1"
93
+ expect(trail[2][:name]).to eq "1"
94
+ expect(trail[2][:path]).to eq "/admin/users/1"
85
95
  end
86
96
  end
87
97
 
88
98
  context "when User.find(1) does exist" do
89
99
  it "should have a link to /admin/users/1 using display name" do
90
- trail[2][:name].should == "Jane Doe"
91
- trail[2][:path].should == "/admin/users/1"
100
+ expect(trail[2][:name]).to eq "Jane Doe"
101
+ expect(trail[2][:path]).to eq "/admin/users/1"
92
102
  end
93
103
  end
94
104
  end
@@ -97,32 +107,33 @@ describe "Breadcrumbs" do
97
107
  let(:path) { "/admin/users/4e24d6249ccf967313000000/posts" }
98
108
 
99
109
  it "should have 3 items" do
100
- trail.size.should == 3
110
+ expect(trail.size).to eq 3
101
111
  end
102
112
  it "should have a link to /admin" do
103
- trail[0][:name].should == "Admin"
104
- trail[0][:path].should == "/admin"
113
+ expect(trail[0][:name]).to eq "Admin"
114
+ expect(trail[0][:path]).to eq "/admin"
105
115
  end
106
116
  it "should have a link to /admin/users" do
107
- trail[1][:name].should == "Users"
108
- trail[1][:path].should == "/admin/users"
117
+ expect(trail[1][:name]).to eq "Users"
118
+ expect(trail[1][:path]).to eq "/admin/users"
109
119
  end
110
120
 
111
121
  context "when User.find(4e24d6249ccf967313000000) doesn't exist" do
112
- before { user_config.stub(find_resource: nil) }
122
+ before { allow(user_config).to receive(:find_resource) }
113
123
  it "should have a link to /admin/users/4e24d6249ccf967313000000" do
114
- trail[2][:name].should == "4e24d6249ccf967313000000"
115
- trail[2][:path].should == "/admin/users/4e24d6249ccf967313000000"
124
+ expect(trail[2][:name]).to eq "4e24d6249ccf967313000000"
125
+ expect(trail[2][:path]).to eq "/admin/users/4e24d6249ccf967313000000"
116
126
  end
117
127
  end
118
128
 
119
129
  context "when User.find(4e24d6249ccf967313000000) does exist" do
120
130
  before do
121
- user_config.stub find_resource: double(display_name: 'Hello :)')
131
+ display_name = double(display_name: 'Hello :)')
132
+ allow(user_config).to receive(:find_resource).and_return(display_name)
122
133
  end
123
134
  it "should have a link to /admin/users/4e24d6249ccf967313000000 using display name" do
124
- trail[2][:name].should == "Hello :)"
125
- trail[2][:path].should == "/admin/users/4e24d6249ccf967313000000"
135
+ expect(trail[2][:name]).to eq "Hello :)"
136
+ expect(trail[2][:path]).to eq "/admin/users/4e24d6249ccf967313000000"
126
137
  end
127
138
  end
128
139
  end
@@ -131,23 +142,23 @@ describe "Breadcrumbs" do
131
142
  let(:path) { "/admin/users/1/posts/1" }
132
143
 
133
144
  it "should have 4 items" do
134
- trail.size.should == 4
145
+ expect(trail.size).to eq 4
135
146
  end
136
147
  it "should have a link to /admin" do
137
- trail[0][:name].should == "Admin"
138
- trail[0][:path].should == "/admin"
148
+ expect(trail[0][:name]).to eq "Admin"
149
+ expect(trail[0][:path]).to eq "/admin"
139
150
  end
140
151
  it "should have a link to /admin/users" do
141
- trail[1][:name].should == "Users"
142
- trail[1][:path].should == "/admin/users"
152
+ expect(trail[1][:name]).to eq "Users"
153
+ expect(trail[1][:path]).to eq "/admin/users"
143
154
  end
144
155
  it "should have a link to /admin/users/1" do
145
- trail[2][:name].should == "Jane Doe"
146
- trail[2][:path].should == "/admin/users/1"
156
+ expect(trail[2][:name]).to eq "Jane Doe"
157
+ expect(trail[2][:path]).to eq "/admin/users/1"
147
158
  end
148
159
  it "should have a link to /admin/users/1/posts" do
149
- trail[3][:name].should == "Posts"
150
- trail[3][:path].should == "/admin/users/1/posts"
160
+ expect(trail[3][:name]).to eq "Posts"
161
+ expect(trail[3][:path]).to eq "/admin/users/1/posts"
151
162
  end
152
163
  end
153
164
 
@@ -155,27 +166,27 @@ describe "Breadcrumbs" do
155
166
  let(:path) { "/admin/users/1/posts/1/edit" }
156
167
 
157
168
  it "should have 5 items" do
158
- trail.size.should == 5
169
+ expect(trail.size).to eq 5
159
170
  end
160
171
  it "should have a link to /admin" do
161
- trail[0][:name].should == "Admin"
162
- trail[0][:path].should == "/admin"
172
+ expect(trail[0][:name]).to eq "Admin"
173
+ expect(trail[0][:path]).to eq "/admin"
163
174
  end
164
175
  it "should have a link to /admin/users" do
165
- trail[1][:name].should == "Users"
166
- trail[1][:path].should == "/admin/users"
176
+ expect(trail[1][:name]).to eq "Users"
177
+ expect(trail[1][:path]).to eq "/admin/users"
167
178
  end
168
179
  it "should have a link to /admin/users/1" do
169
- trail[2][:name].should == "Jane Doe"
170
- trail[2][:path].should == "/admin/users/1"
180
+ expect(trail[2][:name]).to eq "Jane Doe"
181
+ expect(trail[2][:path]).to eq "/admin/users/1"
171
182
  end
172
183
  it "should have a link to /admin/users/1/posts" do
173
- trail[3][:name].should == "Posts"
174
- trail[3][:path].should == "/admin/users/1/posts"
184
+ expect(trail[3][:name]).to eq "Posts"
185
+ expect(trail[3][:path]).to eq "/admin/users/1/posts"
175
186
  end
176
187
  it "should have a link to /admin/users/1/posts/1" do
177
- trail[4][:name].should == "Hello World"
178
- trail[4][:path].should == "/admin/users/1/posts/1"
188
+ expect(trail[4][:name]).to eq "Hello World"
189
+ expect(trail[4][:path]).to eq "/admin/users/1/posts/1"
179
190
  end
180
191
  end
181
192
 
@@ -187,18 +198,18 @@ describe "Breadcrumbs" do
187
198
  let(:path) { "/admin/posts/1/edit" }
188
199
 
189
200
  it "should have 3 items" do
190
- trail.size.should == 3
201
+ expect(trail.size).to eq 3
191
202
  end
192
203
  it "should have a link to /admin" do
193
- trail[0][:name].should == "Admin"
194
- trail[0][:path].should == "/admin"
204
+ expect(trail[0][:name]).to eq "Admin"
205
+ expect(trail[0][:path]).to eq "/admin"
195
206
  end
196
207
  it "should have a link to /admin/posts" do
197
- trail[1][:name].should == "Posts"
198
- trail[1][:path].should == "/admin/posts"
208
+ expect(trail[1][:name]).to eq "Posts"
209
+ expect(trail[1][:path]).to eq "/admin/posts"
199
210
  end
200
211
  it "should not link to the show view for the post" do
201
- trail[2].should == "Hello World"
212
+ expect(trail[2]).to eq "Hello World"
202
213
  end
203
214
  end
204
215