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
@@ -0,0 +1,23 @@
1
+ require 'rails_helper'
2
+
3
+ describe "AA installation" do
4
+ context "should create" do
5
+
6
+ it "active_admin.css.scss" do
7
+ expect(File.exists?(Rails.root + "app/assets/stylesheets/active_admin.css.scss")).to be_truthy
8
+ end
9
+
10
+ it "active_admin.js.coffee" do
11
+ expect(File.exists?(Rails.root + "app/assets/javascripts/active_admin.js.coffee")).to be_truthy
12
+ end
13
+
14
+ it "the dashboard" do
15
+ expect(File.exists?(Rails.root + "app/admin/dashboard.rb")).to be_truthy
16
+ end
17
+
18
+ it "the initializer" do
19
+ expect(File.exists?(Rails.root + "config/initializers/active_admin.rb")).to be_truthy
20
+ end
21
+
22
+ end
23
+ end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Helpers::Collection do
4
4
 
@@ -6,9 +6,9 @@ describe ActiveAdmin::Helpers::Collection do
6
6
 
7
7
  before(:all) do
8
8
  Post.delete_all
9
- Post.create!(:title => "A post")
10
- Post.create!(:title => "A post")
11
- Post.create!(:title => "An other post")
9
+ Post.create!(title: "A post")
10
+ Post.create!(title: "A post")
11
+ Post.create!(title: "An other post")
12
12
  end
13
13
 
14
14
  after(:all) do
@@ -17,49 +17,49 @@ describe ActiveAdmin::Helpers::Collection do
17
17
 
18
18
  describe "#collection_size" do
19
19
  it "should return the collection size for an ActiveRecord class" do
20
- collection_size(Post).should == 3
20
+ expect(collection_size(Post.where(nil))).to eq 3
21
21
  end
22
22
 
23
23
  it "should return the collection size for an ActiveRecord::Relation" do
24
- collection_size(Post.where(:title => "A post")).should == 2
24
+ expect(collection_size(Post.where(title: "A post"))).to eq 2
25
25
  end
26
26
 
27
27
  it "should return the collection size for a collection with group by" do
28
- collection_size(Post.group(:title)).should == 2
28
+ expect(collection_size(Post.group(:title))).to eq 2
29
29
  end
30
30
 
31
31
  it "should return the collection size for a collection with group by, select and custom order" do
32
- collection_size(Post.select("title, count(*) as nb_posts").group(:title).order("nb_posts")).should == 2
32
+ expect(collection_size(Post.select("title, count(*) as nb_posts").group(:title).order("nb_posts"))).to eq 2
33
33
  end
34
34
 
35
35
  it "should take the defined collection by default" do
36
- def collection; Post; end
36
+ def collection; Post.where(nil); end
37
37
 
38
- collection_size.should == 3
38
+ expect(collection_size).to eq 3
39
39
 
40
- def collection; Post.where(:title => "An other post"); end
40
+ def collection; Post.where(title: "An other post"); end
41
41
 
42
- collection_size.should == 1
42
+ expect(collection_size).to eq 1
43
43
  end
44
44
  end
45
45
 
46
46
  describe "#collection_is_empty?" do
47
47
  it "should return true when the collection is empty" do
48
- collection_is_empty?(Post.where(:title => "Non existing post")).should be_true
48
+ expect(collection_is_empty?(Post.where(title: "Non existing post"))).to be_truthy
49
49
  end
50
50
 
51
51
  it "should return false when the collection is not empty" do
52
- collection_is_empty?(Post.where(:title => "A post")).should be_false
52
+ expect(collection_is_empty?(Post.where(title: "A post"))).to be_falsey
53
53
  end
54
54
 
55
55
  it "should take the defined collection by default" do
56
- def collection; Post; end
56
+ def collection; Post.where(nil); end
57
57
 
58
- collection_is_empty?.should be_false
58
+ expect(collection_is_empty?).to be_falsey
59
59
 
60
- def collection; Post.where(:title => "Non existing post"); end
60
+ def collection; Post.where(title: "Non existing post"); end
61
61
 
62
- collection_is_empty?.should be_true
62
+ expect(collection_is_empty?).to be_truthy
63
63
  end
64
64
  end
65
65
  end
@@ -1,18 +1,18 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::ScopeChain do
4
4
 
5
5
  include ActiveAdmin::ScopeChain
6
6
 
