activeadmin 1.1.0 → 2.12.0

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 (580) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +784 -111
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +83 -61
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +524 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +3 -25
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +25 -123
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +2 -2
  13. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  14. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  15. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  16. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  17. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  18. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  19. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  20. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  21. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  23. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  25. data/app/javascript/active_admin/base.js +28 -0
  26. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  27. data/app/javascript/active_admin/ext/jquery.js +9 -0
  28. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  29. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  30. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  31. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  32. data/app/javascript/active_admin/initializers/filters.js +10 -0
  33. data/app/javascript/active_admin/initializers/has-many.js +98 -0
  34. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  35. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  36. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  37. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  38. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  39. data/app/javascript/active_admin/lib/filters.js +39 -0
  40. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  41. data/app/javascript/active_admin/lib/per-page.js +38 -0
  42. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  43. data/app/javascript/active_admin/lib/utils.js +40 -0
  44. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  45. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  46. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  47. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  48. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  49. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  50. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  51. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  52. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  53. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  54. data/app/views/active_admin/page/index.html.arb +1 -0
  55. data/app/views/active_admin/resource/edit.html.arb +1 -0
  56. data/app/views/active_admin/resource/index.html.arb +1 -0
  57. data/app/views/active_admin/resource/new.html.arb +1 -0
  58. data/app/views/active_admin/resource/show.html.arb +1 -0
  59. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  60. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  61. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  63. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  64. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  65. data/app/views/layouts/active_admin.html.arb +1 -0
  66. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  67. data/config/locales/ar.yml +9 -8
  68. data/config/locales/az.yml +138 -0
  69. data/config/locales/bg.yml +1 -1
  70. data/config/locales/bs.yml +1 -0
  71. data/config/locales/ca.yml +1 -1
  72. data/config/locales/cs.yml +1 -0
  73. data/config/locales/da.yml +1 -0
  74. data/config/locales/de-CH.yml +1 -0
  75. data/config/locales/de.yml +29 -0
  76. data/config/locales/el.yml +1 -0
  77. data/config/locales/en-CA.yml +4 -3
  78. data/config/locales/en-GB.yml +4 -3
  79. data/config/locales/en.yml +24 -4
  80. data/config/locales/eo.yml +145 -0
  81. data/config/locales/es-MX.yml +3 -1
  82. data/config/locales/es.yml +26 -6
  83. data/config/locales/fa.yml +1 -0
  84. data/config/locales/fi.yml +2 -1
  85. data/config/locales/fr.yml +6 -5
  86. data/config/locales/he.yml +1 -1
  87. data/config/locales/hr.yml +1 -0
  88. data/config/locales/hu.yml +5 -0
  89. data/config/locales/id.yml +1 -0
  90. data/config/locales/it.yml +31 -3
  91. data/config/locales/ja.yml +8 -2
  92. data/config/locales/ko.yml +2 -1
  93. data/config/locales/lt.yml +3 -2
  94. data/config/locales/lv.yml +3 -2
  95. data/config/locales/mk.yml +134 -0
  96. data/config/locales/nb.yml +16 -5
  97. data/config/locales/nl.yml +13 -1
  98. data/config/locales/pl.yml +72 -3
  99. data/config/locales/pt-BR.yml +9 -0
  100. data/config/locales/pt-PT.yml +1 -0
  101. data/config/locales/ro.yml +4 -2
  102. data/config/locales/ru.yml +3 -0
  103. data/config/locales/sk.yml +60 -0
  104. data/config/locales/sv-SE.yml +3 -0
  105. data/config/locales/tr.yml +10 -0
  106. data/config/locales/uk.yml +3 -0
  107. data/config/locales/vi.yml +53 -10
  108. data/config/locales/zh-CN.yml +34 -5
  109. data/config/locales/zh-TW.yml +1 -0
  110. data/docs/.gitignore +1 -0
  111. data/docs/0-installation.md +29 -5
  112. data/docs/1-general-configuration.md +36 -1
  113. data/docs/10-custom-pages.md +14 -0
  114. data/docs/11-decorators.md +16 -5
  115. data/docs/12-arbre-components.md +41 -1
  116. data/docs/13-authorization-adapter.md +41 -22
  117. data/docs/2-resource-customization.md +20 -6
  118. data/docs/3-index-pages/custom-index.md +1 -1
  119. data/docs/3-index-pages/index-as-blog.md +1 -1
  120. data/docs/3-index-pages/index-as-table.md +12 -5
  121. data/docs/3-index-pages.md +18 -1
  122. data/docs/5-forms.md +23 -4
  123. data/docs/6-show-pages.md +12 -0
  124. data/docs/8-custom-actions.md +12 -1
  125. data/docs/9-batch-actions.md +2 -2
  126. data/docs/CNAME +1 -1
  127. data/docs/Gemfile +4 -2
  128. data/docs/Gemfile.lock +283 -0
  129. data/docs/_config.yml +3 -1
  130. data/docs/_includes/toc.html +1 -1
  131. data/docs/_includes/top-menu.html +9 -1
  132. data/docs/documentation.md +2 -2
  133. data/docs/images/tidelift.svg +14 -0
  134. data/docs/index.html +110 -9
  135. data/docs/stylesheets/main.css +55 -2
  136. data/lib/active_admin/abstract_view_factory.rb +14 -51
  137. data/lib/active_admin/application.rb +65 -172
  138. data/lib/active_admin/application_settings.rb +43 -0
  139. data/lib/active_admin/asset_registration.rb +1 -8
  140. data/lib/active_admin/authorization_adapter.rb +4 -3
  141. data/lib/active_admin/base_controller/authorization.rb +18 -18
  142. data/lib/active_admin/base_controller/menu.rb +1 -0
  143. data/lib/active_admin/base_controller.rb +12 -11
  144. data/lib/active_admin/batch_actions/controller.rb +6 -5
  145. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  146. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  147. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  148. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  149. data/lib/active_admin/batch_actions.rb +1 -0
  150. data/lib/active_admin/callbacks.rb +2 -1
  151. data/lib/active_admin/cancan_adapter.rb +2 -1
  152. data/lib/active_admin/collection_decorator.rb +32 -0
  153. data/lib/active_admin/component.rb +1 -0
  154. data/lib/active_admin/controller_action.rb +3 -1
  155. data/lib/active_admin/csv_builder.rb +15 -21
  156. data/lib/active_admin/dependency.rb +14 -77
  157. data/lib/active_admin/deprecation.rb +1 -25
  158. data/lib/active_admin/devise.rb +16 -5
  159. data/lib/active_admin/dsl.rb +3 -9
  160. data/lib/active_admin/dynamic_setting.rb +39 -0
  161. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  162. data/lib/active_admin/engine.rb +16 -7
  163. data/lib/active_admin/error.rb +5 -4
  164. data/lib/active_admin/filters/active.rb +2 -1
  165. data/lib/active_admin/filters/active_filter.rb +52 -15
  166. data/lib/active_admin/filters/active_sidebar.rb +8 -30
  167. data/lib/active_admin/filters/dsl.rb +1 -0
  168. data/lib/active_admin/filters/forms.rb +13 -9
  169. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  170. data/lib/active_admin/filters/resource_extension.rb +30 -5
  171. data/lib/active_admin/filters.rb +8 -7
  172. data/lib/active_admin/form_builder.rb +110 -70
  173. data/lib/active_admin/generators/boilerplate.rb +13 -4
  174. data/lib/active_admin/helpers/collection.rb +2 -0
  175. data/lib/active_admin/helpers/i18n.rb +1 -0
  176. data/lib/active_admin/helpers/optional_display.rb +3 -2
  177. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  178. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  179. data/lib/active_admin/inputs/datepicker_input.rb +10 -2
  180. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  181. data/lib/active_admin/inputs/filters/base.rb +2 -1
  182. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  183. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  184. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  185. data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
  186. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  187. data/lib/active_admin/inputs/filters/select_input.rb +8 -3
  188. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  189. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  190. data/lib/active_admin/inputs.rb +1 -0
  191. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  192. data/lib/active_admin/localizers.rb +2 -1
  193. data/lib/active_admin/menu.rb +9 -11
  194. data/lib/active_admin/menu_collection.rb +1 -0
  195. data/lib/active_admin/menu_item.rb +11 -38
  196. data/lib/active_admin/namespace.rb +32 -19
  197. data/lib/active_admin/namespace_settings.rb +127 -0
  198. data/lib/active_admin/order_clause.rb +4 -3
  199. data/lib/active_admin/orm/active_record/comments/comment.rb +5 -4
  200. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  201. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  202. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  203. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +36 -25
  204. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  205. data/lib/active_admin/orm/active_record/comments.rb +35 -23
  206. data/lib/active_admin/orm/active_record.rb +2 -1
  207. data/lib/active_admin/orm/mongoid.rb +1 -0
  208. data/lib/active_admin/page.rb +2 -1
  209. data/lib/active_admin/page_controller.rb +1 -0
  210. data/lib/active_admin/page_dsl.rb +2 -1
  211. data/lib/active_admin/page_presenter.rb +3 -1
  212. data/lib/active_admin/pundit_adapter.rb +61 -12
  213. data/lib/active_admin/resource/action_items.rb +12 -6
  214. data/lib/active_admin/resource/attributes.rb +9 -5
  215. data/lib/active_admin/resource/belongs_to.rb +9 -3
  216. data/lib/active_admin/resource/controllers.rb +2 -1
  217. data/lib/active_admin/resource/includes.rb +1 -0
  218. data/lib/active_admin/resource/menu.rb +6 -5
  219. data/lib/active_admin/resource/model.rb +16 -0
  220. data/lib/active_admin/resource/naming.rb +6 -5
  221. data/lib/active_admin/resource/ordering.rb +1 -0
  222. data/lib/active_admin/resource/page_presenters.rb +1 -0
  223. data/lib/active_admin/resource/pagination.rb +1 -0
  224. data/lib/active_admin/resource/routes.rb +26 -14
  225. data/lib/active_admin/resource/scope_to.rb +8 -7
  226. data/lib/active_admin/resource/scopes.rb +4 -3
  227. data/lib/active_admin/resource/sidebars.rb +3 -2
  228. data/lib/active_admin/resource.rb +37 -22
  229. data/lib/active_admin/resource_collection.rb +3 -2
  230. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  231. data/lib/active_admin/resource_controller/data_access.rb +35 -5
  232. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  233. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  234. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  235. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  236. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  237. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  238. data/lib/active_admin/resource_controller.rb +14 -10
  239. data/lib/active_admin/resource_dsl.rb +17 -27
  240. data/lib/active_admin/router.rb +91 -84
  241. data/lib/active_admin/scope.rb +20 -11
  242. data/lib/active_admin/settings_node.rb +20 -0
  243. data/lib/active_admin/sidebar_section.rb +4 -1
  244. data/lib/active_admin/version.rb +2 -1
  245. data/lib/active_admin/view_factory.rb +18 -17
  246. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  247. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  248. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  249. data/lib/active_admin/view_helpers/display_helper.rb +25 -8
  250. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  251. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  252. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  253. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  254. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  255. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  256. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  257. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  258. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  259. data/lib/active_admin/view_helpers.rb +2 -1
  260. data/lib/active_admin/views/action_items.rb +1 -0
  261. data/lib/active_admin/views/components/active_admin_form.rb +14 -8
  262. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  263. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  264. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  265. data/lib/active_admin/views/components/columns.rb +1 -0
  266. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  267. data/lib/active_admin/views/components/index_list.rb +4 -3
  268. data/lib/active_admin/views/components/menu.rb +33 -0
  269. data/lib/active_admin/views/components/menu_item.rb +59 -0
  270. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  271. data/lib/active_admin/views/components/panel.rb +2 -1
  272. data/lib/active_admin/views/components/scopes.rb +18 -8
  273. data/lib/active_admin/views/components/sidebar.rb +14 -0
  274. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  275. data/lib/active_admin/views/components/site_title.rb +7 -7
  276. data/lib/active_admin/views/components/status_tag.rb +14 -26
  277. data/lib/active_admin/views/components/table_for.rb +22 -29
  278. data/lib/active_admin/views/components/tabs.rb +18 -5
  279. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  280. data/lib/active_admin/views/footer.rb +6 -8
  281. data/lib/active_admin/views/header.rb +4 -15
  282. data/lib/active_admin/views/index_as_block.rb +1 -0
  283. data/lib/active_admin/views/index_as_blog.rb +3 -2
  284. data/lib/active_admin/views/index_as_grid.rb +27 -26
  285. data/lib/active_admin/views/index_as_table.rb +34 -25
  286. data/lib/active_admin/views/pages/base.rb +44 -60
  287. data/lib/active_admin/views/pages/form.rb +1 -0
  288. data/lib/active_admin/views/pages/index.rb +16 -13
  289. data/lib/active_admin/views/pages/layout.rb +1 -0
  290. data/lib/active_admin/views/pages/page.rb +1 -0
  291. data/lib/active_admin/views/pages/show.rb +1 -0
  292. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  293. data/lib/active_admin/views/title_bar.rb +2 -1
  294. data/lib/active_admin/views.rb +2 -1
  295. data/lib/active_admin.rb +68 -63
  296. data/lib/activeadmin.rb +2 -1
  297. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  298. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  299. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  300. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  301. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  302. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  303. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  304. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  305. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  306. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  307. data/lib/generators/active_admin/resource/resource_generator.rb +5 -4
  308. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  309. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  310. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  311. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  312. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  313. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  314. data/lib/ransack_ext.rb +10 -9
  315. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  316. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  317. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  318. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  319. metadata +124 -557
  320. data/.github/ISSUE_TEMPLATE.md +0 -20
  321. data/.gitignore +0 -49
  322. data/.mdlrc +0 -1
  323. data/.rubocop.yml +0 -76
  324. data/.simplecov +0 -13
  325. data/.travis.yml +0 -51
  326. data/.yardopts +0 -7
  327. data/Gemfile +0 -58
  328. data/Rakefile +0 -54
  329. data/activeadmin.gemspec +0 -32
  330. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  331. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  332. data/app/assets/images/active_admin/orderable.png +0 -0
  333. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  334. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  335. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  336. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  337. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  338. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  339. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  340. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  341. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  342. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  343. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  344. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  345. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  346. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  347. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  348. data/codecov.yml +0 -25
  349. data/config/i18n-tasks.yml +0 -26
  350. data/config/mdl_style.rb +0 -9
  351. data/cucumber.yml +0 -3
  352. data/features/action_item.feature +0 -73
  353. data/features/authorization.feature +0 -64
  354. data/features/authorization_cancan.feature +0 -52
  355. data/features/authorization_pundit.feature +0 -37
  356. data/features/belongs_to.feature +0 -124
  357. data/features/breadcrumb.feature +0 -75
  358. data/features/comments/commenting.feature +0 -178
  359. data/features/comments/viewing_index.feature +0 -19
  360. data/features/create_another.feature +0 -55
  361. data/features/dashboard.feature +0 -16
  362. data/features/decorators.feature +0 -43
  363. data/features/development_reloading.feature +0 -28
  364. data/features/edit_page.feature +0 -116
  365. data/features/favicon.feature +0 -20
  366. data/features/first_boot.feature +0 -16
  367. data/features/footer.feature +0 -28
  368. data/features/global_navigation.feature +0 -29
  369. data/features/i18n.feature +0 -55
  370. data/features/index/batch_actions.feature +0 -218
  371. data/features/index/filters.feature +0 -239
  372. data/features/index/format_as_csv.feature +0 -220
  373. data/features/index/formats.feature +0 -88
  374. data/features/index/index_as_block.feature +0 -15
  375. data/features/index/index_as_blog.feature +0 -69
  376. data/features/index/index_as_grid.feature +0 -45
  377. data/features/index/index_as_table.feature +0 -291
  378. data/features/index/index_blank_slate.feature +0 -83
  379. data/features/index/index_parameters.feature +0 -75
  380. data/features/index/index_scope_to.feature +0 -56
  381. data/features/index/index_scopes.feature +0 -285
  382. data/features/index/page_title.feature +0 -41
  383. data/features/index/pagination.feature +0 -63
  384. data/features/index/switch_index_view.feature +0 -73
  385. data/features/menu.feature +0 -72
  386. data/features/meta_tags.feature +0 -21
  387. data/features/new_page.feature +0 -107
  388. data/features/registering_assets.feature +0 -38
  389. data/features/registering_pages.feature +0 -237
  390. data/features/registering_resources.feature +0 -33
  391. data/features/renamed_resource.feature +0 -30
  392. data/features/root_to.feature +0 -17
  393. data/features/show/attributes_table_title.feature +0 -54
  394. data/features/show/columns.feature +0 -40
  395. data/features/show/default_content.feature +0 -44
  396. data/features/show/page_title.feature +0 -58
  397. data/features/show/tabs.feature +0 -33
  398. data/features/sidebar_sections.feature +0 -210
  399. data/features/site_title.feature +0 -47
  400. data/features/specifying_actions.feature +0 -118
  401. data/features/step_definitions/action_item_steps.rb +0 -7
  402. data/features/step_definitions/action_link_steps.rb +0 -19
  403. data/features/step_definitions/additional_web_steps.rb +0 -81
  404. data/features/step_definitions/asset_steps.rb +0 -15
  405. data/features/step_definitions/attribute_steps.rb +0 -18
  406. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  407. data/features/step_definitions/batch_action_steps.rb +0 -81
  408. data/features/step_definitions/blog_steps.rb +0 -3
  409. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  410. data/features/step_definitions/column_steps.rb +0 -8
  411. data/features/step_definitions/comment_steps.rb +0 -32
  412. data/features/step_definitions/configuration_steps.rb +0 -100
  413. data/features/step_definitions/dashboard_steps.rb +0 -15
  414. data/features/step_definitions/factory_steps.rb +0 -35
  415. data/features/step_definitions/filter_steps.rb +0 -48
  416. data/features/step_definitions/flash_steps.rb +0 -11
  417. data/features/step_definitions/footer_steps.rb +0 -11
  418. data/features/step_definitions/format_steps.rb +0 -56
  419. data/features/step_definitions/i18n_steps.rb +0 -11
  420. data/features/step_definitions/index_scope_steps.rb +0 -29
  421. data/features/step_definitions/index_views_steps.rb +0 -3
  422. data/features/step_definitions/layout_steps.rb +0 -3
  423. data/features/step_definitions/member_link_steps.rb +0 -7
  424. data/features/step_definitions/menu_steps.rb +0 -11
  425. data/features/step_definitions/meta_tag_steps.rb +0 -3
  426. data/features/step_definitions/pagination_steps.rb +0 -15
  427. data/features/step_definitions/sidebar_steps.rb +0 -11
  428. data/features/step_definitions/site_title_steps.rb +0 -17
  429. data/features/step_definitions/tab_steps.rb +0 -8
  430. data/features/step_definitions/table_steps.rb +0 -116
  431. data/features/step_definitions/user_steps.rb +0 -52
  432. data/features/step_definitions/web_steps.rb +0 -86
  433. data/features/sti_resource.feature +0 -65
  434. data/features/strong_parameters.feature +0 -69
  435. data/features/support/env.rb +0 -122
  436. data/features/support/paths.rb +0 -73
  437. data/features/support/regular_env.rb +0 -7
  438. data/features/support/reload_env.rb +0 -7
  439. data/features/support/selectors.rb +0 -45
  440. data/features/users/logging_in.feature +0 -36
  441. data/features/users/logging_out.feature +0 -13
  442. data/features/users/resetting_password.feature +0 -34
  443. data/gemfiles/rails_42.gemfile +0 -10
  444. data/gemfiles/rails_50.gemfile +0 -10
  445. data/gemfiles/rails_51.gemfile +0 -10
  446. data/lib/active_admin/event.rb +0 -24
  447. data/lib/active_admin/helpers/settings.rb +0 -114
  448. data/lib/active_admin/reloader.rb +0 -25
  449. data/lib/bug_report_templates/active_admin_master.rb +0 -113
  450. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  451. data/spec/bug_report_templates_spec.rb +0 -26
  452. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  453. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  454. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  455. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  456. data/spec/javascripts/fixtures/flashes.html +0 -2
  457. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  458. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  459. data/spec/javascripts/support/jasmine.yml +0 -74
  460. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  461. data/spec/rails_helper.rb +0 -59
  462. data/spec/requests/default_namespace_spec.rb +0 -81
  463. data/spec/requests/memory_spec.rb +0 -25
  464. data/spec/requests/stylesheets_spec.rb +0 -18
  465. data/spec/spec_helper.rb +0 -1
  466. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  467. data/spec/support/active_admin_request_helpers.rb +0 -39
  468. data/spec/support/rails_template.rb +0 -150
  469. data/spec/support/rails_template_with_data.rb +0 -327
  470. data/spec/support/templates/admin/stores.rb +0 -7
  471. data/spec/support/templates/en.yml +0 -8
  472. data/spec/support/templates/manifest.js +0 -3
  473. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  474. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  475. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  476. data/spec/support/templates/policies/application_policy.rb +0 -44
  477. data/spec/support/templates/policies/category_policy.rb +0 -7
  478. data/spec/support/templates/policies/post_policy.rb +0 -15
  479. data/spec/support/templates/policies/store_policy.rb +0 -11
  480. data/spec/support/templates/policies/user_policy.rb +0 -11
  481. data/spec/support/templates/post_decorator.rb +0 -10
  482. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  483. data/spec/unit/action_builder_spec.rb +0 -125
  484. data/spec/unit/active_admin_spec.rb +0 -11
  485. data/spec/unit/application_spec.rb +0 -184
  486. data/spec/unit/asset_registration_spec.rb +0 -81
  487. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  488. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  489. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  490. data/spec/unit/auto_link_spec.rb +0 -93
  491. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  492. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  493. data/spec/unit/belongs_to_spec.rb +0 -76
  494. data/spec/unit/cancan_adapter_spec.rb +0 -43
  495. data/spec/unit/comments_spec.rb +0 -176
  496. data/spec/unit/component_spec.rb +0 -18
  497. data/spec/unit/config_shared_examples.rb +0 -59
  498. data/spec/unit/controller_filters_spec.rb +0 -41
  499. data/spec/unit/csv_builder_spec.rb +0 -304
  500. data/spec/unit/dependency_spec.rb +0 -135
  501. data/spec/unit/devise_spec.rb +0 -110
  502. data/spec/unit/dsl_spec.rb +0 -120
  503. data/spec/unit/filters/active_filter_spec.rb +0 -135
  504. data/spec/unit/filters/active_spec.rb +0 -24
  505. data/spec/unit/filters/filter_form_builder_spec.rb +0 -502
  506. data/spec/unit/filters/resource_spec.rb +0 -128
  507. data/spec/unit/form_builder_spec.rb +0 -990
  508. data/spec/unit/generators/install_spec.rb +0 -31
  509. data/spec/unit/helpers/collection_spec.rb +0 -68
  510. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  511. data/spec/unit/helpers/settings_spec.rb +0 -30
  512. data/spec/unit/i18n_spec.rb +0 -29
  513. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  514. data/spec/unit/menu_collection_spec.rb +0 -62
  515. data/spec/unit/menu_item_spec.rb +0 -141
  516. data/spec/unit/menu_spec.rb +0 -71
  517. data/spec/unit/namespace/authorization_spec.rb +0 -27
  518. data/spec/unit/namespace/register_page_spec.rb +0 -99
  519. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  520. data/spec/unit/namespace_spec.rb +0 -124
  521. data/spec/unit/order_clause_spec.rb +0 -81
  522. data/spec/unit/page_controller_spec.rb +0 -5
  523. data/spec/unit/page_spec.rb +0 -128
  524. data/spec/unit/pretty_format_spec.rb +0 -82
  525. data/spec/unit/pundit_adapter_spec.rb +0 -98
  526. data/spec/unit/resource/action_items_spec.rb +0 -69
  527. data/spec/unit/resource/attributes_spec.rb +0 -49
  528. data/spec/unit/resource/includes_spec.rb +0 -21
  529. data/spec/unit/resource/menu_spec.rb +0 -18
  530. data/spec/unit/resource/naming_spec.rb +0 -122
  531. data/spec/unit/resource/ordering_spec.rb +0 -35
  532. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  533. data/spec/unit/resource/pagination_spec.rb +0 -38
  534. data/spec/unit/resource/routes_spec.rb +0 -125
  535. data/spec/unit/resource/scopes_spec.rb +0 -50
  536. data/spec/unit/resource/sidebars_spec.rb +0 -43
  537. data/spec/unit/resource_collection_spec.rb +0 -175
  538. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  539. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  540. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  541. data/spec/unit/resource_controller_spec.rb +0 -273
  542. data/spec/unit/resource_registration_spec.rb +0 -61
  543. data/spec/unit/resource_spec.rb +0 -320
  544. data/spec/unit/routing_spec.rb +0 -211
  545. data/spec/unit/scope_spec.rb +0 -209
  546. data/spec/unit/settings_spec.rb +0 -117
  547. data/spec/unit/view_factory_spec.rb +0 -19
  548. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  549. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  550. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  551. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  552. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  553. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  554. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  555. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  556. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  557. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  558. data/spec/unit/views/components/columns_spec.rb +0 -187
  559. data/spec/unit/views/components/index_list_spec.rb +0 -49
  560. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  561. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  562. data/spec/unit/views/components/panel_spec.rb +0 -58
  563. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  564. data/spec/unit/views/components/site_title_spec.rb +0 -76
  565. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  566. data/spec/unit/views/components/table_for_spec.rb +0 -436
  567. data/spec/unit/views/components/tabs_spec.rb +0 -67
  568. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  569. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  570. data/spec/unit/views/pages/form_spec.rb +0 -54
  571. data/spec/unit/views/pages/index_spec.rb +0 -60
  572. data/spec/unit/views/pages/layout_spec.rb +0 -59
  573. data/spec/unit/views/pages/show_spec.rb +0 -32
  574. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  575. data/tasks/docs.rake +0 -64
  576. data/tasks/lint.rake +0 -21
  577. data/tasks/local.rake +0 -25
  578. data/tasks/parallel_tests.rake +0 -66
  579. data/tasks/test.rake +0 -29
  580. /data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +0 -0
