activeadmin 0.6.6 → 1.0.0.pre1

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

Potentially problematic release.


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

Files changed (512) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -8
  3. data/.hound.yml +11 -0
  4. data/.travis.yml +36 -10
  5. data/.yardopts +2 -1
  6. data/CHANGELOG.md +118 -67
  7. data/CONTRIBUTING.md +96 -73
  8. data/Gemfile +35 -35
  9. data/Guardfile +1 -0
  10. data/LICENSE +1 -1
  11. data/README.md +98 -0
  12. data/Rakefile +12 -4
  13. data/activeadmin.gemspec +21 -24
  14. data/app/assets/javascripts/active_admin/application.js.coffee +32 -0
  15. data/app/assets/javascripts/active_admin/base.js.coffee +14 -0
  16. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
  17. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
  18. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
  19. data/app/assets/javascripts/active_admin/{components/jquery.aa.checkbox-toggler.js.coffee → lib/checkbox-toggler.js.coffee} +3 -4
  20. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +101 -0
  21. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
  22. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
  23. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +37 -0
  24. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
  25. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +68 -0
  26. data/app/assets/javascripts/active_admin/{components/jquery.aa.table-checkbox-toggler.js.coffee → lib/table-checkbox-toggler.js.coffee} +2 -3
  27. data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
  28. data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +61 -17
  29. data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
  30. data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
  31. data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
  32. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
  33. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -1
  34. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
  35. data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
  36. data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -14
  37. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +5 -4
  38. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  39. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  40. data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
  41. data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +2 -3
  42. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
  43. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  44. data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +4 -2
  45. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  46. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  47. data/app/assets/stylesheets/active_admin/mixins/{_all.css.scss → _all.scss} +0 -0
  48. data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -1
  49. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
  50. data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
  51. data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
  52. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
  53. data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +8 -2
  54. data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -7
  55. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -9
  56. data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
  57. data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
  58. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +5 -2
  59. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +11 -9
  60. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  61. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  62. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
  63. data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
  64. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  65. data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
  66. data/app/views/active_admin/devise/sessions/new.html.erb +9 -7
  67. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  68. data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
  69. data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
  70. data/config/locales/ar.yml +120 -0
  71. data/config/locales/bg.yml +26 -6
  72. data/config/locales/bs.yml +122 -0
  73. data/config/locales/ca.yml +10 -1
  74. data/config/locales/cs.yml +7 -2
  75. data/config/locales/da.yml +7 -3
  76. data/config/locales/de-CH.yml +14 -31
  77. data/config/locales/de.yml +33 -33
  78. data/config/locales/el.yml +28 -2
  79. data/config/locales/en-GB.yml +12 -4
  80. data/config/locales/en.yml +29 -3
  81. data/config/locales/{es_MX.yml → es-MX.yml} +9 -24
  82. data/config/locales/es.yml +32 -25
  83. data/config/locales/fa.yml +120 -0
  84. data/config/locales/fi.yml +113 -0
  85. data/config/locales/fr.yml +21 -11
  86. data/config/locales/he.yml +7 -3
  87. data/config/locales/hr.yml +42 -11
  88. data/config/locales/hu.yml +10 -3
  89. data/config/locales/it.yml +31 -3
  90. data/config/locales/ja.yml +8 -3
  91. data/config/locales/ko.yml +7 -1
  92. data/config/locales/lt.yml +42 -11
  93. data/config/locales/lv.yml +7 -3
  94. data/config/locales/{no-NB.yml → nb.yml} +46 -15
  95. data/config/locales/nl.yml +36 -5
  96. data/config/locales/pl.yml +13 -8
  97. data/config/locales/pt-BR.yml +37 -5
  98. data/config/locales/pt-PT.yml +8 -4
  99. data/config/locales/ro.yml +7 -3
  100. data/config/locales/ru.yml +26 -5
  101. data/config/locales/sv-SE.yml +9 -5
  102. data/config/locales/tr.yml +10 -3
  103. data/config/locales/uk.yml +36 -12
  104. data/config/locales/vi.yml +7 -3
  105. data/config/locales/zh-CN.yml +26 -10
  106. data/config/locales/zh-TW.yml +19 -13
  107. data/docs/0-installation.md +65 -29
  108. data/docs/1-general-configuration.md +92 -81
  109. data/docs/10-custom-pages.md +68 -68
  110. data/docs/11-decorators.md +48 -59
  111. data/docs/12-arbre-components.md +80 -74
  112. data/docs/13-authorization-adapter.md +128 -107
  113. data/docs/14-gotchas.md +92 -0
  114. data/docs/2-resource-customization.md +293 -178
  115. data/docs/3-index-pages.md +160 -86
  116. data/docs/3-index-pages/custom-index.md +31 -0
  117. data/docs/3-index-pages/index-as-block.md +14 -9
  118. data/docs/3-index-pages/index-as-blog.md +41 -31
  119. data/docs/3-index-pages/index-as-grid.md +16 -8
  120. data/docs/3-index-pages/index-as-table.md +129 -52
  121. data/docs/4-csv-format.md +31 -24
  122. data/docs/5-forms.md +133 -56
  123. data/docs/6-show-pages.md +89 -27
  124. data/docs/7-sidebars.md +48 -27
  125. data/docs/8-custom-actions.md +98 -77
  126. data/docs/9-batch-actions.md +210 -146
  127. data/docs/README.md +24 -0
  128. data/features/action_item.feature +3 -3
  129. data/features/authorization_pundit.feature +37 -0
  130. data/features/breadcrumb.feature +48 -0
  131. data/features/comments/commenting.feature +56 -13
  132. data/features/development_reloading.feature +17 -30
  133. data/features/edit_page.feature +12 -1
  134. data/features/favicon.feature +3 -3
  135. data/features/i18n.feature +5 -4
  136. data/features/index/batch_actions.feature +41 -0
  137. data/features/index/filters.feature +67 -0
  138. data/features/index/format_as_csv.feature +90 -4
  139. data/features/index/formats.feature +27 -0
  140. data/features/index/index_as_blog.feature +4 -4
  141. data/features/index/index_as_table.feature +102 -6
  142. data/features/index/index_blank_slate.feature +22 -0
  143. data/features/index/index_scope_to.feature +16 -16
  144. data/features/index/page_title.feature +11 -0
  145. data/features/index/pagination.feature +1 -1
  146. data/features/index/switch_index_view.feature +14 -14
  147. data/features/new_page.feature +13 -2
  148. data/features/registering_pages.feature +1 -1
  149. data/features/renamed_resource.feature +32 -0
  150. data/features/show/page_title.feature +11 -0
  151. data/features/show/tabs.feature +27 -0
  152. data/features/sidebar_sections.feature +12 -0
  153. data/features/site_title.feature +2 -2
  154. data/features/specifying_actions.feature +3 -3
  155. data/features/step_definitions/action_item_steps.rb +2 -2
  156. data/features/step_definitions/action_link_steps.rb +14 -1
  157. data/features/step_definitions/additional_web_steps.rb +19 -20
  158. data/features/step_definitions/asset_steps.rb +3 -3
  159. data/features/step_definitions/attribute_steps.rb +8 -3
  160. data/features/step_definitions/batch_action_steps.rb +26 -9
  161. data/features/step_definitions/blog_steps.rb +3 -0
  162. data/features/step_definitions/breadcrumb_steps.rb +1 -1
  163. data/features/step_definitions/comment_steps.rb +1 -1
  164. data/features/step_definitions/configuration_steps.rb +9 -2
  165. data/features/step_definitions/dashboard_steps.rb +2 -2
  166. data/features/step_definitions/factory_steps.rb +9 -8
  167. data/features/step_definitions/filter_steps.rb +25 -3
  168. data/features/step_definitions/flash_steps.rb +3 -3
  169. data/features/step_definitions/format_steps.rb +18 -18
  170. data/features/step_definitions/index_scope_steps.rb +5 -5
  171. data/features/step_definitions/layout_steps.rb +1 -1
  172. data/features/step_definitions/member_link_steps.rb +2 -2
  173. data/features/step_definitions/menu_steps.rb +3 -3
  174. data/features/step_definitions/pagination_steps.rb +2 -3
  175. data/features/step_definitions/sidebar_steps.rb +8 -3
  176. data/features/step_definitions/site_title_steps.rb +6 -4
  177. data/features/step_definitions/symbol_leak_steps.rb +3 -0
  178. data/features/step_definitions/tab_steps.rb +5 -0
  179. data/features/step_definitions/table_steps.rb +4 -4
  180. data/features/step_definitions/user_steps.rb +10 -7
  181. data/features/step_definitions/web_steps.rb +14 -11
  182. data/features/sti_resource.feature +6 -2
  183. data/features/strong_parameters.feature +73 -0
  184. data/features/support/env.rb +34 -9
  185. data/features/support/paths.rb +14 -6
  186. data/features/support/selectors.rb +1 -1
  187. data/features/symbol_leak.feature +35 -0
  188. data/features/users/resetting_password.feature +5 -6
  189. data/lib/active_admin.rb +26 -25
  190. data/lib/active_admin/abstract_view_factory.rb +7 -17
  191. data/lib/active_admin/application.rb +72 -59
  192. data/lib/active_admin/asset_registration.rb +2 -2
  193. data/lib/active_admin/authorization_adapter.rb +2 -2
  194. data/lib/active_admin/base_controller.rb +2 -3
  195. data/lib/active_admin/base_controller/authorization.rb +13 -31
  196. data/lib/active_admin/batch_actions.rb +1 -1
  197. data/lib/active_admin/batch_actions/controller.rb +24 -8
  198. data/lib/active_admin/batch_actions/resource_extension.rb +47 -18
  199. data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
  200. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
  201. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
  202. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
  203. data/lib/active_admin/callbacks.rb +25 -24
  204. data/lib/active_admin/cancan_adapter.rb +7 -11
  205. data/lib/active_admin/csv_builder.rb +92 -15
  206. data/lib/active_admin/dependency.rb +93 -0
  207. data/lib/active_admin/deprecation.rb +6 -7
  208. data/lib/active_admin/devise.rb +28 -18
  209. data/lib/active_admin/dsl.rb +18 -11
  210. data/lib/active_admin/engine.rb +10 -8
  211. data/lib/active_admin/error.rb +62 -0
  212. data/lib/active_admin/filters/dsl.rb +2 -2
  213. data/lib/active_admin/filters/forms.rb +17 -27
  214. data/lib/active_admin/filters/formtastic_addons.rb +49 -15
  215. data/lib/active_admin/filters/resource_extension.rb +43 -34
  216. data/lib/active_admin/form_builder.rb +93 -154
  217. data/lib/active_admin/helpers/collection.rb +7 -13
  218. data/lib/active_admin/helpers/i18n.rb +7 -0
  219. data/lib/active_admin/helpers/optional_display.rb +5 -5
  220. data/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
  221. data/lib/active_admin/helpers/scope_chain.rb +1 -1
  222. data/lib/active_admin/helpers/settings.rb +16 -9
  223. data/lib/active_admin/iconic.rb +17 -15
  224. data/lib/active_admin/iconic/icons.rb +136 -136
  225. data/lib/active_admin/inputs.rb +11 -7
  226. data/lib/active_admin/inputs/datepicker_input.rb +12 -3
  227. data/lib/active_admin/inputs/filters/base.rb +42 -0
  228. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  229. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  230. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  231. data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
  232. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  233. data/lib/active_admin/inputs/filters/select_input.rb +54 -0
  234. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  235. data/lib/active_admin/menu.rb +6 -4
  236. data/lib/active_admin/menu_collection.rb +1 -4
  237. data/lib/active_admin/namespace.rb +55 -29
  238. data/lib/active_admin/order_clause.rb +26 -0
  239. data/lib/active_admin/orm/active_record.rb +5 -0
  240. data/lib/active_admin/orm/active_record/comments.rb +81 -0
  241. data/lib/active_admin/orm/active_record/comments/comment.rb +45 -0
  242. data/lib/active_admin/{comments → orm/active_record/comments}/namespace_helper.rb +2 -2
  243. data/lib/active_admin/{comments → orm/active_record/comments}/resource_helper.rb +1 -1
  244. data/lib/active_admin/{comments → orm/active_record/comments}/show_page_helper.rb +0 -0
  245. data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
  246. data/lib/active_admin/{comments → orm/active_record/comments}/views/active_admin_comments.rb +16 -14
  247. data/lib/active_admin/orm/mongoid.rb +1 -0
  248. data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
  249. data/lib/active_admin/page.rb +7 -3
  250. data/lib/active_admin/page_dsl.rb +1 -1
  251. data/lib/active_admin/page_presenter.rb +2 -2
  252. data/lib/active_admin/pundit_adapter.rb +68 -0
  253. data/lib/active_admin/resource.rb +16 -17
  254. data/lib/active_admin/resource/action_items.rb +23 -18
  255. data/lib/active_admin/resource/belongs_to.rb +7 -3
  256. data/lib/active_admin/resource/controllers.rb +1 -0
  257. data/lib/active_admin/resource/includes.rb +12 -0
  258. data/lib/active_admin/resource/menu.rb +5 -5
  259. data/lib/active_admin/resource/naming.rb +27 -43
  260. data/lib/active_admin/resource/page_presenters.rb +1 -1
  261. data/lib/active_admin/resource/routes.rb +27 -11
  262. data/lib/active_admin/resource/scope_to.rb +7 -7
  263. data/lib/active_admin/resource/sidebars.rb +1 -0
  264. data/lib/active_admin/resource_controller.rb +6 -7
  265. data/lib/active_admin/resource_controller/data_access.rb +101 -93
  266. data/lib/active_admin/resource_controller/decorators.rb +91 -9
  267. data/lib/active_admin/resource_controller/streaming.rb +37 -0
  268. data/lib/active_admin/resource_dsl.rb +53 -10
  269. data/lib/active_admin/router.rb +7 -7
  270. data/lib/active_admin/scope.rb +6 -6
  271. data/lib/active_admin/sidebar_section.rb +10 -2
  272. data/lib/active_admin/version.rb +1 -1
  273. data/lib/active_admin/view_factory.rb +17 -17
  274. data/lib/active_admin/view_helpers.rb +0 -1
  275. data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
  276. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
  277. data/lib/active_admin/view_helpers/display_helper.rb +30 -15
  278. data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -25
  279. data/lib/active_admin/view_helpers/fields_for.rb +4 -4
  280. data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
  281. data/lib/active_admin/view_helpers/form_helper.rb +5 -9
  282. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
  283. data/lib/active_admin/views/action_items.rb +2 -2
  284. data/lib/active_admin/views/components/action_list_popover.rb +1 -1
  285. data/lib/active_admin/views/components/active_admin_form.rb +123 -0
  286. data/lib/active_admin/views/components/attributes_table.rb +63 -21
  287. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  288. data/lib/active_admin/views/components/columns.rb +13 -7
  289. data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
  290. data/lib/active_admin/views/components/index_list.rb +7 -7
  291. data/lib/active_admin/views/components/paginated_collection.rb +38 -20
  292. data/lib/active_admin/views/components/panel.rb +8 -2
  293. data/lib/active_admin/views/components/popover.rb +1 -1
  294. data/lib/active_admin/views/components/scopes.rb +5 -4
  295. data/lib/active_admin/views/components/sidebar_section.rb +3 -2
  296. data/lib/active_admin/views/components/site_title.rb +2 -2
  297. data/lib/active_admin/views/components/status_tag.rb +34 -11
  298. data/lib/active_admin/views/components/table_for.rb +90 -45
  299. data/lib/active_admin/views/components/tabs.rb +28 -0
  300. data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  301. data/lib/active_admin/views/footer.rb +3 -3
  302. data/lib/active_admin/views/header.rb +3 -3
  303. data/lib/active_admin/views/index_as_block.rb +10 -10
  304. data/lib/active_admin/views/index_as_blog.rb +45 -39
  305. data/lib/active_admin/views/index_as_grid.rb +14 -10
  306. data/lib/active_admin/views/index_as_table.rb +242 -129
  307. data/lib/active_admin/views/pages/base.rb +22 -18
  308. data/lib/active_admin/views/pages/form.rb +21 -11
  309. data/lib/active_admin/views/pages/index.rb +40 -35
  310. data/lib/active_admin/views/pages/layout.rb +1 -1
  311. data/lib/active_admin/views/pages/show.rb +4 -4
  312. data/lib/active_admin/views/tabbed_navigation.rb +7 -3
  313. data/lib/active_admin/views/title_bar.rb +10 -8
  314. data/lib/generators/active_admin/assets/assets_generator.rb +3 -28
  315. data/lib/generators/active_admin/assets/templates/{3.1/active_admin.css.scss → active_admin.css.scss} +0 -0
  316. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
  317. data/lib/generators/active_admin/devise/devise_generator.rb +24 -26
  318. data/lib/generators/active_admin/install/install_generator.rb +8 -9
  319. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +28 -26
  320. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -2
  321. data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
  322. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
  323. data/lib/generators/active_admin/page/USAGE +8 -0
  324. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  325. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  326. data/lib/generators/active_admin/resource/resource_generator.rb +3 -5
  327. data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
  328. data/lib/ransack_ext.rb +12 -0
  329. data/script/local +2 -2
  330. data/script/travis_cache +107 -0
  331. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
  332. data/spec/javascripts/fixtures/flashes.html +2 -0
  333. data/spec/rails_helper.rb +154 -0
  334. data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
  335. data/spec/{integration → requests}/javascript_spec.rb +5 -5
  336. data/spec/requests/memory_spec.rb +23 -0
  337. data/spec/requests/stylesheets_spec.rb +18 -0
  338. data/spec/spec_helper.rb +12 -173
  339. data/spec/support/detect_rails_version.rb +9 -17
  340. data/spec/support/rails_template.rb +64 -35
  341. data/spec/support/rails_template_with_data.rb +14 -14
  342. data/spec/support/templates/admin/stores.rb +5 -1
  343. data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
  344. data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
  345. data/spec/support/templates/policies/admin_user_policy.rb +11 -0
  346. data/spec/support/templates/policies/application_policy.rb +45 -0
  347. data/spec/support/templates/policies/category_policy.rb +7 -0
  348. data/spec/support/templates/policies/post_policy.rb +15 -0
  349. data/spec/support/templates/policies/store_policy.rb +11 -0
  350. data/spec/support/templates/policies/user_policy.rb +11 -0
  351. data/spec/support/templates/post_decorator.rb +4 -46
  352. data/spec/unit/abstract_view_factory_spec.rb +16 -16
  353. data/spec/unit/action_builder_spec.rb +24 -18
  354. data/spec/unit/active_admin_spec.rb +2 -2
  355. data/spec/unit/application_spec.rb +33 -34
  356. data/spec/unit/asset_registration_spec.rb +25 -29
  357. data/spec/unit/authorization/authorization_adapter_spec.rb +10 -10
  358. data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
  359. data/spec/unit/authorization/index_overriding_spec.rb +22 -0
  360. data/spec/unit/auto_link_spec.rb +43 -13
  361. data/spec/unit/batch_actions/resource_spec.rb +15 -14
  362. data/spec/unit/batch_actions/settings_spec.rb +18 -18
  363. data/spec/unit/belongs_to_spec.rb +28 -19
  364. data/spec/unit/cancan_adapter_spec.rb +8 -8
  365. data/spec/unit/comments_spec.rb +99 -39
  366. data/spec/unit/component_spec.rb +3 -3
  367. data/spec/unit/config_shared_examples.rb +10 -10
  368. data/spec/unit/controller_filters_spec.rb +23 -16
  369. data/spec/unit/csv_builder_spec.rb +165 -24
  370. data/spec/unit/dependency_spec.rb +135 -0
  371. data/spec/unit/devise_spec.rb +17 -37
  372. data/spec/unit/dsl_spec.rb +70 -9
  373. data/spec/unit/event_spec.rb +11 -11
  374. data/spec/unit/filters/filter_form_builder_spec.rb +207 -148
  375. data/spec/unit/filters/resource_spec.rb +60 -26
  376. data/spec/unit/form_builder_spec.rb +419 -145
  377. data/spec/unit/generators/install_spec.rb +23 -0
  378. data/spec/unit/helpers/collection_spec.rb +18 -18
  379. data/spec/unit/helpers/scope_chain_spec.rb +6 -6
  380. data/spec/unit/helpers/settings_spec.rb +4 -4
  381. data/spec/unit/i18n_spec.rb +12 -0
  382. data/spec/unit/menu_collection_spec.rb +14 -14
  383. data/spec/unit/menu_item_spec.rb +42 -42
  384. data/spec/unit/menu_spec.rb +20 -20
  385. data/spec/unit/namespace/authorization_spec.rb +8 -8
  386. data/spec/unit/namespace/register_page_spec.rb +11 -11
  387. data/spec/unit/namespace/register_resource_spec.rb +28 -30
  388. data/spec/unit/namespace_spec.rb +20 -20
  389. data/spec/unit/order_clause_spec.rb +81 -0
  390. data/spec/unit/page_controller_spec.rb +1 -1
  391. data/spec/unit/page_spec.rb +18 -12
  392. data/spec/unit/pretty_format_spec.rb +42 -14
  393. data/spec/unit/pundit_adapter_spec.rb +98 -0
  394. data/spec/unit/resource/action_items_spec.rb +15 -12
  395. data/spec/unit/resource/includes_spec.rb +21 -0
  396. data/spec/unit/resource/menu_spec.rb +1 -1
  397. data/spec/unit/resource/naming_spec.rb +35 -21
  398. data/spec/unit/resource/page_presenters_spec.rb +8 -8
  399. data/spec/unit/resource/pagination_spec.rb +6 -6
  400. data/spec/unit/resource/routes_spec.rb +10 -10
  401. data/spec/unit/resource/scopes_spec.rb +14 -7
  402. data/spec/unit/resource/sidebars_spec.rb +6 -6
  403. data/spec/unit/resource_collection_spec.rb +31 -38
  404. data/spec/unit/resource_controller/data_access_spec.rb +96 -30
  405. data/spec/unit/resource_controller/decorators_spec.rb +83 -0
  406. data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
  407. data/spec/unit/resource_controller_spec.rb +73 -70
  408. data/spec/unit/resource_registration_spec.rb +12 -12
  409. data/spec/unit/resource_spec.rb +77 -42
  410. data/spec/unit/routing_spec.rb +39 -31
  411. data/spec/unit/scope_spec.rb +112 -30
  412. data/spec/unit/settings_spec.rb +51 -21
  413. data/spec/unit/view_factory_spec.rb +2 -3
  414. data/spec/unit/view_helpers/breadcrumbs_spec.rb +71 -60
  415. data/spec/unit/view_helpers/display_name_spec.rb +49 -21
  416. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
  417. data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
  418. data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
  419. data/spec/unit/view_helpers/form_helper_spec.rb +10 -23
  420. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +64 -22
  421. data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
  422. data/spec/unit/views/components/attributes_table_spec.rb +171 -30
  423. data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
  424. data/spec/unit/views/components/blank_slate_spec.rb +14 -4
  425. data/spec/unit/views/components/columns_spec.rb +52 -22
  426. data/spec/unit/views/components/index_list_spec.rb +11 -8
  427. data/spec/unit/views/components/index_table_for_spec.rb +46 -0
  428. data/spec/unit/views/components/paginated_collection_spec.rb +79 -90
  429. data/spec/unit/views/components/panel_spec.rb +32 -21
  430. data/spec/unit/views/components/popover_spec.rb +7 -7
  431. data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
  432. data/spec/unit/views/components/site_title_spec.rb +26 -26
  433. data/spec/unit/views/components/status_tag_spec.rb +178 -38
  434. data/spec/unit/views/components/table_for_spec.rb +237 -35
  435. data/spec/unit/views/components/tabs_spec.rb +39 -0
  436. data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
  437. data/spec/unit/views/pages/form_spec.rb +17 -10
  438. data/spec/unit/views/pages/index_spec.rb +60 -0
  439. data/spec/unit/views/pages/layout_spec.rb +17 -21
  440. data/spec/unit/views/pages/show_spec.rb +18 -6
  441. data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
  442. data/tasks/docs.rake +9 -11
  443. data/tasks/parallel_tests.rake +8 -2
  444. data/tasks/test.rake +13 -9
  445. data/tasks/yard.rake +7 -4
  446. metadata +219 -163
  447. data/.document +0 -5
  448. data/README.rdoc +0 -88
  449. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  450. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  451. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  452. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  453. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  454. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +0 -10
  455. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
  456. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
  457. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
  458. data/app/assets/images/active_admin/loading.gif +0 -0
  459. data/app/assets/javascripts/active_admin/application.js +0 -3
  460. data/app/assets/javascripts/active_admin/base.js +0 -5
  461. data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +0 -105
  462. data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +0 -97
  463. data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +0 -4
  464. data/app/assets/javascripts/active_admin/pages/application.js.coffee +0 -21
  465. data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +0 -26
  466. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
  467. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -41
  468. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
  469. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +0 -38
  470. data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +0 -43
  471. data/app/views/active_admin/dashboard/index.html.arb +0 -1
  472. data/app/views/active_admin/resource/index.csv.erb +0 -23
  473. data/docs/3-index-pages/create-an-index.md +0 -29
  474. data/lib/active_admin/comments.rb +0 -83
  475. data/lib/active_admin/comments/comment.rb +0 -42
  476. data/lib/active_admin/comments/views.rb +0 -2
  477. data/lib/active_admin/dependency_checker.rb +0 -46
  478. data/lib/active_admin/inputs/filter_base.rb +0 -33
  479. data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
  480. data/lib/active_admin/inputs/filter_boolean_input.rb +0 -36
  481. data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -40
  482. data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
  483. data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
  484. data/lib/active_admin/inputs/filter_select_input.rb +0 -49
  485. data/lib/active_admin/inputs/filter_string_input.rb +0 -24
  486. data/lib/active_admin/reloader.rb +0 -130
  487. data/lib/active_admin/resource_controller/actions.rb +0 -81
  488. data/lib/active_admin/sass/active_admin.scss +0 -3
  489. data/lib/active_admin/sass/css_loader.rb +0 -16
  490. data/lib/active_admin/sass/helpers.rb +0 -45
  491. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
  492. data/lib/active_admin/views/dashboard_section_renderer.rb +0 -19
  493. data/lib/active_admin/views/pages/dashboard.rb +0 -62
  494. data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +0 -1
  495. data/lib/generators/active_admin/assets/templates/3.1/active_admin.js +0 -1
  496. data/lib/meta_search_ext.rb +0 -10
  497. data/spec/integration/memory_spec.rb +0 -29
  498. data/spec/integration/stylesheets_spec.rb +0 -41
  499. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
  500. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
  501. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
  502. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
  503. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
  504. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
  505. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
  506. data/spec/javascripts/support/jquery.min.js +0 -4
  507. data/spec/spec_helper_without_rails.rb +0 -11
  508. data/spec/unit/generators/install_rails_3_1_spec.rb +0 -16
  509. data/spec/unit/rails_spec.rb +0 -43
  510. data/spec/unit/reloader_spec.rb +0 -124
  511. data/spec/unit/sass/helpers_spec.rb +0 -47
  512. data/tasks/js.rake +0 -32
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Views::AttributesTable do
4
4
 