7
7
  describe "#scope_chain" do
8
- let(:relation) { mock }
8
+ let(:relation) { double }
9
9
 
10
10
  context "when Scope has a scope method" do
11
11
  let(:scope) { ActiveAdmin::Scope.new :published }
12
12
 
13
13
  it "should call the method on the relation and return it" do
14
- relation.should_receive(:published).and_return(:scoped_relation)
15
- scope_chain(scope, relation).should == :scoped_relation
14
+ expect(relation).to receive(:published).and_return(:scoped_relation)
15
+ expect(scope_chain(scope, relation)).to eq :scoped_relation
16
16
  end
17
17
  end
18
18
 
@@ -20,7 +20,7 @@ describe ActiveAdmin::ScopeChain do
20
20
  let(:scope) { ActiveAdmin::Scope.new :all }
21
21
 
22
22
  it "should return the relation" do
23
- scope_chain(scope, relation).should == relation
23
+ expect(scope_chain(scope, relation)).to eq relation
24
24
  end
25
25
  end
26
26
 
@@ -28,7 +28,7 @@ describe ActiveAdmin::ScopeChain do
28
28
  let(:scope) { ActiveAdmin::Scope.new("My Scope"){|s| :scoped_relation } }
29
29
 
30
30
  it "should instance_exec the block and return it" do
31
- scope_chain(scope, relation).should == :scoped_relation
31
+ expect(scope_chain(scope, relation)).to eq :scoped_relation
32
32
  end
33
33
  end
34
34
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
  require 'active_admin/helpers/settings'
3
3
 
4
4
  describe ActiveAdmin::Settings do
@@ -12,19 +12,19 @@ describe ActiveAdmin::Settings do
12
12
 
13
13
  it "should add a new setting with a default" do
14
14
  klass.setting :my_setting, "Hello World"
15
- klass.default_settings[:my_setting].should == "Hello World"
15
+ expect(klass.default_settings[:my_setting]).to eq "Hello World"
16
16
  end
17
17
 
18
18
  it "should initialize the defaults" do
19
19
  klass.setting :my_setting, "Hello World"
20
- klass.new.my_setting.should == "Hello World"
20
+ expect(klass.new.my_setting).to eq "Hello World"
21
21
  end
22
22
 
23
23
  it "should support settings of nil" do
24
24
  klass.setting :my_setting, :some_val
25
25
  inst = klass.new
26
26
  inst.my_setting = nil
27
- inst.my_setting.should == nil
27
+ expect(inst.my_setting).to eq nil
28
28
  end
29
29
 
30
30
  end
@@ -0,0 +1,12 @@
1
+ require 'rails_helper'
2
+
3
+ Dir.glob('config/locales/*.yml') do |locale_file|
4
+ describe locale_file do
5
+ it { is_expected.to be_parseable }
6
+ it { is_expected.to have_one_top_level_namespace }
7
+ it { is_expected.to be_named_like_top_level_namespace }
8
+ it { is_expected.to_not have_legacy_interpolations }
9
+ it { is_expected.to have_a_valid_locale }
10
+ it { is_expected.to be_a_subset_of 'config/locales/en.yml' }
11
+ end
12
+ end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::MenuCollection do
4
4
 
@@ -7,17 +7,17 @@ describe ActiveAdmin::MenuCollection do
7
7
  describe "#add" do
8
8
 
9
9
  it "should initialize a new menu when first item" do
10
- menus.add :default, :label => "Hello World"
10
+ menus.add :default, label: "Hello World"
11
11
 
12
- menus.fetch(:default).items.size.should == 1
13
- menus.fetch(:default)["Hello World"].should be_an_instance_of(ActiveAdmin::MenuItem)
12
+ expect(menus.fetch(:default).items.size).to eq 1
13
+ expect(menus.fetch(:default)["Hello World"]).to be_an_instance_of(ActiveAdmin::MenuItem)
14
14
  end
15
15
 
16
16
  it "should add items to an existing menu" do
17
- menus.add :default, :label => "Hello World"
18
- menus.add :default, :label => "Hello World Again"
17
+ menus.add :default, label: "Hello World"
18
+ menus.add :default, label: "Hello World Again"
19
19
 
20
- menus.fetch(:default).items.size.should == 2
20
+ expect(menus.fetch(:default).items.size).to eq 2
21
21
  end
22
22
 
23
23
  end