@@ -1,304 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::CSVBuilder do
4
-
5
- describe '.default_for_resource using Post' do
6
- let(:application){ ActiveAdmin::Application.new }
7
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
8
- let(:resource){ ActiveAdmin::Resource.new(namespace, Post, {}) }
9
- let(:csv_builder) { ActiveAdmin::CSVBuilder.default_for_resource(resource).tap(&:exec_columns) }
10
-
11
- it 'returns a default csv_builder for Post' do
12
- expect(csv_builder).to be_a(ActiveAdmin::CSVBuilder)
13
- end
14
-
15
- it 'defines Id as the first column' do
16
- expect(csv_builder.columns.first.name).to eq 'Id'
17
- expect(csv_builder.columns.first.data).to eq :id
18
- end
19
-
20
- it "has Post's content_columns" do
21
- csv_builder.columns[1..-1].each_with_index do |column, index|
22
- expect(column.name).to eq resource.content_columns[index].to_s.humanize
23
- expect(column.data).to eq resource.content_columns[index]
24
- end
25
- end
26
-
27
- context 'when column has a localized name' do
28
- let(:localized_name) { 'Titulo' }
29
-
30
- before do
31
- allow(Post).to receive(:human_attribute_name).and_call_original
32
- allow(Post).to receive(:human_attribute_name).with(:title){ localized_name }
33
- end
34
-
35
- it 'gets name from I18n' do
36
- title_index = resource.content_columns.index(:title) + 1 # First col is always id
37
- expect(csv_builder.columns[title_index].name).to eq localized_name
38
- end
39
- end
40
- end
41
-
42
- context 'when empty' do
43
- let(:builder){ ActiveAdmin::CSVBuilder.new.tap(&:exec_columns) }
44
-
45
- it "should have no columns" do
46
- expect(builder.columns).to eq []
47
- end
48
- end
49
-
50
- context "with a symbol column (:title)" do
51
- let(:builder) do
52
- ActiveAdmin::CSVBuilder.new do
53
- column :title
54
- end.tap(&:exec_columns)
55
- end
56
-
57
- it "should have one column" do
58
- expect(builder.columns.size).to eq 1
59
- end
60
-
61
- describe "the column" do
62
- let(:column){ builder.columns.first }
63
-
64
- it "should have a name of 'Title'" do
65
- expect(column.name).to eq "Title"
66
- end
67
-
68
- it "should have the data :title" do
69
- expect(column.data).to eq :title
70
- end
71
- end
72
- end
73
-
74
- context "with a block and title" do
75
- let(:builder) do
76
- ActiveAdmin::CSVBuilder.new do
77
- column "My title" do
78
- # nothing
79
- end
80
- end.tap(&:exec_columns)
81
- end
82
-
83
- it "should have one column" do
84
- expect(builder.columns.size).to eq 1
85
- end
86
-
87
- describe "the column" do
88
- let(:column){ builder.columns.first }
89
-
90
- it "should have a name of 'My title'" do
91
- expect(column.name).to eq "My title"
92
- end
93
-
94
- it "should have the data :title" do
95
- expect(column.data).to be_an_instance_of(Proc)
96
- end
97
- end
98
- end
99
-
100
- context "with a humanize_name column option" do
101
- context "with symbol column name" do
102
- let(:builder) do
103
- ActiveAdmin::CSVBuilder.new do
104
- column :my_title, humanize_name: false
105
- end.tap(&:exec_columns)
106
- end
107
-
108
- describe "the column" do
109
- let(:column){ builder.columns.first }
110
-
111
- it "should have a name of 'my_title'" do
112
- expect(column.name).to eq "my_title"
113
- end
114
- end
115
- end
116
-
117
- context "with string column name" do
118
- let(:builder) do
119
- ActiveAdmin::CSVBuilder.new do
120
- column "my_title", humanize_name: false
121
- end.tap(&:exec_columns)
122
- end
123
-
124
- describe "the column" do
125
- let(:column){ builder.columns.first }
126
-
127
- it "should have a name of 'my_title'" do
128
- expect(column.name).to eq "my_title"
129
- end
130
- end
131
- end
132
- end
133
-
134
- context "with a separator" do
135
- let(:builder) do
136
- ActiveAdmin::CSVBuilder.new(col_sep: ";").tap(&:exec_columns)
137
- end
138
-
139
- it "should have proper separator" do
140
- expect(builder.options).to eq({col_sep: ";"})
141
- end
142
- end
143
-
144
- context "with humanize_name option" do
145
- let(:builder) do
146
- ActiveAdmin::CSVBuilder.new(humanize_name: false) do
147
- column :my_title
148
- end.tap(&:exec_columns)
149
- end
150
-
151
- describe "the column" do
152
- let(:column){ builder.columns.first }
153
-
154
- it "should have humanize_name option set" do
155
- expect(column.options).to eq humanize_name: false
156
- end
157
-
158
- it "should have a name of 'my_title'" do
159
- expect(column.name).to eq "my_title"
160
- end
161
- end
162
- end
163
-
164
- context "with csv_options" do
165
- let(:builder) do
166
- ActiveAdmin::CSVBuilder.new(force_quotes: true).tap(&:exec_columns)
167
- end
168
-
169
- it "should have proper separator" do
170
- expect(builder.options).to eq({force_quotes: true})
171
- end
172
- end
173
-
174
- context "with access to the controller" do
175
- let(:dummy_view_context) { double(controller: dummy_controller) }
176
- let(:dummy_controller) { double(names: %w(title summary updated_at created_at))}
177
- let(:builder) do
178
- ActiveAdmin::CSVBuilder.new do
179
- column "id"
180
- controller.names.each do |name|
181
- column(name)
182
- end
183
- end.tap{ |b| b.exec_columns(dummy_view_context) }
184
- end
185
-
186
- it "should build columns provided by the controller" do
187
- expect(builder.columns.map(&:data)).to match_array([:id, :title, :summary, :updated_at, :created_at])
188
- end
189
- end
190
-
191
- context "build csv using the supplied order" do
192
- before do
193
- @post1 = Post.create!(title: "Hello1", published_date: Date.today - 2.day)
194
- @post2 = Post.create!(title: "Hello2", published_date: Date.today - 1.day)
195
- end
196
- let(:dummy_controller) {
197
- class DummyController
198
- def find_collection(*)
199
- collection
200
- end
201
-
202
- def collection
203
- Post.order('published_date DESC')
204
- end
205
-
206
- def apply_decorator(resource)
207
- resource
208
- end
209
-
210
- def view_context
211
- end
212
- end
213
- DummyController.new
214
- }
215
- let(:builder) do
216
- ActiveAdmin::CSVBuilder.new do
217
- column "id"
218
- column "title"
219
- column "published_date"
220
- end
221
- end
222
-
223
- it "should generate data with the supplied order" do
224
- expect(builder).to receive(:build_row).and_return([]).once.ordered { |post| expect(post.id).to eq @post2.id }
225
- expect(builder).to receive(:build_row).and_return([]).once.ordered { |post| expect(post.id).to eq @post1.id }
226
- builder.build dummy_controller, []
227
- end
228
-
229
- it "should generate data ignoring pagination" do
230
- expect(dummy_controller).to receive(:find_collection).
231
- with(except: :pagination).once.
232
- and_call_original
233
- expect(builder).to receive(:build_row).and_return([]).twice
234
- builder.build dummy_controller, []
235
- end
236
-
237
- end
238
-
239
- context "build csv using specified encoding and encoding_options" do
240
- let(:dummy_controller) do
241
- class DummyController
242
- def find_collection(*)
243
- collection
244
- end
245
-
246
- def collection
247
- Post
248
- end
249
-
250
- def apply_decorator(resource)
251
- resource
252
- end
253
-
254
- def view_context
255
- end
256
- end
257
- DummyController.new
258
- end
259
- let(:encoding) { Encoding::ASCII }
260
- let(:opts) { {} }
261
- let(:builder) do
262
- ActiveAdmin::CSVBuilder.new(encoding: encoding, encoding_options: opts) do
263
- column "おはようございます"
264
- column "title"
265
- end
266
- end
267
-
268
- context "Shift-JIS with options" do
269
- let(:encoding) { Encoding::Shift_JIS }
270
- let(:opts) { { invalid: :replace, undef: :replace, replace: "?" } }
271
-
272
- it "encodes the CSV" do
273
- receiver = []
274
- builder.build dummy_controller, receiver
275
- line = receiver.last
276
- expect(line.encoding).to eq(encoding)
277
- end
278
- end
279
-
280
- context "ASCII with options" do
281
- let(:encoding) { Encoding::ASCII }
282
- let(:opts) do
283
- { invalid: :replace, undef: :replace, replace: "__REPLACED__" }
284
- end
285
-
286
- it "encodes the CSV without errors" do
287
- receiver = []
288
- builder.build dummy_controller, receiver
289
- line = receiver.last
290
- expect(line.encoding).to eq(encoding)
291
- expect(line).to include("__REPLACED__")
292
- end
293
- end
294
- end
295
-
296
- skip '#exec_columns'
297
-
298
- skip '#build_row' do
299
- it 'renders non-strings'
300
- it 'encodes values correctly'
301
- it 'passes custom encoding options to String#encode!'
302
- end
303
-
304
- end
@@ -1,135 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Dependency do
4
-
5
- k = ActiveAdmin::Dependency
6
-
7
- describe 'method_missing' do
8
- before do
9
- allow(Gem).to receive(:loaded_specs)
10
- .and_return 'foo' => Gem::Specification.new('foo', '1.2.3')
11
- end
12
-
13
- it 'returns a Matcher' do
14
- expect(k.foo).to be_a ActiveAdmin::Dependency::Matcher
15
- expect(k.foo.inspect).to eq '<ActiveAdmin::Dependency::Matcher for foo 1.2.3>'
16
- expect(k.bar.inspect).to eq '<ActiveAdmin::Dependency::Matcher for (missing)>'
17
- end
18
-
19
- describe '`?`' do
20
- it 'base' do
21
- expect(k.foo?).to eq true
22
- expect(k.bar?).to eq false
23
- end
24
- it '=' do
25
- expect(k.foo? '= 1.2.3').to eq true
26
- expect(k.foo? '= 1').to eq false
27
- end
28
- it '>' do
29
- expect(k.foo? '> 1').to eq true
30
- expect(k.foo? '> 2').to eq false
31
- end
32
- it '<' do
33
- expect(k.foo? '< 2').to eq true
34
- expect(k.foo? '< 1').to eq false
35
- end
36
- it '>=' do
37
- expect(k.foo? '>= 1.2.3').to eq true
38
- expect(k.foo? '>= 1.2.2').to eq true
39
- expect(k.foo? '>= 1.2.4').to eq false
40
- end
41
- it '<=' do
42
- expect(k.foo? '<= 1.2.3').to eq true
43
- expect(k.foo? '<= 1.2.4').to eq true
44
- expect(k.foo? '<= 1.2.2').to eq false
45
- end
46
- it '~>' do
47
- expect(k.foo? '~> 1.2.0').to eq true
48
- expect(k.foo? '~> 1.1').to eq true
49
- expect(k.foo? '~> 1.2.4').to eq false
50
- end
51
- end
52
-
53
- describe '`!`' do
54
- it 'raises an error if requirement not met' do
55
- expect{ k.foo! '5' }.to raise_error ActiveAdmin::DependencyError,
56
- 'You provided foo 1.2.3 but we need: 5.'
57
- end
58
- it 'accepts multiple arguments' do
59
- expect{ k.foo! '> 1', '< 1.2' }.to raise_error ActiveAdmin::DependencyError,
60
- 'You provided foo 1.2.3 but we need: > 1, < 1.2.'
61
- end
62
- it 'raises an error if not provided' do
63
- expect{ k.bar! }.to raise_error ActiveAdmin::DependencyError,
64
- 'To use bar you need to specify it in your Gemfile.'
65
- end
66
- end
67
- end
68
-
69
- describe '[]' do
70
- before do
71
- allow(Gem).to receive(:loaded_specs)
72
- .and_return 'a-b' => Gem::Specification.new('a-b', '1.2.3')
73
- end
74
-
75
- it 'allows access to gems with an arbitrary name' do
76
- expect(k['a-b']).to be_a ActiveAdmin::Dependency::Matcher
77
- expect(k['a-b'].inspect).to eq '<ActiveAdmin::Dependency::Matcher for a-b 1.2.3>'
78
- expect(k['c-d'].inspect).to eq '<ActiveAdmin::Dependency::Matcher for (missing)>'
79
- end
80
-
81
- # Note: more extensive tests for match? and match! are above.
82
-
83
- it 'match?' do
84
- expect(k['a-b'].match?).to eq true
85
- expect(k['a-b'].match? '1.2.3').to eq true
86
- expect(k['b-c'].match?).to eq false
87
- end
88
-
89
- it 'match!' do
90
- expect(k['a-b'].match!).to eq nil
91
- expect(k['a-b'].match! '1.2.3').to eq nil
92
-
93
- expect{ k['a-b'].match! '2.5' }.to raise_error ActiveAdmin::DependencyError,
94
- 'You provided a-b 1.2.3 but we need: 2.5.'
95
-
96
- expect{ k['b-c'].match! }.to raise_error ActiveAdmin::DependencyError,
97
- 'To use b-c you need to specify it in your Gemfile.'
98
- end
99
-
100
- # Note: Ruby comparison operators are separate from the `foo? '> 1'` syntax
101
-
102
- describe 'Ruby comparison syntax' do
103
-
104
- it '==' do
105
- expect(k['a-b'] == '1.2.3').to eq true
106
- expect(k['a-b'] == '1.2').to eq false
107
- expect(k['a-b'] == 1).to eq false
108
- end
109
- it '>' do
110
- expect(k['a-b'] > 1).to eq true
111
- expect(k['a-b'] > 2).to eq false
112
- end
113
- it '<' do
114
- expect(k['a-b'] < 2).to eq true
115
- expect(k['a-b'] < 1).to eq false
116
- end
117
- it '>=' do
118
- expect(k['a-b'] >= '1.2.3').to eq true
119
- expect(k['a-b'] >= '1.2.2').to eq true
120
- expect(k['a-b'] >= '1.2.4').to eq false
121
- end
122
- it '<=' do
123
- expect(k['a-b'] <= '1.2.3').to eq true
124
- expect(k['a-b'] <= '1.2.4').to eq true
125
- expect(k['a-b'] <= '1.2.2').to eq false
126
- end
127
-
128
- it 'throws a custom error if the gem is missing' do
129
- expect{ k['b-c'] < 23 }.to raise_error ActiveAdmin::DependencyError,
130
- 'To use b-c you need to specify it in your Gemfile.'
131
- end
132
- end
133
- end
134
-
135
- end
@@ -1,110 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Devise::Controller do
4
-
5
- let(:controller_class) do
6
- klass = Class.new do
7
- def self.layout(*); end
8
- def self.helper(*); end
9
- end
10
- klass.send(:include, ActiveAdmin::Devise::Controller)
11
- klass
12
- end
13
-
14
- let(:controller) { controller_class.new }
15
- let(:action_controller_config) { Rails.configuration.action_controller }
16
-
17
- def with_temp_relative_url_root(relative_url_root)
18
- previous_relative_url_root = action_controller_config[:relative_url_root]
19
- action_controller_config[:relative_url_root] = relative_url_root
20
-
21
- yield
22
- ensure
23
- action_controller_config[:relative_url_root] = previous_relative_url_root
24
- end
25
-
26
- context 'with a RAILS_RELATIVE_URL_ROOT set' do
27
-
28
- around do |example|
29
- with_temp_relative_url_root('/foo') { example.call }
30
- end
31
-
32
- it "should set the root path to the default namespace" do
33
- expect(controller.root_path).to eq "/foo/admin"
34
- end
35
-
36
- it "should set the root path to '/' when no default namespace" do
37
- allow(ActiveAdmin.application).to receive(:default_namespace).and_return(false)
38
- expect(controller.root_path).to eq "/foo/"
39
- end
40
-
41
- end
42
-
43
- context 'without a RAILS_RELATIVE_URL_ROOT set' do
44
-
45
- around do |example|
46
- with_temp_relative_url_root(nil) { example.call }
47
- end
48
-
49
- it "should set the root path to the default namespace" do
50
- expect(controller.root_path).to eq "/admin"
51
- end
52
-
53
- it "should set the root path to '/' when no default namespace" do
54
- allow(ActiveAdmin.application).to receive(:default_namespace).and_return(false)
55
- expect(controller.root_path).to eq "/"
56
- end
57
-
58
- end
59
-
60
- context "within a scoped route" do
61
-
62
- SCOPE = '/aa_scoped'
63
-
64
- before do
65
- # Remove existing routes
66
- routes = Rails.application.routes
67
- routes.clear!
68
-
69
- # Add scoped routes
70
- routes.draw do
71
- scope path: SCOPE do
72
- ActiveAdmin.routes(self)
73
- devise_for :admin_users, ActiveAdmin::Devise.config
74
- end
75
- end
76
- end
77
-
78
- after do
79
- # Resume default routes
80
- reload_routes!
81
- end
82
-
83
- it "should include scope path in root_path" do
84
- expect(controller.root_path).to eq "#{SCOPE}/admin"
85
- end
86
-
87
- end
88
-
89
- describe "#config" do
90
- let(:config) { ActiveAdmin::Devise.config }
91
-
92
- describe ":sign_out_via option" do
93
- it "should contain the application.logout_link_method" do
94
- expect(::Devise).to receive(:sign_out_via).and_return(:delete)
95
- expect(ActiveAdmin.application).to receive(:logout_link_method).and_return(:get)
96
-
97
- expect(config[:sign_out_via]).to include(:get)
98
- end
99
-
100
- it "should contain Devise's logout_via_method(s)" do
101
- expect(::Devise).to receive(:sign_out_via).and_return([:delete, :post])
102
- expect(ActiveAdmin.application).to receive(:logout_link_method).and_return(:get)
103
-
104
- expect(config[:sign_out_via]).to eq [:delete, :post, :get]
105
- end
106
-
107
- end # describe ":sign_out_via option"
108
- end # describe "#config"
109
-
110
- end
@@ -1,120 +0,0 @@
1
- require 'rails_helper'
2
-
3
- module MockModuleToInclude
4
- def self.included(dsl)
5
- end
6
- end
7
-
8
- RSpec.describe ActiveAdmin::DSL do
9
-
10
- let(:application) { ActiveAdmin::Application.new }
11
- let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
12
- let(:resource_config) { namespace.register Post }
13
- let(:dsl){ ActiveAdmin::DSL.new(resource_config) }
14
-
15
- describe "#include" do
16
-
17
- it "should call the included class method on the module that is included" do
18
- expect(MockModuleToInclude).to receive(:included).with(dsl)
19
- dsl.run_registration_block do
20
- include MockModuleToInclude
21
- end
22
- end
23
-
24
- end
25
-
26
- describe '#action_item' do
27
- before do
28
- @default_items_count = resource_config.action_items.size
29
-
30
- dsl.run_registration_block do
31
- action_item :awesome, only: :show do
32
- "Awesome ActionItem"
33
- end
34
- end
35
- end
36
-
37
- it "adds action_item to the action_items of config" do
38
- expect(resource_config.action_items.size).to eq(@default_items_count + 1)
39
- end
40
-
41
- context 'DEPRECATED: when used without a name' do
42
- it "is configured for only the show action" do
43
- expect(ActiveAdmin::Deprecation).to receive(:warn).with(instance_of(String))
44
-
45
- dsl.run_registration_block do
46
- action_item only: :edit do
47
- "Awesome ActionItem"
48
- end
49
- end
50
-
51
- item = resource_config.action_items.last
52
- expect(item.display_on?(:edit)).to be true
53
- expect(item.display_on?(:index)).to be false
54
- end
55
- end
56
- end
57
-
58
- describe "#menu" do
59
-
60
- it "should set the menu_item_options on the configuration" do
61
- expect(resource_config).to receive(:menu_item_options=).with({parent: "Admin"})
62
- dsl.run_registration_block do
63
- menu parent: "Admin"
64
- end
65
- end
66
-
67
- end
68
-
69
- describe "#navigation_menu" do
70
-
71
- it "should set the navigation_menu_name on the configuration" do
72
- expect(resource_config).to receive(:navigation_menu_name=).with(:admin)
73
- dsl.run_registration_block do
74
- navigation_menu :admin
75
- end
76
- end
77
-
78
- it "should accept a block" do
79
- dsl = ActiveAdmin::DSL.new(resource_config)
80
- dsl.run_registration_block do
81
- navigation_menu { :dynamic_menu }
82
- end
83
- expect(resource_config.navigation_menu_name).to eq :dynamic_menu
84
- end
85
-
86
- end
87
-
88
- describe "#sidebar" do
89
-
90
- before do
91
- dsl.config.sidebar_sections << ActiveAdmin::SidebarSection.new(:email)
92
- end
93
-
94
- it "add sidebar_section to the sidebar_sections of config" do
95
- dsl.run_registration_block do
96
- sidebar :help
97
- end
98
- expect(dsl.config.sidebar_sections.map(&:name)).to match_array ['filters', 'Search status:', 'email', 'help']
99
- end
100
-
101
- end
102
-
103
- describe "#batch_action" do
104
- it "should add a batch action by symbol" do
105
- dsl.run_registration_block do
106
- config.batch_actions = true
107
- batch_action :foo
108
- end
109
- expect(resource_config.batch_actions.map(&:sym)).to eq [:foo, :destroy]
110
- end
111
-
112
- it "should add a batch action by title" do
113
- dsl.run_registration_block do
114
- config.batch_actions = true
115
- batch_action "foo bar"
116
- end
117
- expect(resource_config.batch_actions.map(&:sym)).to eq [:foo_bar, :destroy]
118
- end
119
- end
120
- end