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,26 +1,26 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Resource, "authorization" do
4
4
 
5
5
  let(:app){ ActiveAdmin::Application.new }
6
6
  let(:namespace){ ActiveAdmin::Namespace.new(app, :admin) }
7
- let(:mock_auth){ mock }
7
+ let(:auth){ double }
8
8
 
9
9
  describe "authorization_adapter" do
10
10
 
11
11
  it "should return AuthorizationAdapter by default" do
12
- app.authorization_adapter.should eq ActiveAdmin::AuthorizationAdapter
13
- namespace.authorization_adapter.should eq ActiveAdmin::AuthorizationAdapter
12
+ expect(app.authorization_adapter).to eq ActiveAdmin::AuthorizationAdapter
13
+ expect(namespace.authorization_adapter).to eq ActiveAdmin::AuthorizationAdapter
14
14
  end
15
15
 
16
16
  it "should be settable on the namespace" do
17
- namespace.authorization_adapter = mock_auth
18
- namespace.authorization_adapter.should eq mock_auth
17
+ namespace.authorization_adapter = auth
18
+ expect(namespace.authorization_adapter).to eq auth
19
19
  end
20
20
 
21
21
  it "should be settable on the application" do
22
- app.authorization_adapter = mock_auth
23
- app.authorization_adapter.should eq mock_auth
22
+ app.authorization_adapter = auth
23
+ expect(app.authorization_adapter).to eq auth
24
24
  end
25
25
 
26
26
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Namespace, "registering a page" do
4
4
 
@@ -13,25 +13,25 @@ describe ActiveAdmin::Namespace, "registering a page" do
13
13
  end
14
14
 
15
15
  it "should store the namespaced registered configuration" do
16
- namespace.resources.keys.should include('Status')
16
+ expect(namespace.resources.keys).to include('Status')
17
17
  end
18
18
 
19
19
  it "should create a new controller in the default namespace" do
20
- defined?(Admin::StatusController).should be_true
20
+ expect(defined?(Admin::StatusController)).to be_truthy
21
21
  end
22
22
 
23
23
  it "should create a menu item" do
24
- menu["Status"].should be_an_instance_of(ActiveAdmin::MenuItem)
24
+ expect(menu["Status"]).to be_an_instance_of(ActiveAdmin::MenuItem)
25
25
  end
26
26
  end # context "with no configuration"
27
27
 
28
28
  context "with a block configuration" do
29
29
  it "should be evaluated in the dsl" do
30
- lambda {
30
+ expect {
31
31
  namespace.register_page "Status" do
32
32
  raise "Hello World"
33
33
  end
34
- }.should raise_error
34
+ }.to raise_error
35
35
  end
36
36
  end # context "with a block configuration"
37
37
 
@@ -42,21 +42,21 @@ describe ActiveAdmin::Namespace, "registering a page" do
42
42
  end
43
43
 
44
44
  it "should add a new menu item" do
45
- menu['Status'].should_not be_nil
45
+ expect(menu['Status']).to_not be_nil
46
46
  end
47
47
  end # describe "adding as a top level item"
48
48
 
49
49
  describe "adding as a child" do
50
50
  before do
51
51
  namespace.register_page "Status" do
52
- menu :parent => 'Extra'
52
+ menu parent: 'Extra'
53
53
  end
54
54
  end
55
55
  it "should generate the parent menu item" do
56
- menu['Extra'].should_not be_nil
56
+ expect( menu['Extra']).to_not be_nil
57
57
  end
58
58
  it "should generate its own child item" do
59
- menu['Extra']['Status'].should_not be_nil
59
+ expect(menu['Extra']['Status']).to_not be_nil
60
60
  end
61
61
  end # describe "adding as a child"
62
62
 
@@ -67,7 +67,7 @@ describe ActiveAdmin::Namespace, "registering a page" do
67
67
  end
68
68
  end
69
69
  it "should not create a menu item" do
70
- menu["Status"].should be_nil
70
+ expect(menu["Status"]).to be_nil
71
71
  end
72
72
  end # describe "disabling the menu"
73
73
  end # describe "adding to the menu"
@@ -1,7 +1,7 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  # TODO: refactor this file so it doesn't depend on the Admin namespace in such a broken way.
4
- # Specifically, the dashboard is already defined and we do let(:namespace) multiple times.
4
+ # Specifically, the dashboard is already defined.
5
5
 
6
6
  describe ActiveAdmin::Namespace, "registering a resource" do
7
7
 
@@ -16,27 +16,27 @@ describe ActiveAdmin::Namespace, "registering a resource" do
16
16
  namespace.register Category
17
17
  end