@@ -25,13 +25,13 @@ describe ActiveAdmin::MenuCollection do
25
25
  describe "#clear!" do
26
26
 
27
27
  it "should remove all menus" do
28
- menus.add :default, :label => "Hello World"
28
+ menus.add :default, label: "Hello World"
29
29
 
30
30
  menus.clear!
31
31
 
32
32
  expect {
33
33
  menus.fetch(:non_default_menu)
34
- }.to raise_error(ActiveAdmin::MenuCollection::NoMenuError)
34
+ }.to raise_error(ActiveAdmin::NoMenuError)
35
35
 
36
36
  end
37
37
 
@@ -41,20 +41,20 @@ describe ActiveAdmin::MenuCollection do
41
41
 
42
42
  it "runs a callback when fetching a menu" do
43
43
  menus.on_build do |m|
44
- m.add :default, :label => "Hello World"
44
+ m.add :default, label: "Hello World"
45
45
  end
46
46
 
47
- menus.fetch(:default)["Hello World"].should_not be_nil
47
+ expect(menus.fetch(:default)["Hello World"]).to_not be_nil
48
48
  end
49
49
 
50
50
  it "re-runs the callbacks when the menu is cleared" do
51
51
  menus.on_build do |m|
52
- m.add :default, :label => "Hello World"
52
+ m.add :default, label: "Hello World"
53
53
  end
54
54
 
55
- menus.fetch(:default)["Hello World"].should_not be_nil
55
+ expect(menus.fetch(:default)["Hello World"]).to_not be_nil
56
56
  menus.clear!
57
- menus.fetch(:default)["Hello World"].should_not be_nil
57
+ expect(menus.fetch(:default)["Hello World"]).to_not be_nil
58
58
  end
59
59
 
60
60
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper_without_rails'
1
+ require 'spec_helper'
2
2
  require 'active_admin/menu'
3
3
  require 'active_admin/menu_item'
4
4
 
@@ -6,116 +6,116 @@ module ActiveAdmin
6
6
  describe MenuItem do
7
7
 
8
8
  it "should have a label" do
9
- item = MenuItem.new(:label => "Dashboard")
10
- item.label.should == "Dashboard"
9
+ item = MenuItem.new(label: "Dashboard")
10
+ expect(item.label).to eq "Dashboard"
11
11
  end
12
12
 
13
13
  it "should have a url" do
14
- item = MenuItem.new(:url => "/admin")
15
- item.url.should == "/admin"
14
+ item = MenuItem.new(url: "/admin")
15
+ expect(item.url).to eq "/admin"
16
16
  end
17
17
 
18
18
  it "should have a priority of 10 by default" do
19
19
  item = MenuItem.new
20
- item.priority.should == 10
20
+ expect(item.priority).to eq 10
21
21
  end
22
22
 
23
23
  context "conditional display" do
24
24
  it "should store a Proc internally and evaluate it when requested" do
25
25
  item = MenuItem.new
26
- item.instance_variable_get(:@should_display).should be_a Proc
27
- item.display?.should_not be_a Proc
26
+ expect(item.instance_variable_get(:@should_display)).to be_a Proc
27
+ expect(item.display?).to_not be_a Proc
28
28
  end
29
29
 
30
30
  it "should show the item by default" do
31
- MenuItem.new.display?.should == true
31
+ expect(MenuItem.new.display?).to eq true
32
32
  end
33
33
 
34
34
  it "should hide the item" do
35
- MenuItem.new(:if => proc{false}).display?.should == false
35
+ expect(MenuItem.new(if: proc{false}).display?).to eq false
36
36
  end
37
37
  end
38
38
 
39
39
  it "should default to an empty hash for html_options" do
40
40
  item = MenuItem.new
41
- item.html_options.should be_empty
41
+ expect(item.html_options).to be_empty
42
42
  end
43
43
 
44
44
  it "should accept an options hash for link_to" do
45
- item = MenuItem.new :html_options => { :target => :blank }
46
- item.html_options.should include(:target => :blank)
45
+ item = MenuItem.new html_options: { target: :blank }
46
+ expect(item.html_options).to include(target: :blank)
47
47
  end
48
48
 
49
49
  context "with no items" do
50
50
  it "should be empty" do
51
51
  item = MenuItem.new
52
- item.items.should be_empty
52
+ expect(item.items).to be_empty
53
53
  end
54
54
 
