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,67 +1,67 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  require 'active_admin/abstract_view_factory'
4
4
 
5
5
  describe ActiveAdmin::AbstractViewFactory do
6
6
 
7
7
  let(:view_factory){ ActiveAdmin::AbstractViewFactory.new }
8
- let(:mock_view){ Class.new }
8
+ let(:view){ Class.new }
9
9
 
10
10
  describe "registering a new view key" do
11
11
  before do
12
- view_factory.register :my_new_view_class => mock_view
12
+ view_factory.register my_new_view_class: view
13
13
  end
14
14
 
15
15
  it "should respond to :my_new_view_class" do
16
- view_factory.respond_to?(:my_new_view_class)
16
+ expect(view_factory.respond_to? :my_new_view_class).to be true
17
17
  end
18
18
 
19
19
  it "should respond to :my_new_view_class=" do
20
- view_factory.respond_to?(:my_new_view_class=)
20
+ expect(view_factory.respond_to? :my_new_view_class=).to be true
21
21
  end
22
22
 
23
23
  it "should generate a getter method" do
24
- view_factory.my_new_view_class.should == mock_view
24
+ expect(view_factory.my_new_view_class).to eq view
25
25
  end
26
26
 
27
27
  it "should be settable view a setter method" do
28
28
  view_factory.my_new_view_class = "Some Obj"
29
- view_factory.my_new_view_class.should == "Some Obj"
29
+ expect(view_factory.my_new_view_class).to eq "Some Obj"
30
30
  end
31
31
  end
32
32
 
33
33
  describe "array syntax access" do
34
34
  before do
35
- view_factory.register :my_new_view_class => mock_view
35
+ view_factory.register my_new_view_class: view
36
36
  end
37
37
 
38
38
  it "should be available through array syntax" do
39
- view_factory[:my_new_view_class].should == mock_view
39
+ expect(view_factory[:my_new_view_class]).to eq view
40
40
  end
41
41
 
42
42
  it "should be settable through array syntax" do
43
43
  view_factory[:my_new_view_class] = "My New View Class"
44
- view_factory[:my_new_view_class].should == "My New View Class"
44
+ expect(view_factory[:my_new_view_class]).to eq "My New View Class"
45
45
  end
46
46
  end
47
47
 
48
48
  describe "registering default views" do
49
49
  before do
50
- ActiveAdmin::AbstractViewFactory.register :my_default_view_class => mock_view
50
+ ActiveAdmin::AbstractViewFactory.register my_default_view_class: view
51
51
  end
52
52
  it "should generate a getter method" do
53
- view_factory.my_default_view_class.should == mock_view
53
+ expect(view_factory.my_default_view_class).to eq view
54
54
  end
55
55
  it "should be settable view a setter method and not change default" do
56
56
  view_factory.my_default_view_class = "Some Obj"
57
- view_factory.my_default_view_class.should == "Some Obj"
58
- view_factory.default_for(:my_default_view_class).should == mock_view
57
+ expect(view_factory.my_default_view_class).to eq "Some Obj"
58
+ expect(view_factory.default_for(:my_default_view_class)).to eq view
59
59
  end
60
60
  end
61
61
 
62
62
  describe "subclassing the ViewFactory" do
63
63
  let(:subclass) do
64
- ActiveAdmin::AbstractViewFactory.register :my_subclassed_view => "From Parent"
64
+ ActiveAdmin::AbstractViewFactory.register my_subclassed_view: "From Parent"
65
65
  Class.new(ActiveAdmin::AbstractViewFactory) do
66
66
  def my_subclassed_view
67
67
  "From Subclass"
@@ -71,7 +71,7 @@ describe ActiveAdmin::AbstractViewFactory do
71
71
 
72
72
  it "should use the subclass implementation" do
73
73
  factory = subclass.new
74
- factory.my_subclassed_view.should == "From Subclass"
74
+ expect(factory.my_subclassed_view).to eq "From Subclass"
75
75
  end
76
76
  end
77
77
 
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe 'defining new actions from registration blocks' do
4
4
 