18
18
  it "should store the namespaced registered configuration" do
19
- namespace.resources.keys.should include('Category')
19
+ expect(namespace.resources.keys).to include('Category')
20
20
  end
21
21
  it "should create a new controller in the default namespace" do
22
- defined?(Admin::CategoriesController).should be_true
22
+ expect(defined?(Admin::CategoriesController)).to be_truthy
23
23
  end
24
- pending "should not create the dashboard controller" do
25
- defined?(Admin::DashboardController).should_not be_true
24
+ skip "should not create the dashboard controller" do
25
+ defined?(Admin::DashboardController).to_not be_truthy
26
26
  end
27
27
  it "should create a menu item" do
28
- menu["Categories"].should be_a ActiveAdmin::MenuItem
29
- menu["Categories"].instance_variable_get(:@url).should be_a Proc
28
+ expect(menu["Categories"]).to be_a ActiveAdmin::MenuItem
29
+ expect(menu["Categories"].instance_variable_get(:@url)).to be_a Proc
30
30
  end
31
31
  end # context "with no configuration"
32
32
 
33
33
  context "with a block configuration" do
34
34
  it "should be evaluated in the dsl" do
35
- lambda {
35
+ expect {
36
36
  namespace.register Category do
37
37
  raise "Hello World"
38
38
  end
39
- }.should raise_error
39
+ }.to raise_error
40
40
  end
41
41
  end # context "with a block configuration"
42
42
 
@@ -47,41 +47,39 @@ describe ActiveAdmin::Namespace, "registering a resource" do
47
47
  end
48
48
 
49
49
  it "should store the namespaced registered configuration" do
50
- namespace.resources.keys.should include('Mock::Resource')
50
+ expect(namespace.resources.keys).to include('Mock::Resource')
51
51
  end
52
52
  it "should create a new controller in the default namespace" do
53
- defined?(Admin::MockResourcesController).should be_true
53
+ expect(defined?(Admin::MockResourcesController)).to be_truthy
54
54
  end
55
55
  it "should create a menu item" do
56
- menu["Mock Resources"].should be_an_instance_of(ActiveAdmin::MenuItem)
56
+ expect(menu["Mock Resources"]).to be_an_instance_of(ActiveAdmin::MenuItem)
57
57
  end
58
58
 
59
59
  it "should use the resource as the model in the controller" do
60
- Admin::MockResourcesController.resource_class.should == Mock::Resource
60
+ expect(Admin::MockResourcesController.resource_class).to eq Mock::Resource
61
61
  end
62
62
  end # context "with a resource that's namespaced"
63
63
 
64
64
  describe "finding resource instances" do
65
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
66
-
67
65
  it "should return the resource when its been registered" do
68
66
  post = namespace.register Post
69
- namespace.resource_for(Post).should == post
67
+ expect(namespace.resource_for(Post)).to eq post
70
68
  end
71
69
 
72
70
  it 'should return nil when the resource has not been registered' do
73
- namespace.resource_for(Post).should == nil
71
+ expect(namespace.resource_for(Post)).to eq nil
74
72
  end
75
73
 
76
74
  it "should return the parent when the parent class has been registered and the child has not" do
77
75
  user = namespace.register User
78
- namespace.resource_for(Publisher).should == user
76
+ expect(namespace.resource_for(Publisher)).to eq user
79
77
  end
80
78
 
81
79
  it "should return the resource if it and it's parent were registered" do
82
80
  user = namespace.register User
83
81
  publisher = namespace.register Publisher
84
- namespace.resource_for(Publisher).should == publisher
82
+ expect(namespace.resource_for(Publisher)).to eq publisher
85
83
  end
86
84
  end # describe "finding resource instances"
87
85
 
@@ -91,21 +89,21 @@ describe ActiveAdmin::Namespace, "registering a resource" do
91
89
  namespace.register Category
92
90
  end
93
91
  it "should add a new menu item" do
94
- menu['Categories'].should_not be_nil
92
+ expect(menu['Categories']).to_not be_nil
95
93
  end
96
94
  end # describe "adding as a top level item"
97
95
 
98
96
  describe "adding as a child" do
99
97
  before do
100
98
  namespace.register Category do
101
- menu :parent => 'Blog'
99
+ menu parent: 'Blog'
102
100
  end
103
101
  end
104
102
  it "should generate the parent menu item" do
105
- menu['Blog'].should_not be_nil
103
+ expect(menu['Blog']).to_not be_nil
106
104
  end
107
105
  it "should generate its own child item" do
108
- menu['Blog']['Categories'].should_not be_nil
106
+ expect(menu['Blog']['Categories']).to_not be_nil
109
107
  end