55
55
  it "should accept new children" do
56
- item = MenuItem.new :label => "Dashboard"
57
- item.add :label => "My Child Dashboard"
58
- item.items.first.should be_a MenuItem
59
- item.items.first.label.should == "My Child Dashboard"
56
+ item = MenuItem.new label: "Dashboard"
57
+ item.add label: "My Child Dashboard"
58
+ expect(item.items.first).to be_a MenuItem
59
+ expect(item.items.first.label).to eq "My Child Dashboard"
60
60
  end
61
61
  end
62
62
 
63
63
  context "with many children" do
64
64
  let(:item) do
65
- i = MenuItem.new(:label => "Dashboard")
66
- i.add :label => "Blog"
67
- i.add :label => "Cars"
68
- i.add :label => "Users", :priority => 1
69
- i.add :label => "Settings", :priority => 2
70
- i.add :label => "Analytics", :priority => 44
65
+ i = MenuItem.new(label: "Dashboard")
66
+ i.add label: "Blog"
67
+ i.add label: "Cars"
68
+ i.add label: "Users", priority: 1
69
+ i.add label: "Settings", priority: 2
70
+ i.add label: "Analytics", priority: 44
71
71
  i
72
72
  end
73
73
 
74
74
  it "should contain 5 submenu items" do
75
- item.items.count.should == 5
75
+ expect(item.items.count).to eq 5
76
76
  end
77
77
 
78
78
  it "should give access to the menu item as an array" do
79
- item['Blog'].label.should == 'Blog'
79
+ expect(item['Blog'].label).to eq 'Blog'
80
80
  end
81
81
 
82
82
  it "should sort items based on priority and name" do
83
- item.items[0].label.should == 'Users'
84
- item.items[1].label.should == 'Settings'
85
- item.items[2].label.should == 'Blog'
86
- item.items[3].label.should == 'Cars'
87
- item.items[4].label.should == 'Analytics'
83
+ expect(item.items[0].label).to eq 'Users'
84
+ expect(item.items[1].label).to eq 'Settings'
85
+ expect(item.items[2].label).to eq 'Blog'
86
+ expect(item.items[3].label).to eq 'Cars'
87
+ expect(item.items[4].label).to eq 'Analytics'
88
88
  end
89
89
 
90
90
  it "children should hold a reference to their parent" do
91
- item["Blog"].parent.should == item
91
+ expect(item["Blog"].parent).to eq item
92
92
  end
93
93
  end
94
94
 
95
95
  describe "accessing ancestory" do
96
- let(:item){ MenuItem.new :label => "Blog" }
96
+ let(:item){ MenuItem.new label: "Blog" }
97
97
 
98
98
  context "with no parent" do
99
99
  it "should return an empty array" do
100
- item.ancestors.should == []
100
+ expect(item.ancestors).to eq []
101
101
  end
102
102
  end
103
103
 
104
104
  context "with one parent" do
105
105
  let(:sub_item) do
106
- item.add :label => "Create New"
106
+ item.add label: "Create New"
107
107
  item["Create New"]
108
108
  end
109
109
  it "should return an array with the parent" do
110
- sub_item.ancestors.should == [item]
110
+ expect(sub_item.ancestors).to eq [item]
111
111
  end
112
112
  end
113
113
 
114
114
  context "with many parents" do
115
115
  before(:each) do
116
- c1 = {:label => "C1"}
117
- c2 = {:label => "C2"}
118
- c3 = {:label => "C3"}
116
+ c1 = {label: "C1"}
117
+ c2 = {label: "C2"}
118
+ c3 = {label: "C3"}
119
119
 
120
120
  item.add(c1).add(c2).add(c3)
121
121
 
@@ -123,7 +123,7 @@ module ActiveAdmin
123
123
  end
124
124
  let(:sub_item){ item["C1"]["C2"]["C3"] }
125
125
  it "should return an array with the parents in reverse order" do
126
- sub_item.ancestors.should == [item["C1"]["C2"], item["C1"], item]
126
+ expect(sub_item.ancestors).to eq [item["C1"]["C2"], item["C1"], item]
127
127
  end
128
128
  end
129
129
  end # accessing ancestory
@@ -131,11 +131,11 @@ module ActiveAdmin
131
131
 
132
132
  describe "#id" do
133
133
  it "should be normalized" do