@@ -6,13 +6,13 @@ describe ActiveAdmin::Views::AttributesTable do
6
6
  let(:helpers) { action_view }
7
7
 
8
8
  let(:post) do
9
- post = Post.new :title => "Hello World", :body => nil
10
- post.stub!(:id){ 1 }
11
- post.stub!(:new_record?){ false }
9
+ post = Post.new title: "Hello World", body: nil
10
+ allow(post).to receive(:id){ 1 }
11
+ allow(post).to receive(:new_record?){ false }
12
12
  post
13
13
  end
14
14
 
15
- let(:assigns){ { :post => post } }
15
+ let(:assigns){ { post: post } }
16
16
 
17
17
  # Loop through a few different ways to make the same table
18
18
  # and ensure that they produce the same results
@@ -61,17 +61,17 @@ describe ActiveAdmin::Views::AttributesTable do
61
61
  let(:table) { instance_eval &table_decleration }
62
62
 
63
63
  it "should render a div wrapper with the class '.attributes_table'" do
64
- table.tag_name.should == 'div'
65
- table.attr(:class).should include('attributes_table')
64
+ expect(table.tag_name).to eq 'div'
65
+ expect(table.attr(:class)).to include('attributes_table')
66
66
  end
67
67
 
68
68
  it "should add id and type class" do