@@ -24,13 +24,13 @@ describe 'defining new actions from registration blocks' do
24
24
  end
25
25
 
26
26
  it "should create a new public instance method" do
27
- controller.public_instance_methods.collect(&:to_s).should include("comment")
27
+ expect(controller.public_instance_methods.collect(&:to_s)).to include("comment")
28
28
  end
29
29
  it "should add itself to the member actions config" do
30
- controller.active_admin_config.member_actions.size.should == 1
30
+ expect(controller.active_admin_config.member_actions.size).to eq 1
31
31
  end
32
32
  it "should create a new named route" do
33
- Rails.application.routes.url_helpers.methods.collect(&:to_s).should include("comment_admin_post_path")
33
+ expect(Rails.application.routes.url_helpers.methods.collect(&:to_s)).to include("comment_admin_post_path")
34
34
  end
35
35
  end
36
36
 
@@ -41,20 +41,20 @@ describe 'defining new actions from registration blocks' do
41
41
  end
42
42
  end
43
43
  it "should still generate a new empty action" do
44
- controller.public_instance_methods.collect(&:to_s).should include("comment")
44
+ expect(controller.public_instance_methods.collect(&:to_s)).to include("comment")
45
45
  end
46
46
  end
47
47
 
48
48
  context "with :title" do
49
49
  let(:action!) do
50
50
  ActiveAdmin.register Post do
51
- member_action :comment, :title => "My Awesome Comment"
51
+ member_action :comment, title: "My Awesome Comment"
52
52
  end
53
53
  end
54
54
 
55
55
  subject { find_before_filter controller, :comment }
56
56
 
57
- it { should set_page_title_to "My Awesome Comment" }
57
+ it { is_expected.to set_page_title_to "My Awesome Comment", for: controller }
58
58
  end
59
59
  end
60
60
 
@@ -76,13 +76,13 @@ describe 'defining new actions from registration blocks' do
76
76
  end
77
77
  end
78
78
  it "should create a new public instance method" do
79
- controller.public_instance_methods.collect(&:to_s).should include("comments")
79
+ expect(controller.public_instance_methods.collect(&:to_s)).to include("comments")
80
80
  end
81
81
  it "should add itself to the member actions config" do
82
- controller.active_admin_config.collection_actions.size.should == 1
82
+ expect(controller.active_admin_config.collection_actions.size).to eq 1
83
83
  end
84
84
  it "should create a new named route" do
85
- Rails.application.routes.url_helpers.methods.collect(&:to_s).should include("comments_admin_posts_path")
85
+ expect(Rails.application.routes.url_helpers.methods.collect(&:to_s)).to include("comments_admin_posts_path")
86
86
  end
87
87
  end
88
88
  context "without a block" do
@@ -92,34 +92,40 @@ describe 'defining new actions from registration blocks' do
92
92
  end
93
93
  end
94
94
  it "should still generate a new empty action" do
95
- controller.public_instance_methods.collect(&:to_s).should include("comments")
95
+ expect(controller.public_instance_methods.collect(&:to_s)).to include("comments")
96
96
  end
97
97
  end
98
98
  context "with :title" do
99
99
  let(:action!) do
100
100
  ActiveAdmin.register Post do
101
- collection_action :comments, :title => "My Awesome Comments"
101
+ collection_action :comments, title: "My Awesome Comments"
102
102
  end
103
103
  end
104
104
 
105
105
  subject { find_before_filter controller, :comments }
106
106
 
107
- it { should set_page_title_to "My Awesome Comments" }
107
+ it { is_expected.to set_page_title_to "My Awesome Comments", for: controller }
108
108
  end
109
109
  end
110
110
 
111
111
  def find_before_filter(controller, action)
112
- controller._process_action_callbacks.detect { |f| f.kind == :before && f.options[:only] == [action] }
112
+ finder = if ActiveAdmin::Dependency.rails? '>= 4.1.0'
113
+ ->c { c.kind == :before && c.instance_variable_get(:@if) == ["action_name == '#{action}'"] }
114
+ else
115
+ ->c { c.kind == :before && c.options[:only] == [action] }
116
+ end
117
+
118
+ controller._process_action_callbacks.detect &finder
113
119
  end