110
108
  end # describe "adding as a child"
111
109
 
@@ -116,7 +114,7 @@ describe ActiveAdmin::Namespace, "registering a resource" do
116
114
  end
117
115
  end
118
116
  it "should not create a menu item" do
119
- menu["Categories"].should be_nil
117
+ expect(menu["Categories"]).to be_nil
120
118
  end
121
119
  end # describe "disabling the menu"
122
120
 
@@ -128,17 +126,17 @@ describe ActiveAdmin::Namespace, "registering a resource" do
128
126
  end
129
127
  end
130
128
  it "should not show up in the menu" do
131
- menu["Posts"].should be_nil
129
+ expect(menu["Posts"]).to be_nil
132
130
  end
133
131
  end
134
132
  context "when optional" do
135
133
  before do
136
134
  namespace.register Post do
137
- belongs_to :author, :optional => true
135
+ belongs_to :author, optional: true
138
136
  end
139
137
  end
140
138
  it "should show up in the menu" do
141
- menu["Posts"].should_not be_nil
139
+ expect(menu["Posts"]).to_not be_nil
142
140
  end
143
141
  end
144
142
  end
@@ -149,14 +147,14 @@ describe ActiveAdmin::Namespace, "registering a resource" do
149
147
  it "should be namespaced" do
150
148
  namespace = ActiveAdmin::Namespace.new(application, :one)
151
149
  namespace.register Category
152
- defined?(One::CategoriesController).should be_true
150
+ expect(defined?(One::CategoriesController)).to be_truthy
153
151
  end
154
152
  end
155
153
  context "when not namespaced" do
156
154
  it "should not be namespaced" do
157
155
  namespace = ActiveAdmin::Namespace.new(application, :two)
158
156
  namespace.register Category
159
- defined?(Two::CategoriesController).should be_true
157
+ expect(defined?(Two::CategoriesController)).to be_truthy
160
158
  end
161
159
  end
162
160
  end # describe "dashboard controller name"
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Namespace do
4
4
 
@@ -8,19 +8,19 @@ describe ActiveAdmin::Namespace do
8
8
  let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
9
9
 
10
10
  it "should have an application instance" do
11
- namespace.application.should == application
11
+ expect(namespace.application).to eq application
12
12
  end
13
13
 
14
14
  it "should have a name" do
15
- namespace.name.should == :admin
15
+ expect(namespace.name).to eq :admin
16
16
  end
17
17
 
18
18
  it "should have no resources" do
19
- namespace.resources.should be_empty
19
+ expect(namespace.resources).to be_empty
20
20
  end
21
21
 
22
22
  it "should not have any menu item" do
23
- namespace.fetch_menu(:default).children.should be_empty
23
+ expect(namespace.fetch_menu(:default).children).to be_empty
24
24
  end
25
25
  end # context "when new"
26
26
 
@@ -29,13 +29,13 @@ describe ActiveAdmin::Namespace do
29
29
 
30
30
  it "should inherit the site title from the application" do
31
31
  ActiveAdmin::Namespace.setting :site_title, "Not the Same"
32
- namespace.site_title.should == application.site_title
32
+ expect(namespace.site_title).to eq application.site_title
33
33
  end
34
34
 
35
35
  it "should be able to override the site title" do
36
- namespace.site_title.should == application.site_title
36
+ expect(namespace.site_title).to eq application.site_title
37
37
  namespace.site_title = "My Site Title"
38
- namespace.site_title.should_not == application.site_title
38
+ expect(namespace.site_title).to_not eq application.site_title
39
39
  end
40
40
  end
41
41
 
@@ -44,11 +44,11 @@ describe ActiveAdmin::Namespace do
44
44
  let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
45
45
 
46
46
  it "returns the menu" do
47
- namespace.fetch_menu(:default).should be_an_instance_of(ActiveAdmin::Menu)
47
+ expect(namespace.fetch_menu(:default)).to be_an_instance_of(ActiveAdmin::Menu)
48
48
  end
49
49
 
50
50
  it "should have utility nav menu" do
51
- namespace.fetch_menu(:utility_navigation).should be_an_instance_of(ActiveAdmin::Menu)
51
+ expect(namespace.fetch_menu(:utility_navigation)).to be_an_instance_of(ActiveAdmin::Menu)
52
52
  end
53
53
 
54
54
  it "should raise an exception if the menu doesn't exist" do
@@ -63,18 +63,18 @@ describe ActiveAdmin::Namespace do
63
63
 
64
64
  it "should set the block as a menu build callback" do
65
65
  namespace.build_menu do |menu|
66
- menu.add :label => "menu item"
66
+ menu.add label: "menu item"
67
67
  end