69
- table.class_names.should include("post")
70
- table.id.should == "attributes_table_post_1"
69
+ expect(table.class_names).to include("post")
70
+ expect(table.id).to eq "attributes_table_post_1"
71
71
  end
72
72
 
73
73
  it "should render 3 rows" do
74
- table.find_by_tag("tr").size.should == 3
74
+ expect(table.find_by_tag("tr").size).to eq 3
75
75
  end
76
76
 
77
77
  describe "rendering the rows" do
@@ -79,17 +79,16 @@ describe ActiveAdmin::Views::AttributesTable do
79
79
  ["Id" , "1"],
80
80
  ["Title" , "Hello World"],
81
81
  ["Body" , "<span class=\"empty\">Empty</span>"]
82
- ].each_with_index do |set, i|
83
- describe "for #{set[0]}" do
84
- let(:title){ set[0] }
85
- let(:content){ set[1] }
82
+ ].each_with_index do |(title, content), i|
83
+ describe "for #{title}" do
86
84
  let(:current_row){ table.find_by_tag("tr")[i] }
87
85
 
88
- it "should have the title '#{set[0]}'" do
89
- current_row.find_by_tag("th").first.content.should == title
86
+ it "should have the title '#{title}'" do
87
+ expect(current_row.find_by_tag("th").first.content).to eq title
90
88
  end