114
120
 
115
- RSpec::Matchers.define :set_page_title_to do |expected|
121
+ RSpec::Matchers.define :set_page_title_to do |expected, options|
116
122
  match do |filter|
117
123
  filter.raw_filter.call
118
- @actual = filter.klass.instance_variable_get(:@page_title)
119
- @actual == expected
124
+ @actual = options[:for].instance_variable_get(:@page_title)
125
+ expect(@actual).to eq expected
120
126
  end
121
127
 
122
- failure_message_for_should do |filter|
128
+ failure_message do |filter|
123
129
  message = "expected before_filter to set the @page_title to '#{expected}', but was '#{@actual}'"
124
130
  end
125
131
  end
@@ -1,9 +1,9 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin do
4
4
  %w(register register_page unload! load! routes).each do |method|
5
5
  it "delegates ##{method} to application" do
6
- ActiveAdmin.application.should_receive(method)
6
+ expect(ActiveAdmin.application).to receive(method)
7
7
 
8
8
  ActiveAdmin.send(method)
9
9
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
  require 'fileutils'
3
3
 
4
4
  describe ActiveAdmin::Application do
@@ -11,90 +11,90 @@ describe ActiveAdmin::Application do
11
11
  end
12
12
 
13
13
  it "should have a default load path of ['app/admin']" do
14
- application.load_paths.should == [File.expand_path('app/admin', Rails.root)]
14
+ expect(application.load_paths).to eq [File.expand_path('app/admin', Rails.root)]
15
15
  end
16
16
 
17
- it "should remove app/admin from the autoload path to remove the possibility of conflicts" do
18
- ActiveSupport::Dependencies.autoload_paths.should_not include(File.join(Rails.root, "app/admin"))
17
+ it "should remove app/admin from the autoload paths (Active Admin deals with loading)" do
18
+ expect(ActiveSupport::Dependencies.autoload_paths).to_not include(File.join(Rails.root, "app/admin"))
19
19
  end
20
20
 
21
- it "should remove app/admin from the eager load paths (Active Admin deals with loading)" do
22
- Rails.application.config.eager_load_paths.should_not include(File.join(Rails.root, "app/admin"))
21
+ it "should add app/admin to the Engine's watchable directories (loaded after the app itself)" do
22
+ expect(ActiveAdmin::Engine.config.watchable_dirs).to have_key File.join(Rails.root, "app/admin")
23
23
  end
24
24
 
25
25
  it "should store the site's title" do
26
- application.site_title.should == ""
26
+ expect(application.site_title).to eq ""
27
27
  end
28
28
 
29
29
  it "should set the site title" do
30
30
  application.site_title = "New Title"
31
- application.site_title.should == "New Title"
31
+ expect(application.site_title).to eq "New Title"
32
32
  end
33
33
 
34
34
  it "should store the site's title link" do
35
- application.site_title_link.should == ""
35
+ expect(application.site_title_link).to eq ""
36
36
  end
37
37
 
38
38
  it "should set the site's title link" do
39
39
  application.site_title_link = "http://www.mygreatsite.com"
40
- application.site_title_link.should == "http://www.mygreatsite.com"
40
+ expect(application.site_title_link).to eq "http://www.mygreatsite.com"
41
41
  end
42
42
 
43
43
  it "should store the site's title image" do
44
- application.site_title_image.should == ""
44
+ expect(application.site_title_image).to eq ""
45
45
  end
46
46
 
47
47
  it "should set the site's title image" do
48
48
  application.site_title_image = "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
49
- application.site_title_image.should == "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
49
+ expect(application.site_title_image).to eq "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
50
50
  end
51
-
51
+
52
52
  it "should store the site's favicon" do
53
- application.favicon.should == false
53
+ expect(application.favicon).to eq false
54
54
  end
55
55
 