134
- MenuItem.new(:id => "Foo Bar").id.should == "foo_bar"
134
+ expect(MenuItem.new(id: "Foo Bar").id).to eq "foo_bar"
135
135
  end
136
136
 
137
137
  it "should not accept Procs" do
138
- expect{ MenuItem.new(:id => proc{"Dynamic"}).id }.to raise_error TypeError
138
+ expect{ MenuItem.new(id: proc{"Dynamic"}).id }.to raise_error TypeError
139
139
  end
140
140
  end
141
141
 
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
  require 'active_admin/menu'
3
3
  require 'active_admin/menu_item'
4
4
 
@@ -9,63 +9,63 @@ describe ActiveAdmin::Menu do
9
9
  context "with no items" do
10
10
  it "should have an empty item collection" do
11
11
  menu = Menu.new
12
- menu.items.should be_empty
12
+ expect(menu.items).to be_empty
13
13
  end
14
14
 
15
15
  it "should accept new items" do
16
16
  menu = Menu.new
17
- menu.add :label => "Dashboard"
18
- menu.items.first.label.should == "Dashboard"
17
+ menu.add label: "Dashboard"
18
+ expect(menu.items.first.label).to eq "Dashboard"
19
19
  end
20
20
  end
21
21
 
22
22
  context "with many items" do
23
23
  let(:menu) do
24
24
  Menu.new do |m|
25
- m.add :label => "Dashboard"
26
- m.add :label => "Blog"
25
+ m.add label: "Dashboard"
26
+ m.add label: "Blog"
27
27
  end
28
28
  end
29
29
 
30
30
  it "should give access to the menu item as an array" do
31
- menu['Dashboard'].label.should == 'Dashboard'
31
+ expect(menu['Dashboard'].label).to eq 'Dashboard'
32
32
  end
33
33
  end
34
34
 
35
35
  describe "adding items with children" do
36
36
  it "should add an empty item if the parent does not exist" do
37
37
  menu = Menu.new
38
- menu.add :parent => "Admin", :label => "Users"
38
+ menu.add parent: "Admin", label: "Users"
39
39
 
40
- menu["Admin"]["Users"].should be_an_instance_of(ActiveAdmin::MenuItem)
40
+ expect(menu["Admin"]["Users"]).to be_an_instance_of(ActiveAdmin::MenuItem)
41
41
  end
42
42
 
43
43
  it "should add a child to a parent if it exists" do
44
44
  menu = Menu.new
45
- menu.add :parent => "Admin", :label => "Users"
46
- menu.add :parent => "Admin", :label => "Projects"
45
+ menu.add parent: "Admin", label: "Users"
46
+ menu.add parent: "Admin", label: "Projects"
47
47
 
48
- menu["Admin"]["Projects"].should be_an_instance_of(ActiveAdmin::MenuItem)
48
+ expect(menu["Admin"]["Projects"]).to be_an_instance_of(ActiveAdmin::MenuItem)
49
49
  end
50
50
 
51
51
  it "should assign children regardless of resource file load order" do
52
52
  menu = Menu.new
53
- menu.add :parent => "Users", :label => "Posts"
54
- menu.add :label => "Users", :url => "/some/url"
53
+ menu.add parent: "Users", label: "Posts"
54
+ menu.add label: "Users", url: "/some/url"
55
55
 
56
- menu["Users"].url.should == "/some/url"
57
- menu["Users"]["Posts"].should be_a ActiveAdmin::MenuItem
56
+ expect(menu["Users"].url).to eq "/some/url"
57
+ expect(menu["Users"]["Posts"]).to be_a ActiveAdmin::MenuItem
58
58
  end
59
59
  end
60
60
 
61
61
  describe "sorting items" do
62
62
  it "should sort children by the result of their label proc" do
63
63
  menu = Menu.new
64
- menu.add :label => proc{ "G" }, :id => "not related 1"
65
- menu.add :label => proc{ "B" }, :id => "not related 2"
66
- menu.add :label => proc{ "A" }, :id => "not related 3"
64
+ menu.add label: proc{ "G" }, id: "not related 1"
65
+ menu.add label: proc{ "B" }, id: "not related 2"
66
+ menu.add label: proc{ "A" }, id: "not related 3"
67
67
 
68
- menu.items.map(&:label).should == %w[A B G]
68
+ expect(menu.items.map(&:label)).to eq %w[A B G]
69
69
  end
70
70
  end
71
71
  end