91
- it "should have the content '#{set[1]}'" do
92
- current_row.find_by_tag("td").first.content.chomp.strip.should == content
89
+
90
+ it "should have the content '#{content}'" do
91
+ expect(current_row.find_by_tag("td").first.content.chomp.strip).to eq content
93
92
  end
94
93
  end
95
94
  end
@@ -98,34 +97,176 @@ describe ActiveAdmin::Views::AttributesTable do
98
97
  end
99
98
  end # describe dsl styles
100
99
 
101
- it "should allow html options for the row itself" do
100
+ it "should add a class for each row based on the col name" do
102
101
  table = render_arbre_component(assigns) {
103
102
  attributes_table_for(post) do
104
- row("Wee", :class => "custom_row", :style => "custom_style") { }
103
+ row :title
104
+ row :created_at
105
105
  end
106
106
  }
107
- table.find_by_tag("tr").first.to_s.
108
- split("\n").first.lstrip.
109
- should == '<tr class="custom_row" style="custom_style">'
107
+ expect(table.find_by_tag("tr").first.to_s.
108
+ split("\n").first.lstrip).
109
+ to eq '<tr class="row row-title">'
110
+
111
+ expect(table.find_by_tag("tr").last.to_s.
112
+ split("\n").first.lstrip).
113
+ to eq '<tr class="row row-created_at">'
110
114
  end