56
56
  it "should set the site's favicon" do
57
57
  application.favicon = "/a/favicon.ico"
58
- application.favicon.should == "/a/favicon.ico"
58
+ expect(application.favicon).to eq "/a/favicon.ico"
59
59
  end
60
60
 
61
61
  it "should have a view factory" do
62
- application.view_factory.should be_an_instance_of(ActiveAdmin::ViewFactory)
62
+ expect(application.view_factory).to be_an_instance_of(ActiveAdmin::ViewFactory)
63
63
  end
64
64
 
65
65
  it "should allow comments by default" do
66
- application.allow_comments.should == true
66
+ expect(application.comments).to eq true
67
67
  end
68
68
 
69
69
  describe "authentication settings" do
70
70
 
71
71
  it "should have no default current_user_method" do
72
- application.current_user_method.should == false
72
+ expect(application.current_user_method).to eq false
73
73
  end
74
74
 
75
75
  it "should have no default authentication method" do
76
- application.authentication_method.should == false
76
+ expect(application.authentication_method).to eq false
77
77
  end
78
78
 
79
79
  it "should have a logout link path (Devise's default)" do
80
- application.logout_link_path.should == :destroy_admin_user_session_path
80
+ expect(application.logout_link_path).to eq :destroy_admin_user_session_path
81
81
  end
82
82
 
83
83
  it "should have a logout link method (Devise's default)" do
84
- application.logout_link_method.should == :get
84
+ expect(application.logout_link_method).to eq :get
85
85
  end
86
86
  end
87
87
 
88
88
  describe "files in load path" do
89
89
  it "should load files in the first level directory" do
90
- application.files.should include(File.expand_path("app/admin/dashboard.rb", Rails.root))
90
+ expect(application.files).to include(File.expand_path("app/admin/dashboard.rb", Rails.root))
91
91
  end
92
92
 
93
93
  it "should load files from subdirectories" do
94
94
  FileUtils.mkdir_p(File.expand_path("app/admin/public", Rails.root))
95
95
  test_file = File.expand_path("app/admin/public/posts.rb", Rails.root)
96
96
  FileUtils.touch(test_file)
97
- application.files.should include(test_file)
97
+ expect(application.files).to include(test_file)
98
98
  end
99
99
  end
100
100
 
@@ -102,39 +102,38 @@ describe ActiveAdmin::Application do
102
102
 
103
103
  it "should yield a new namespace" do
104
104
  application.namespace :new_namespace do |ns|
105
- ns.name.should == :new_namespace
105
+ expect(ns.name).to eq :new_namespace
106
106
  end
107
107
  end
108
108
 
109
109
  it "should return an instantiated namespace" do
110
110
  admin = application.namespace :admin
111
- admin.should == application.namespaces[:admin]
111
+ expect(admin).to eq application.namespaces[:admin]
112
112
  end
113
113
 
114
114
  it "should yield an existing namespace" do
115
115
  expect {
116
116
  application.namespace :admin do |ns|
117
- ns.should == application.namespaces[:admin]
117
+ expect(ns).to eq application.namespaces[:admin]
118
118
  raise "found"
119
119
  end
120
120
  }.to raise_error("found")
121
121
  end
122
122
 
123
123
  it "should not pollute the global app" do
124
- application.namespaces.keys.should be_empty
124
+ expect(application.namespaces).to be_empty
125
125
  application.namespace(:brand_new_ns)
126
- application.namespaces.keys.should eq [:brand_new_ns]
127
- ActiveAdmin.application.namespaces.keys.should eq [:admin]
126
+ expect(application.namespaces.names).to eq [:brand_new_ns]
127
+ expect(ActiveAdmin.application.namespaces.names).to eq [:admin]
128
128
  end
129
129
  end
130
130
 
131
131
  describe "#register_page" do
132
132
  it "finds or create the namespace and register the page to it" do