68
68
 
69
- namespace.fetch_menu(:default)["menu item"].should_not be_nil
69
+ expect(namespace.fetch_menu(:default)["menu item"]).to_not be_nil
70
70
  end
71
71
 
72
72
  it "should set a block on a custom menu" do
73
73
  namespace.build_menu :test do |menu|
74
- menu.add :label => "menu item"
74
+ menu.add label: "menu item"
75
75
  end
76
76
 
77
- namespace.fetch_menu(:test)["menu item"].should_not be_nil
77
+ expect(namespace.fetch_menu(:test)["menu item"]).to_not be_nil
78
78
  end
79
79
  end
80
80
 
@@ -82,20 +82,20 @@ describe ActiveAdmin::Namespace do
82
82
  let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
83
83
  let(:menu) do
84
84
  namespace.build_menu :utility_navigation do |menu|
85
- menu.add :label => "ActiveAdmin.info", :url => "http://www.activeadmin.info", :html_options => { :target => :blank }
86
- namespace.add_logout_button_to_menu menu, 1, :class => "matt"
85
+ menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info", html_options: { target: :blank }
86
+ namespace.add_logout_button_to_menu menu, 1, class: "matt"
87
87
  end
88
88
  namespace.fetch_menu(:utility_navigation)
89
89
  end
90
90
 
91
91
  it "should have a logout button to the far left" do
92
- menu["Logout"].should_not be_nil
93
- menu["Logout"].priority.should == 1
92
+ expect(menu["Logout"]).to_not be_nil
93
+ expect(menu["Logout"].priority).to eq 1
94
94
  end
95
95
 
96
96
  it "should have a static link with a target of :blank" do
97
- menu["ActiveAdmin.info"].should_not be_nil
98
- menu["ActiveAdmin.info"].html_options.should include(:target => :blank)
97
+ expect(menu["ActiveAdmin.info"]).to_not be_nil
98
+ expect(menu["ActiveAdmin.info"].html_options).to include(target: :blank)
99
99
  end
100
100
 
101
101
  end
@@ -0,0 +1,81 @@
1
+ require 'rails_helper'
2
+
3
+ describe ActiveAdmin::OrderClause do
4
+ subject { described_class.new clause }
5
+
6
+ let(:application) { ActiveAdmin::Application.new }
7
+ let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
8
+ let(:config) { ActiveAdmin::Resource.new namespace, Post }
9
+
10
+ describe 'id_asc (existing column)' do
11
+ let(:clause) { 'id_asc' }
12
+
13
+ it { is_expected.to be_valid }
14
+
15
+ describe '#field' do
16
+ subject { super().field }
17
+ it { is_expected.to eq('id') }
18
+ end
19
+
20
+ describe '#order' do
21
+ subject { super().order }
22
+ it { is_expected.to eq('asc') }
23
+ end
24
+
25
+ specify '#to_sql prepends table name' do
26
+ expect(subject.to_sql(config)).to eq '"posts"."id" asc'
27
+ end
28
+ end
29
+
30
+ describe 'virtual_column_asc' do
31
+ let(:clause) { 'virtual_column_asc' }
32
+
33
+ it { is_expected.to be_valid }
34
+
35
+ describe '#field' do
36
+ subject { super().field }
37
+ it { is_expected.to eq('virtual_column') }
38
+ end
39
+
40
+ describe '#order' do
41
+ subject { super().order }
42
+ it { is_expected.to eq('asc') }
43
+ end
44
+
45
+ specify '#to_sql' do
46
+ expect(subject.to_sql(config)).to eq '"virtual_column" asc'
47
+ end
48
+ end
49
+
50
+ describe "hstore_col->'field'_desc" do
51
+ let(:clause) { "hstore_col->'field'_desc" }
52
+
53
+ it { is_expected.to be_valid }
54
+
55
+ describe '#field' do
56
+ subject { super().field }
57
+ it { is_expected.to eq("hstore_col->'field'") }
58
+ end
59
+
60
+ describe '#order' do
61
+ subject { super().order }
62
+ it { is_expected.to eq('desc') }
63
+ end
64
+
65
+ it 'converts to sql' do
66
+ expect(subject.to_sql(config)).to eq %Q("hstore_col"->'field' desc)
67
+ end
68
+ end
69
+
70
+ describe '_asc' do
71
+ let(:clause) { '_asc' }
72
+
73
+ it { is_expected.not_to be_valid }
74
+ end
75
+
76
+ describe 'nil' do
77
+ let(:clause) { nil }
78
+
79
+ it { is_expected.not_to be_valid }
80
+ end
81
+ end