111
115
 
112
- it "should allow html content inside the attributes table" do
116
+ it "should allow html options for the row itself" do
113
117
  table = render_arbre_component(assigns) {
114
118
  attributes_table_for(post) do
115
- row("ID"){ span(post.id, :class => 'id') }
119
+ row("Wee", class: "custom_row", style: "custom_style") { }
116
120
  end
117
121
  }
118
- table.find_by_tag("td").first.content.chomp.strip.should == "<span class=\"id\">1</span>"
122
+ expect(table.find_by_tag("tr").first.to_s.split("\n").first.lstrip).
123
+ to eq '<tr class="row custom_row" style="custom_style">'
119
124
  end
120
125
 
121
- it "should check if an association exists when an attribute has id in it" do
122
- post.author = User.new :username => 'john_doe', :first_name => 'John', :last_name => 'Doe'
126
+ it "should allow html content inside the attributes table" do
123
127
  table = render_arbre_component(assigns) {
124
- attributes_table_for post, :author_id
128
+ attributes_table_for(post) do
129
+ row("ID"){ span(post.id, class: 'id') }
130
+ end
125
131
  }
126
- table.find_by_tag('td').first.content.should == 'John Doe'
132
+ expect(table.find_by_tag("td").first.content.chomp.strip).to eq "<span class=\"id\">1</span>"
133
+ end
134
+
135
+ context 'an attribute ending in _id' do
136
+ before do
137
+ post.foo_id = 23
138
+ post.author = User.new username: 'john_doe', first_name: 'John', last_name: 'Doe'
139
+ end
140
+ it 'should call the association if one exists' do
141
+ table = render_arbre_component assigns do
142
+ attributes_table_for post, :author_id
143
+ end
144
+ expect(table.find_by_tag('th').first.content).to eq 'Author'
145
+ expect(table.find_by_tag('td').first.content).to eq 'John Doe'
146
+ end
147
+ it 'should not attempt to call a nonexistant association' do
148
+ table = render_arbre_component assigns do
149
+ attributes_table_for post, :foo_id
150
+ end
151
+ expect(table.find_by_tag('th').first.content).to eq 'Foo'
152
+ expect(table.find_by_tag('td').first.content).to eq '23'
153
+ end
154
+ end
155
+
156
+ context "with a collection" do
157
+ let(:posts) do
158
+ [Post.new(title: "Hello World", id: 1), Post.new(title: "Multi Column", id: 2)].each_with_index do |post, index|
159
+ allow(post).to receive(:id).and_return(index + 1)
160
+ allow(post).to receive(:new_record?).and_return(false)
161
+ end
162
+ end
163
+
164
+ let(:assigns) { { posts: posts } }
165
+
166
+ let(:table) do
167
+ render_arbre_component(assigns) do
168
+ attributes_table_for posts, :id, :title
169
+ end
170
+ end
171
+
172
+ it "does not set id on the table" do
173
+ expect(table.attr(:id)).to be_nil
174
+ end
175
+
176
+ context "colgroup" do
177
+ let(:cols) { table.find_by_tag "col" }
178
+
179
+ it "contains a col for each record (plus headers)" do
180
+ expect(cols.size).to eq (2 + 1)
181
+ end
182
+
183
+ it "assigns an id to each col" do
184
+ cols[1..-1].each_with_index do |col, index|
185
+ expect(col.id).to eq "attributes_table_post_#{index + 1}"
186
+ end
187
+ end
188
+
189
+ it "assigns a class to each col" do
190
+ cols[1..-1].each_with_index do |col, index|
191
+ expect(col.class_names).to include("post")
192
+ end
193
+ end
194
+
195
+ it "assigns alternation classes to each col" do
196
+ cols[1..-1].each_with_index do |col, index|
197
+ expect(col.class_names).to include(["even", "odd"][index % 2])
198
+ end
199
+ end
200
+ end
201
+
202
+ context "when rendering the rows" do
203
+ it "should contain 3 columns" do
204
+ expect(table.find_by_tag("tr").first.children.size).to eq 3
205
+ end
206
+
207
+ [
208
+ ["Id" , "1", "2"],
209
+ ["Title", "Hello World", "Multi Column"],
210
+ ].each_with_index do |set, i|
211
+ describe "for #{set[0]}" do
212
+ let(:title){ set[0] }
213
+ let(:content){ set[1] }
214
+ let(:current_row){ table.find_by_tag("tr")[i] }
215
+
216
+ it "should have the title '#{set[0]}'" do
217
+ expect(current_row.find_by_tag("th").first.content).to eq title
218
+ end
219
+
220
+ context "with defined attribute name translation" do
221
+ it "should have the translated attribute name in the title" do
222
+ with_translation activerecord: {attributes: {post: {title: 'Translated Title', id: 'Translated Id'}}} do
223
+ expect(current_row.find_by_tag("th").first.content).to eq "Translated #{title}"
224
+ end
225
+ end
226
+ end
227
+
228
+ set[1..-1].each_with_index do |content, index|
229
+ it "column #{index} should have the content '#{content}'" do
230
+ expect(current_row.find_by_tag("td")[index].content.chomp.strip).to eq content
231
+ end
232
+ end
233
+ end
234
+ end
235
+ end # describe rendering rows
236
+ end # with a collection
237
+
238
+
239
+ context "when using a single Hash" do
240
+ let(:table) do
241
+ render_arbre_component nil, helpers do
242
+ attributes_table_for foo: 1, bar: 2 do
243
+ row :foo
244
+ row :bar
245
+ end
246
+ end
247
+ end
248
+ it "should render" do
249
+ expect(table.find_by_tag("th")[0].content).to eq "Foo"
250
+ expect(table.find_by_tag("th")[1].content).to eq "Bar"
251
+ expect(table.find_by_tag("td")[0].content).to eq "1"
252
+ expect(table.find_by_tag("td")[1].content).to eq "2"
253
+ end
127
254
  end