133
- namespace = mock
134
- application.should_receive(:namespace).with("public").and_return namespace
135
- namespace.should_receive(:register_page).with("My Page", {:namespace => "public"})
136
-
137
- application.register_page("My Page", :namespace => "public")
133
+ namespace = double
134
+ expect(application).to receive(:namespace).with("public").and_return namespace
135
+ expect(namespace).to receive(:register_page).with("My Page", {namespace: "public"})
136
+ application.register_page("My Page", namespace: "public")
138
137
  end
139
138
  end
140
139
 
@@ -1,56 +1,52 @@
1
- require 'spec_helper'
2
-
3
- module MockRegistration
4
- extend ActiveAdmin::AssetRegistration
5
- end
1
+ require 'rails_helper'
6
2
 
7
3
  describe ActiveAdmin::AssetRegistration do
4
+ include ActiveAdmin::AssetRegistration
8
5
 
9
6
  before do
10
- MockRegistration.clear_stylesheets!
11
- MockRegistration.clear_javascripts!
7
+ clear_stylesheets!
8
+ clear_javascripts!
12
9
  end
13
10
 
14
11
  it "should register a stylesheet file" do
15
- MockRegistration.register_stylesheet "active_admin.css"
16
- MockRegistration.stylesheets.length.should == 1
17
- MockRegistration.stylesheets.keys.first.should == "active_admin.css"
12
+ register_stylesheet "active_admin.css"
13
+ expect(stylesheets.length).to eq 1
14
+ expect(stylesheets.keys.first).to eq "active_admin.css"
18
15
  end
19
16
 
20
17
  it "should clear all existing stylesheets" do
21
- MockRegistration.register_stylesheet "active_admin.css"
22
- MockRegistration.stylesheets.length.should == 1
23
- MockRegistration.clear_stylesheets!
24
- MockRegistration.stylesheets.should be_empty
18
+ register_stylesheet "active_admin.css"
19
+ expect(stylesheets.length).to eq 1
20
+ clear_stylesheets!
21
+ expect(stylesheets).to be_empty
25
22
  end
26
23
 
27
24
  it "should allow media option when registering stylesheet" do
28
- MockRegistration.register_stylesheet "active_admin.css", :media => :print
29
- MockRegistration.stylesheets.values.first[:media].should == :print
25
+ register_stylesheet "active_admin.css", media: :print
26
+ expect(stylesheets.values.first[:media]).to eq :print
30
27
  end
31
28
 
32
29
  it "shouldn't register a stylesheet twice" do
33
- MockRegistration.register_stylesheet "active_admin.css"
34
- MockRegistration.register_stylesheet "active_admin.css"
35
- MockRegistration.stylesheets.length.should == 1
30
+ register_stylesheet "active_admin.css"
31
+ register_stylesheet "active_admin.css"
32
+ expect(stylesheets.length).to eq 1
36
33
  end
37
34
 
38
-
39
35
  it "should register a javascript file" do
40
- MockRegistration.register_javascript "active_admin.js"
41
- MockRegistration.javascripts.should == ["active_admin.js"].to_set
36
+ register_javascript "active_admin.js"
37
+ expect(javascripts).to eq ["active_admin.js"].to_set
42
38
  end
43
39
 
44
40
  it "should clear all existing javascripts" do
45
- MockRegistration.register_javascript "active_admin.js"
46
- MockRegistration.javascripts.should == ["active_admin.js"].to_set
47
- MockRegistration.clear_javascripts!
48
- MockRegistration.javascripts.should be_empty
41
+ register_javascript "active_admin.js"
42
+ expect(javascripts).to eq ["active_admin.js"].to_set
43
+ clear_javascripts!
44
+ expect(javascripts).to be_empty
49
45
  end
50
46
 
51
47
  it "shouldn't register a javascript twice" do
52
- MockRegistration.register_javascript "active_admin.js"
53
- MockRegistration.register_javascript "active_admin.js"
54
- MockRegistration.javascripts.length.should == 1
48
+ register_javascript "active_admin.js"
49
+ register_javascript "active_admin.js"
50
+ expect(javascripts.length).to eq 1
55
51
  end
56
52
  end