128
255
 
256
+ context "when using an Array of Hashes" do
257
+ let(:table) do
258
+ render_arbre_component nil, helpers do
259
+ attributes_table_for [{foo: 1},{foo: 2}] do
260
+ row :foo
261
+ end
262
+ end
263
+ end
264
+ it "should render" do
265
+ expect(table.find_by_tag("th")[0].content).to eq "Foo"
266
+ expect(table.find_by_tag("td")[0].content).to eq "1"
267
+ expect(table.find_by_tag("td")[1].content).to eq "2"
268
+ end
269
+ end
129
270
  end
130
271
 
131
272
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
  require 'active_admin/batch_actions/views/batch_action_popover'
3
3
 
4
4
  describe ActiveAdmin::BatchActions::BatchActionPopover do
@@ -14,7 +14,7 @@ describe ActiveAdmin::BatchActions::BatchActionPopover do
14
14
  end
15
15
 
16
16
  it "should have an id" do
17
- the_popover.id.should == "batch_actions_popover"
17
+ expect(the_popover.id).to eq "batch_actions_popover"
18
18
  end
19
19
 
20
20
  describe "the action list" do
@@ -22,11 +22,25 @@ describe ActiveAdmin::BatchActions::BatchActionPopover do
22
22
  the_popover.find_by_class("popover_contents").first
23
23
  end
24
24
 
25
- its(:tag_name) { should eql("ul") }
25
+ describe '#tag_name' do
26
+ subject { super().tag_name }
27
+ it { is_expected.to eql("ul") }
28
+ end
29
+
30
+ describe '#content' do
31
+ subject { super().content }
32
+ it{ is_expected.to include("class=\"batch_action\" data-action=\"action_1\"") }
33
+ end
26
34
 
27
- its(:content){ should include("<li><a href=\"#\" class=\"batch_action\" data-action=\"action_1\">Action 1 Selected</a></li>") }
28
- its(:content){ should include("<li><a href=\"#\" class=\"batch_action\" data-action=\"action_2\">Action 2 Selected</a></li>") }
29
- its(:content){ should include("<li><a href=\"#\" class=\"batch_action\" data-action=\"action_3\">Action 3 Selected</a></li>") }
35
+ describe '#content' do
36
+ subject { super().content }
37
+ it{ is_expected.to include("class=\"batch_action\" data-action=\"action_2\"") }
38
+ end
39
+
40
+ describe '#content' do
41
+ subject { super().content }
42
+ it{ is_expected.to include("class=\"batch_action\" data-action=\"action_3\"") }
43
+ end
30
44
 
31
45
  end
32
46
 
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Views::BlankSlate do
4
4
 
@@ -9,9 +9,19 @@ describe ActiveAdmin::Views::BlankSlate do
9
9
  end
10
10
  end
11
11
 
12
- its(:tag_name) { should eql 'div' }
13
- its(:class_list) { should include('blank_slate_container') }
12
+ describe '#tag_name' do
13
+ subject { super().tag_name }
14
+ it { is_expected.to eql 'div' }
15
+ end
16
+
17
+ describe '#class_list' do
18
+ subject { super().class_list }
19
+ it { is_expected.to include('blank_slate_container') }
20
+ end
14
21
 
15
- its(:content) { should include '<span class="blank_slate">There are no Posts yet. <a href="/posts/new">Create one</a></span>' }
22
+ describe '#content' do
23
+ subject { super().content }
24
+ it { is_expected.to include '<span class="blank_slate">There are no Posts yet. <a href="/posts/new">Create one</a></span>' }
25
+ end
16
26
  end
17
27
  end
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require 'rails_helper'
2
2
 
3
3
  describe ActiveAdmin::Views::Columns do
4
4
 
@@ -12,16 +12,16 @@ describe ActiveAdmin::Views::Columns do
12
12
  end
13
13
 
14
14
  it "should have the class .columns" do
15
- cols.class_list.should include("columns")
15
+ expect(cols.class_list).to include("columns")
16
16
  end
17
17
 
18
18
  it "should have one column" do
19
- cols.children.size.should == 1
20
- cols.children.first.class_list.should include("column")
19
+ expect(cols.children.size).to eq 1
20
+ expect(cols.children.first.class_list).to include("column")
21
21
  end
22
22
 
23
23
  it "should have one column with the width 100.0%" do
24
- cols.children.first.attr(:style).should include("width: 100.0%")
24
+ expect(cols.children.first.attr(:style)).to include("width: 100.0%")
25
25
  end
26
26
  end
27
27
 
@@ -36,15 +36,15 @@ describe ActiveAdmin::Views::Columns do
36
36
  end
37
37
 
38
38
  it "should have two columns" do
39
- cols.children.size.should == 2
39
+ expect(cols.children.size).to eq 2
40
40
  end
41
41
 
42
42
  it "should have a first column with width 49% and margin 2%" do
43
- cols.children.first.attr(:style).should == "width: 49.0%; margin-right: 2%;"
43
+ expect(cols.children.first.attr(:style)).to eq "width: 49.0%; margin-right: 2%;"
44
44
  end
45
45
 
46
46
  it "should have a second column with width 49% and no right margin" do
47
- cols.children.last.attr(:style).should == "width: 49.0%;"
47
+ expect(cols.children.last.attr(:style)).to eq "width: 49.0%;"
48
48
  end
49
49
  end
50
50
 
@@ -61,18 +61,18 @@ describe ActiveAdmin::Views::Columns do
61
61
  end
62
62
 
63
63
  it "should have four columns" do
64
- cols.children.size.should == 4
64
+ expect(cols.children.size).to eq 4
65
65
  end
66
66
 
67
67
 
68
68
  (0..2).to_a.each do |index|
69
69
  it "should have column #{index + 1} with width 49% and margin 2%" do
70
- cols.children[index].attr(:style).should == "width: 23.5%; margin-right: 2%;"
70
+ expect(cols.children[index].attr(:style)).to eq "width: 23.5%; margin-right: 2%;"
71
71
  end
72
72
  end
73
73
 
74
74
  it "should have column 4 with width 49% and no margin" do
75
- cols.children[3].attr(:style).should == "width: 23.5%;"
75
+ expect(cols.children[3].attr(:style)).to eq "width: 23.5%;"
76
76
  end
77
77
  end
78
78
 
@@ -81,7 +81,7 @@ describe ActiveAdmin::Views::Columns do
81
81
  let(:cols) do
82
82
  render_arbre_component do
83
83
  columns do
84
- column(:span => 2){ "Hello World" }
84
+ column(span: 2){ "Hello World" }
85
85
  column(){ "Hello World" }
86
86
  column(){ "Hello World" }
87
87
  end
@@ -89,11 +89,11 @@ describe ActiveAdmin::Views::Columns do
89
89
  end
90
90
 
91
91
  it "should set the span when declared" do
92
- cols.children.first.attr(:style).should == "width: 49.0%; margin-right: 2%;"
92
+ expect(cols.children.first.attr(:style)).to eq "width: 49.0%; margin-right: 2%;"
93
93
  end
94
94
 
95
95
  it "should default to 1 if not passed in" do
96
- cols.children.last.attr(:style).should == "width: 23.5%;"
96
+ expect(cols.children.last.attr(:style)).to eq "width: 23.5%;"
97
97
  end
98
98
  end
99
99
 
@@ -102,18 +102,33 @@ describe ActiveAdmin::Views::Columns do
102
102
  let(:cols) do
103
103
  render_arbre_component do
104
104
  columns do
105
- column(:max_width => "100px"){ "Hello World" }
105
+ column(max_width: "100px"){ "Hello World" }
106
106
  column(){ "Hello World" }
107
107
  end
108
108
  end
109
109
  end
110
110
 
111
111
  it "should set the max with if passed in" do
112
- cols.children.first.attr(:style).should == "width: 49.0%; max-width: 100px; margin-right: 2%;"
112
+ expect(cols.children.first.attr(:style)).to eq "width: 49.0%; max-width: 100px; margin-right: 2%;"
113
113
  end
114
114
 
115
- it "should omit the value if not presetn" do
116
- cols.children.last.attr(:style).should == "width: 49.0%;"
115
+ it "should omit the value if not present" do
116
+ expect(cols.children.last.attr(:style)).to eq "width: 49.0%;"
117
+ end
118
+
119
+ context "when passed an integer value" do
120
+ let(:cols) do
121
+ render_arbre_component do
122
+ columns do
123
+ column(max_width: 100){ "Hello World" }
124
+ column(){ "Hello World" }
125
+ end
126
+ end
127
+ end
128
+
129
+ it "should be treated as pixels" do
130
+ expect(cols.children.first.attr(:style)).to eq "width: 49.0%; max-width: 100px; margin-right: 2%;"
131
+ end
117
132
  end
118
133
 
119
134
  end
@@ -123,18 +138,33 @@ describe ActiveAdmin::Views::Columns do
123
138
  let(:cols) do
124
139
  render_arbre_component do
125
140
  columns do
126
- column(:min_width => "100px"){ "Hello World" }
141
+ column(min_width: "100px"){ "Hello World" }
127
142
  column(){ "Hello World" }
128
143
  end
129
144
  end
130
145
  end
131
146
 
132
147
  it "should set the min with if passed in" do
133
- cols.children.first.attr(:style).should == "width: 49.0%; min-width: 100px; margin-right: 2%;"
148
+ expect(cols.children.first.attr(:style)).to eq "width: 49.0%; min-width: 100px; margin-right: 2%;"
134
149
  end
135
150
 
136
- it "should omit the value if not presetn" do
137
- cols.children.last.attr(:style).should == "width: 49.0%;"
151
+ it "should omit the value if not present" do
152
+ expect(cols.children.last.attr(:style)).to eq "width: 49.0%;"
153
+ end
154
+
155
+ context "when passed an integer value" do
156
+ let(:cols) do
157
+ render_arbre_component do
158
+ columns do
159
+ column(min_width: 100){ "Hello World" }
160
+ column(){ "Hello World" }
161
+ end
162
+ end
163
+ end
164
+
165
+ it "should be treated as pixels" do
166
+ expect(cols.children.first.attr(:style)).to eq "width: 49.0%; min-width: 100px; margin-right: 2%;"
167
+ end
138
168
  end
139
169
 
140
170
  end