activeadmin 1.3.0 → 2.0.0.rc1

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 (423) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +307 -123
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +90 -46
  5. data/README.md +66 -19
  6. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  7. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  8. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  9. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  10. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  11. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  12. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  13. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +55 -0
  14. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  15. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  16. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  17. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  18. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  19. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  20. data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
  21. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  22. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  23. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  25. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  26. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  27. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  28. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  29. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  30. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  31. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  32. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  33. data/config/locales/bg.yml +0 -1
  34. data/config/locales/de.yml +10 -0
  35. data/config/locales/en.yml +19 -1
  36. data/config/locales/es.yml +20 -1
  37. data/config/locales/fi.yml +1 -1
  38. data/config/locales/he.yml +0 -1
  39. data/config/locales/hu.yml +4 -0
  40. data/config/locales/it.yml +4 -0
  41. data/config/locales/lt.yml +2 -2
  42. data/config/locales/nb.yml +15 -5
  43. data/config/locales/nl.yml +11 -0
  44. data/config/locales/pl.yml +71 -3
  45. data/config/locales/ru.yml +2 -0
  46. data/config/locales/tr.yml +9 -0
  47. data/config/locales/uk.yml +2 -0
  48. data/config/locales/zh-CN.yml +33 -5
  49. data/docs/.gitignore +1 -0
  50. data/docs/0-installation.md +2 -2
  51. data/docs/1-general-configuration.md +16 -1
  52. data/docs/10-custom-pages.md +14 -0
  53. data/docs/12-arbre-components.md +28 -1
  54. data/docs/13-authorization-adapter.md +40 -21
  55. data/docs/2-resource-customization.md +8 -3
  56. data/docs/3-index-pages/custom-index.md +1 -1
  57. data/docs/3-index-pages/index-as-blog.md +1 -1
  58. data/docs/3-index-pages/index-as-table.md +5 -5
  59. data/docs/3-index-pages.md +17 -0
  60. data/docs/5-forms.md +16 -2
  61. data/docs/8-custom-actions.md +11 -0
  62. data/docs/CNAME +1 -1
  63. data/docs/Gemfile +2 -0
  64. data/docs/Gemfile.lock +249 -0
  65. data/docs/_config.yml +1 -1
  66. data/docs/_includes/toc.html +1 -1
  67. data/docs/_includes/top-menu.html +9 -1
  68. data/docs/documentation.md +1 -1
  69. data/docs/images/tidelift.svg +14 -0
  70. data/docs/index.html +2 -2
  71. data/docs/stylesheets/main.css +26 -2
  72. data/lib/active_admin/abstract_view_factory.rb +13 -51
  73. data/lib/active_admin/application.rb +49 -155
  74. data/lib/active_admin/application_settings.rb +42 -0
  75. data/lib/active_admin/asset_registration.rb +0 -8
  76. data/lib/active_admin/base_controller/authorization.rb +3 -6
  77. data/lib/active_admin/base_controller.rb +6 -6
  78. data/lib/active_admin/batch_actions/controller.rb +2 -2
  79. data/lib/active_admin/batch_actions/resource_extension.rb +4 -4
  80. data/lib/active_admin/callbacks.rb +1 -1
  81. data/lib/active_admin/csv_builder.rb +1 -1
  82. data/lib/active_admin/dependency.rb +1 -69
  83. data/lib/active_admin/deprecation.rb +0 -25
  84. data/lib/active_admin/dsl.rb +1 -8
  85. data/lib/active_admin/dynamic_setting.rb +38 -0
  86. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  87. data/lib/active_admin/engine.rb +5 -0
  88. data/lib/active_admin/error.rb +1 -1
  89. data/lib/active_admin/filters/active_filter.rb +4 -2
  90. data/lib/active_admin/filters/active_sidebar.rb +5 -1
  91. data/lib/active_admin/filters/forms.rb +7 -4
  92. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  93. data/lib/active_admin/filters/resource_extension.rb +4 -4
  94. data/lib/active_admin/form_builder.rb +97 -62
  95. data/lib/active_admin/generators/boilerplate.rb +1 -1
  96. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  97. data/lib/active_admin/inputs/datepicker_input.rb +8 -1
  98. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  99. data/lib/active_admin/menu.rb +2 -8
  100. data/lib/active_admin/menu_item.rb +4 -32
  101. data/lib/active_admin/namespace.rb +20 -8
  102. data/lib/active_admin/namespace_settings.rb +110 -0
  103. data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
  104. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +10 -5
  105. data/lib/active_admin/orm/active_record/comments.rb +15 -4
  106. data/lib/active_admin/page_dsl.rb +1 -1
  107. data/lib/active_admin/pundit_adapter.rb +13 -4
  108. data/lib/active_admin/resource/action_items.rb +7 -2
  109. data/lib/active_admin/resource/attributes.rb +7 -4
  110. data/lib/active_admin/resource/menu.rb +3 -3
  111. data/lib/active_admin/resource/naming.rb +3 -3
  112. data/lib/active_admin/resource/routes.rb +9 -4
  113. data/lib/active_admin/resource/scopes.rb +3 -3
  114. data/lib/active_admin/resource/sidebars.rb +1 -1
  115. data/lib/active_admin/resource.rb +2 -2
  116. data/lib/active_admin/resource_collection.rb +2 -2
  117. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  118. data/lib/active_admin/resource_controller/decorators.rb +3 -3
  119. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  120. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  121. data/lib/active_admin/resource_dsl.rb +5 -3
  122. data/lib/active_admin/router.rb +89 -84
  123. data/lib/active_admin/scope.rb +9 -5
  124. data/lib/active_admin/settings_node.rb +19 -0
  125. data/lib/active_admin/version.rb +1 -1
  126. data/lib/active_admin/view_helpers/display_helper.rb +10 -2
  127. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
  128. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  129. data/lib/active_admin/view_helpers.rb +1 -1
  130. data/lib/active_admin/views/components/active_admin_form.rb +9 -4
  131. data/lib/active_admin/views/components/attributes_table.rb +3 -3
  132. data/lib/active_admin/views/components/menu.rb +32 -0
  133. data/lib/active_admin/views/components/menu_item.rb +58 -0
  134. data/lib/active_admin/views/components/paginated_collection.rb +1 -1
  135. data/lib/active_admin/views/components/scopes.rb +11 -4
  136. data/lib/active_admin/views/components/sidebar.rb +13 -0
  137. data/lib/active_admin/views/components/sidebar_section.rb +0 -3
  138. data/lib/active_admin/views/components/site_title.rb +5 -6
  139. data/lib/active_admin/views/components/status_tag.rb +1 -18
  140. data/lib/active_admin/views/components/table_for.rb +3 -12
  141. data/lib/active_admin/views/components/tabs.rb +15 -3
  142. data/lib/active_admin/views/footer.rb +3 -7
  143. data/lib/active_admin/views/header.rb +3 -15
  144. data/lib/active_admin/views/index_as_blog.rb +1 -1
  145. data/lib/active_admin/views/index_as_grid.rb +25 -25
  146. data/lib/active_admin/views/index_as_table.rb +11 -10
  147. data/lib/active_admin/views/pages/base.rb +30 -53
  148. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  149. data/lib/active_admin/views.rb +1 -1
  150. data/lib/active_admin.rb +9 -4
  151. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  152. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  153. data/lib/generators/active_admin/install/install_generator.rb +6 -2
  154. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -1
  155. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  156. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  157. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  158. data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
  159. data/lib/ransack_ext.rb +3 -3
  160. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  161. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  162. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  163. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  164. metadata +120 -523
  165. data/.github/ISSUE_TEMPLATE.md +0 -20
  166. data/.gitignore +0 -49
  167. data/.mdlrc +0 -1
  168. data/.rubocop.yml +0 -76
  169. data/.simplecov +0 -13
  170. data/.travis.yml +0 -51
  171. data/.yardopts +0 -7
  172. data/Gemfile +0 -58
  173. data/Rakefile +0 -54
  174. data/activeadmin.gemspec +0 -32
  175. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  176. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  177. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  178. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  179. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  180. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  181. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  182. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  183. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  184. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  185. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  186. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  187. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  188. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  189. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  190. data/codecov.yml +0 -25
  191. data/config/i18n-tasks.yml +0 -26
  192. data/config/mdl_style.rb +0 -9
  193. data/cucumber.yml +0 -3
  194. data/features/action_item.feature +0 -73
  195. data/features/authorization.feature +0 -64
  196. data/features/authorization_cancan.feature +0 -52
  197. data/features/authorization_pundit.feature +0 -37
  198. data/features/belongs_to.feature +0 -124
  199. data/features/breadcrumb.feature +0 -75
  200. data/features/comments/commenting.feature +0 -178
  201. data/features/comments/viewing_index.feature +0 -19
  202. data/features/create_another.feature +0 -55
  203. data/features/dashboard.feature +0 -16
  204. data/features/decorators.feature +0 -43
  205. data/features/development_reloading.feature +0 -28
  206. data/features/edit_page.feature +0 -116
  207. data/features/favicon.feature +0 -20
  208. data/features/first_boot.feature +0 -16
  209. data/features/footer.feature +0 -28
  210. data/features/global_navigation.feature +0 -29
  211. data/features/i18n.feature +0 -55
  212. data/features/index/batch_actions.feature +0 -218
  213. data/features/index/filters.feature +0 -250
  214. data/features/index/format_as_csv.feature +0 -220
  215. data/features/index/formats.feature +0 -88
  216. data/features/index/index_as_block.feature +0 -15
  217. data/features/index/index_as_blog.feature +0 -69
  218. data/features/index/index_as_grid.feature +0 -45
  219. data/features/index/index_as_table.feature +0 -291
  220. data/features/index/index_blank_slate.feature +0 -83
  221. data/features/index/index_parameters.feature +0 -75
  222. data/features/index/index_scope_to.feature +0 -56
  223. data/features/index/index_scopes.feature +0 -285
  224. data/features/index/page_title.feature +0 -41
  225. data/features/index/pagination.feature +0 -63
  226. data/features/index/switch_index_view.feature +0 -73
  227. data/features/menu.feature +0 -72
  228. data/features/meta_tags.feature +0 -21
  229. data/features/new_page.feature +0 -136
  230. data/features/registering_assets.feature +0 -38
  231. data/features/registering_pages.feature +0 -237
  232. data/features/registering_resources.feature +0 -33
  233. data/features/renamed_resource.feature +0 -30
  234. data/features/root_to.feature +0 -17
  235. data/features/show/attributes_table_title.feature +0 -54
  236. data/features/show/columns.feature +0 -40
  237. data/features/show/default_content.feature +0 -44
  238. data/features/show/page_title.feature +0 -58
  239. data/features/show/tabs.feature +0 -33
  240. data/features/sidebar_sections.feature +0 -210
  241. data/features/site_title.feature +0 -47
  242. data/features/specifying_actions.feature +0 -118
  243. data/features/step_definitions/action_item_steps.rb +0 -7
  244. data/features/step_definitions/action_link_steps.rb +0 -19
  245. data/features/step_definitions/additional_web_steps.rb +0 -81
  246. data/features/step_definitions/asset_steps.rb +0 -15
  247. data/features/step_definitions/attribute_steps.rb +0 -18
  248. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  249. data/features/step_definitions/batch_action_steps.rb +0 -81
  250. data/features/step_definitions/blog_steps.rb +0 -3
  251. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  252. data/features/step_definitions/column_steps.rb +0 -8
  253. data/features/step_definitions/comment_steps.rb +0 -32
  254. data/features/step_definitions/configuration_steps.rb +0 -100
  255. data/features/step_definitions/dashboard_steps.rb +0 -15
  256. data/features/step_definitions/factory_steps.rb +0 -35
  257. data/features/step_definitions/filter_steps.rb +0 -47
  258. data/features/step_definitions/flash_steps.rb +0 -11
  259. data/features/step_definitions/footer_steps.rb +0 -11
  260. data/features/step_definitions/format_steps.rb +0 -56
  261. data/features/step_definitions/i18n_steps.rb +0 -11
  262. data/features/step_definitions/index_scope_steps.rb +0 -29
  263. data/features/step_definitions/index_views_steps.rb +0 -3
  264. data/features/step_definitions/layout_steps.rb +0 -3
  265. data/features/step_definitions/member_link_steps.rb +0 -7
  266. data/features/step_definitions/menu_steps.rb +0 -11
  267. data/features/step_definitions/meta_tag_steps.rb +0 -3
  268. data/features/step_definitions/pagination_steps.rb +0 -15
  269. data/features/step_definitions/sidebar_steps.rb +0 -11
  270. data/features/step_definitions/site_title_steps.rb +0 -17
  271. data/features/step_definitions/tab_steps.rb +0 -8
  272. data/features/step_definitions/table_steps.rb +0 -116
  273. data/features/step_definitions/user_steps.rb +0 -52
  274. data/features/step_definitions/web_steps.rb +0 -86
  275. data/features/sti_resource.feature +0 -65
  276. data/features/strong_parameters.feature +0 -69
  277. data/features/support/env.rb +0 -122
  278. data/features/support/paths.rb +0 -73
  279. data/features/support/regular_env.rb +0 -7
  280. data/features/support/reload_env.rb +0 -7
  281. data/features/support/selectors.rb +0 -45
  282. data/features/users/logging_in.feature +0 -36
  283. data/features/users/logging_out.feature +0 -13
  284. data/features/users/resetting_password.feature +0 -34
  285. data/gemfiles/rails_42.gemfile +0 -10
  286. data/gemfiles/rails_50.gemfile +0 -10
  287. data/gemfiles/rails_51.gemfile +0 -10
  288. data/gemfiles/rails_52.gemfile +0 -11
  289. data/lib/active_admin/event.rb +0 -24
  290. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  291. data/lib/active_admin/helpers/settings.rb +0 -114
  292. data/lib/bug_report_templates/active_admin_master.rb +0 -112
  293. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  294. data/spec/bug_report_templates_spec.rb +0 -26
  295. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  296. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  297. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  298. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  299. data/spec/javascripts/fixtures/flashes.html +0 -2
  300. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  301. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  302. data/spec/javascripts/support/jasmine.yml +0 -74
  303. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  304. data/spec/rails_helper.rb +0 -59
  305. data/spec/requests/default_namespace_spec.rb +0 -81
  306. data/spec/requests/memory_spec.rb +0 -25
  307. data/spec/requests/stylesheets_spec.rb +0 -18
  308. data/spec/spec_helper.rb +0 -1
  309. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  310. data/spec/support/active_admin_request_helpers.rb +0 -39
  311. data/spec/support/rails_template.rb +0 -153
  312. data/spec/support/rails_template_with_data.rb +0 -327
  313. data/spec/support/templates/admin/stores.rb +0 -7
  314. data/spec/support/templates/en.yml +0 -8
  315. data/spec/support/templates/manifest.js +0 -3
  316. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  317. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  318. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  319. data/spec/support/templates/policies/application_policy.rb +0 -44
  320. data/spec/support/templates/policies/category_policy.rb +0 -7
  321. data/spec/support/templates/policies/post_policy.rb +0 -15
  322. data/spec/support/templates/policies/store_policy.rb +0 -11
  323. data/spec/support/templates/policies/user_policy.rb +0 -11
  324. data/spec/support/templates/post_decorator.rb +0 -24
  325. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  326. data/spec/unit/action_builder_spec.rb +0 -158
  327. data/spec/unit/active_admin_spec.rb +0 -11
  328. data/spec/unit/application_spec.rb +0 -184
  329. data/spec/unit/asset_registration_spec.rb +0 -81
  330. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  331. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  332. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  333. data/spec/unit/auto_link_spec.rb +0 -93
  334. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  335. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  336. data/spec/unit/belongs_to_spec.rb +0 -76
  337. data/spec/unit/cancan_adapter_spec.rb +0 -43
  338. data/spec/unit/comments_spec.rb +0 -176
  339. data/spec/unit/component_spec.rb +0 -18
  340. data/spec/unit/config_shared_examples.rb +0 -59
  341. data/spec/unit/controller_filters_spec.rb +0 -41
  342. data/spec/unit/csv_builder_spec.rb +0 -313
  343. data/spec/unit/dependency_spec.rb +0 -135
  344. data/spec/unit/devise_spec.rb +0 -110
  345. data/spec/unit/dsl_spec.rb +0 -120
  346. data/spec/unit/filters/active_filter_spec.rb +0 -189
  347. data/spec/unit/filters/active_spec.rb +0 -24
  348. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  349. data/spec/unit/filters/resource_spec.rb +0 -128
  350. data/spec/unit/form_builder_spec.rb +0 -990
  351. data/spec/unit/generators/install_spec.rb +0 -31
  352. data/spec/unit/helpers/collection_spec.rb +0 -68
  353. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  354. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  355. data/spec/unit/helpers/settings_spec.rb +0 -30
  356. data/spec/unit/i18n_spec.rb +0 -29
  357. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  358. data/spec/unit/menu_collection_spec.rb +0 -62
  359. data/spec/unit/menu_item_spec.rb +0 -141
  360. data/spec/unit/menu_spec.rb +0 -71
  361. data/spec/unit/namespace/authorization_spec.rb +0 -27
  362. data/spec/unit/namespace/register_page_spec.rb +0 -99
  363. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  364. data/spec/unit/namespace_spec.rb +0 -124
  365. data/spec/unit/order_clause_spec.rb +0 -81
  366. data/spec/unit/page_controller_spec.rb +0 -5
  367. data/spec/unit/page_spec.rb +0 -128
  368. data/spec/unit/pretty_format_spec.rb +0 -82
  369. data/spec/unit/pundit_adapter_spec.rb +0 -98
  370. data/spec/unit/resource/action_items_spec.rb +0 -69
  371. data/spec/unit/resource/attributes_spec.rb +0 -49
  372. data/spec/unit/resource/includes_spec.rb +0 -21
  373. data/spec/unit/resource/menu_spec.rb +0 -18
  374. data/spec/unit/resource/naming_spec.rb +0 -122
  375. data/spec/unit/resource/ordering_spec.rb +0 -35
  376. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  377. data/spec/unit/resource/pagination_spec.rb +0 -38
  378. data/spec/unit/resource/routes_spec.rb +0 -125
  379. data/spec/unit/resource/scopes_spec.rb +0 -50
  380. data/spec/unit/resource/sidebars_spec.rb +0 -43
  381. data/spec/unit/resource_collection_spec.rb +0 -175
  382. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  383. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  384. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  385. data/spec/unit/resource_controller_spec.rb +0 -273
  386. data/spec/unit/resource_registration_spec.rb +0 -61
  387. data/spec/unit/resource_spec.rb +0 -320
  388. data/spec/unit/routing_spec.rb +0 -211
  389. data/spec/unit/scope_spec.rb +0 -209
  390. data/spec/unit/settings_spec.rb +0 -117
  391. data/spec/unit/view_factory_spec.rb +0 -19
  392. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  393. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  394. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  395. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  396. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  397. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  398. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  399. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  400. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  401. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  402. data/spec/unit/views/components/columns_spec.rb +0 -187
  403. data/spec/unit/views/components/index_list_spec.rb +0 -49
  404. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  405. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  406. data/spec/unit/views/components/panel_spec.rb +0 -58
  407. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  408. data/spec/unit/views/components/site_title_spec.rb +0 -76
  409. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  410. data/spec/unit/views/components/table_for_spec.rb +0 -436
  411. data/spec/unit/views/components/tabs_spec.rb +0 -67
  412. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  413. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  414. data/spec/unit/views/pages/form_spec.rb +0 -54
  415. data/spec/unit/views/pages/index_spec.rb +0 -60
  416. data/spec/unit/views/pages/layout_spec.rb +0 -59
  417. data/spec/unit/views/pages/show_spec.rb +0 -32
  418. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  419. data/tasks/docs.rake +0 -64
  420. data/tasks/lint.rake +0 -21
  421. data/tasks/local.rake +0 -25
  422. data/tasks/parallel_tests.rake +0 -66
  423. data/tasks/test.rake +0 -29
@@ -1,99 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Namespace, "registering a page" do
4
- let(:application){ ActiveAdmin::Application.new }
5
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
6
- let(:menu){ namespace.fetch_menu(:default) }
7
-
8
- context "with no configuration" do
9
- before do
10
- namespace.register_page "Status"
11
- end
12
-
13
- it "should store the namespaced registered configuration" do
14
- expect(namespace.resources.keys).to include('Status')
15
- end
16
-
17
- it "should create a new controller in the default namespace" do
18
- expect(defined?(Admin::StatusController)).to eq 'constant'
19
- end
20
-
21
- it "should create a menu item" do
22
- expect(menu["Status"]).to be_an_instance_of(ActiveAdmin::MenuItem)
23
- end
24
- end
25
-
26
- context "with a block configuration" do
27
- it "should be evaluated in the dsl" do
28
- expect{ |block|
29
- namespace.register_page "Status", &block
30
- }.to yield_control
31
- end
32
- end
33
-
34
- describe "adding to the menu" do
35
- describe "adding as a top level item" do
36
- before do
37
- namespace.register_page "Status"
38
- end
39
-
40
- it "should add a new menu item" do
41
- expect(menu['Status']).to_not eq nil
42
- end
43
- end
44
-
45
- describe "adding as a child" do
46
- before do
47
- namespace.register_page "Status" do
48
- menu parent: 'Extra'
49
- end
50
- end
51
-
52
- it "should generate the parent menu item" do
53
- expect(menu['Extra']).to_not eq nil
54
- end
55
-
56
- it "should generate its own child item" do
57
- expect(menu['Extra']['Status']).to_not eq nil
58
- end
59
- end
60
-
61
- describe "disabling the menu" do
62
- before do
63
- namespace.register_page "Status" do
64
- menu false
65
- end
66
- end
67
-
68
- it "should not create a menu item" do
69
- expect(menu["Status"]).to eq nil
70
- end
71
- end # describe "disabling the menu"
72
- end # describe "adding to the menu"
73
-
74
- describe "adding as a belongs to" do
75
- context "when not optional" do
76
- before do
77
- namespace.register_page "Reports" do
78
- belongs_to :author
79
- end
80
- end
81
-
82
- it "should be excluded from the menu" do
83
- expect(menu["Reports"]).to be_nil
84
- end
85
- end
86
-
87
- context "when optional" do
88
- before do
89
- namespace.register_page "Reports" do
90
- belongs_to :author, optional: true
91
- end
92
- end
93
-
94
- it "should be in the menu" do
95
- expect(menu["Reports"]).to_not be_nil
96
- end
97
- end
98
- end # describe "adding as a belongs to"
99
- end
@@ -1,162 +0,0 @@
1
- require 'rails_helper'
2
-
3
- # TODO: refactor this file so it doesn't depend on the Admin namespace in such a broken way.
4
- # Specifically, the dashboard is already defined.
5
-
6
- RSpec.describe ActiveAdmin::Namespace, "registering a resource" do
7
- let(:application){ ActiveAdmin::Application.new }
8
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
9
- let(:menu){ namespace.fetch_menu(:default) }
10
-
11
- after { namespace.unload! }
12
-
13
- context "with no configuration" do
14
- before do
15
- namespace.register Category
16
- end
17
-
18
- it "should store the namespaced registered configuration" do
19
- expect(namespace.resources.keys).to include('Category')
20
- end
21
-
22
- it "should create a new controller in the default namespace" do
23
- expect(defined?(Admin::CategoriesController)).to eq 'constant'
24
- end
25
-
26
- skip "should not create the dashboard controller" do
27
- defined?(Admin::DashboardController).to_not eq 'constant'
28
- end
29
-
30
- it "should create a menu item" do
31
- expect(menu["Categories"]).to be_a ActiveAdmin::MenuItem
32
- expect(menu["Categories"].instance_variable_get(:@url)).to be_a Proc
33
- end
34
- end
35
-
36
- context "with a block configuration" do
37
- it "should be evaluated in the dsl" do
38
- expect{ |block|
39
- namespace.register Category, &block
40
- }.to yield_control
41
- end
42
- end
43
-
44
- context "with a resource that's namespaced" do
45
- before do
46
- module ::Mock; class Resource; def self.has_many(arg1, arg2); end; end; end
47
- namespace.register Mock::Resource
48
- end
49
-
50
- it "should store the namespaced registered configuration" do
51
- expect(namespace.resources.keys).to include('Mock::Resource')
52
- end
53
- it "should create a new controller in the default namespace" do
54
- expect(defined?(Admin::MockResourcesController)).to eq 'constant'
55
- end
56
- it "should create a menu item" do
57
- expect(menu["Mock Resources"]).to be_an_instance_of(ActiveAdmin::MenuItem)
58
- end
59
-
60
- it "should use the resource as the model in the controller" do
61
- expect(Admin::MockResourcesController.resource_class).to eq Mock::Resource
62
- end
63
- end # context "with a resource that's namespaced"
64
-
65
- describe "finding resource instances" do
66
- it "should return the resource when its been registered" do
67
- post = namespace.register Post
68
- expect(namespace.resource_for(Post)).to eq post
69
- end
70
-
71
- it 'should return nil when the resource has not been registered' do
72
- expect(namespace.resource_for(Post)).to eq nil
73
- end
74
-
75
- it "should return the parent when the parent class has been registered and the child has not" do
76
- user = namespace.register User
77
- expect(namespace.resource_for(Publisher)).to eq user
78
- end
79
-
80
- it "should return the resource if it and it's parent were registered" do
81
- user = namespace.register User
82
- publisher = namespace.register Publisher
83
- expect(namespace.resource_for(Publisher)).to eq publisher
84
- end
85
- end # describe "finding resource instances"
86
-
87
- describe "adding to the menu" do
88
- describe "adding as a top level item" do
89
- before do
90
- namespace.register Category
91
- end
92
- it "should add a new menu item" do
93
- expect(menu['Categories']).to_not eq nil
94
- end
95
- end # describe "adding as a top level item"
96
-
97
- describe "adding as a child" do
98
- before do
99
- namespace.register Category do
100
- menu parent: 'Blog'
101
- end
102
- end
103
- it "should generate the parent menu item" do
104
- expect(menu['Blog']).to_not eq nil
105
- end
106
- it "should generate its own child item" do
107
- expect(menu['Blog']['Categories']).to_not eq nil
108
- end
109
- end # describe "adding as a child"
110
-
111
- describe "disabling the menu" do
112
- before do
113
- namespace.register Category do
114
- menu false
115
- end
116
- end
117
- it "should not create a menu item" do
118
- expect(menu["Categories"]).to eq nil
119
- end
120
- end # describe "disabling the menu"
121
-
122
- describe "adding as a belongs to" do
123
- context "when not optional" do
124
- before do
125
- namespace.register Post do
126
- belongs_to :author
127
- end
128
- end
129
- it "should not show up in the menu" do
130
- expect(menu["Posts"]).to eq nil
131
- end
132
- end
133
- context "when optional" do
134
- before do
135
- namespace.register Post do
136
- belongs_to :author, optional: true
137
- end
138
- end
139
- it "should show up in the menu" do
140
- expect(menu["Posts"]).to_not eq nil
141
- end
142
- end
143
- end
144
- end # describe "adding to the menu"
145
-
146
- describe "dashboard controller name" do
147
- context "when namespaced" do
148
- it "should be namespaced" do
149
- namespace = ActiveAdmin::Namespace.new(application, :one)
150
- namespace.register Category
151
- expect(defined?(One::CategoriesController)).to eq 'constant'
152
- end
153
- end
154
- context "when not namespaced" do
155
- it "should not be namespaced" do
156
- namespace = ActiveAdmin::Namespace.new(application, :two)
157
- namespace.register Category
158
- expect(defined?(Two::CategoriesController)).to eq 'constant'
159
- end
160
- end
161
- end # describe "dashboard controller name"
162
- end # describe "registering a resource"
@@ -1,124 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Namespace do
4
-
5
- let(:application){ ActiveAdmin::Application.new }
6
-
7
- context "when new" do
8
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
9
-
10
- it "should have an application instance" do
11
- expect(namespace.application).to eq application
12
- end
13
-
14
- it "should have a name" do
15
- expect(namespace.name).to eq :admin
16
- end
17
-
18
- it "should have no resources" do
19
- expect(namespace.resources).to be_empty
20
- end
21
-
22
- it "should not have any menu item" do
23
- expect(namespace.fetch_menu(:default).children).to be_empty
24
- end
25
- end # context "when new"
26
-
27
- describe "#unload!" do
28
- context "when controller is only defined without a namespace" do
29
- before do
30
- # To ensure Admin::PostsController is defined
31
- ActiveAdmin.register Post
32
-
33
- # To ensure ::PostsController is defined
34
- ActiveAdmin.register Post, namespace: false
35
-
36
- # To prevent unload! from unregistering ::PostsController
37
- ActiveAdmin.application.namespaces.instance_variable_get(:@namespaces).delete(:root)
38
-
39
- # To force Admin::PostsController to not be there
40
- Admin.send(:remove_const, 'PostsController')
41
- end
42
-
43
- it "should not crash" do
44
- expect { ActiveAdmin.unload! }.not_to raise_error
45
- end
46
- end
47
- end
48
-
49
- describe "settings" do
50
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
51
-
52
- it "should inherit the site title from the application" do
53
- ActiveAdmin::Namespace.setting :site_title, "Not the Same"
54
- expect(namespace.site_title).to eq application.site_title
55
- end
56
-
57
- it "should be able to override the site title" do
58
- expect(namespace.site_title).to eq application.site_title
59
- namespace.site_title = "My Site Title"
60
- expect(namespace.site_title).to_not eq application.site_title
61
- end
62
- end
63
-
64
- describe "#fetch_menu" do
65
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
66
-
67
- it "returns the menu" do
68
- expect(namespace.fetch_menu(:default)).to be_an_instance_of(ActiveAdmin::Menu)
69
- end
70
-
71
- it "should have utility nav menu" do
72
- expect(namespace.fetch_menu(:utility_navigation)).to be_an_instance_of(ActiveAdmin::Menu)
73
- end
74
-
75
- it "should raise an exception if the menu doesn't exist" do
76
- expect {
77
- namespace.fetch_menu(:not_a_menu_that_exists)
78
- }.to raise_error(KeyError)
79
- end
80
- end
81
-
82
- describe "#build_menu" do
83
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
84
-
85
- it "should set the block as a menu build callback" do
86
- namespace.build_menu do |menu|
87
- menu.add label: "menu item"
88
- end
89
-
90
- expect(namespace.fetch_menu(:default)["menu item"]).to_not eq nil
91
- end
92
-
93
- it "should set a block on a custom menu" do
94
- namespace.build_menu :test do |menu|
95
- menu.add label: "menu item"
96
- end
97
-
98
- expect(namespace.fetch_menu(:test)["menu item"]).to_not eq nil
99
- end
100
- end
101
-
102
- describe "utility navigation" do
103
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
104
- let(:menu) do
105
- namespace.build_menu :utility_navigation do |menu|
106
- menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info", html_options: { target: :blank }
107
- namespace.add_logout_button_to_menu menu, 1, class: "matt"
108
- end
109
- namespace.fetch_menu(:utility_navigation)
110
- end
111
-
112
- it "should have a logout button to the far left" do
113
- expect(menu["Logout"]).to_not eq nil
114
- expect(menu["Logout"].priority).to eq 1
115
- end
116
-
117
- it "should have a static link with a target of :blank" do
118
- expect(menu["ActiveAdmin.info"]).to_not eq nil
119
- expect(menu["ActiveAdmin.info"].html_options).to include(target: :blank)
120
- end
121
-
122
- end
123
-
124
- end
@@ -1,81 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::OrderClause do
4
- subject { described_class.new(config, clause) }
5
-
6
- let(:application) { ActiveAdmin::Application.new }
7
- let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
8
- let(:config) { ActiveAdmin::Resource.new namespace, Post }
9
-
10
- describe 'id_asc (existing column)' do
11
- let(:clause) { 'id_asc' }
12
-
13
- it { is_expected.to be_valid }
14
-
15
- describe '#field' do
16
- subject { super().field }
17
- it { is_expected.to eq('id') }
18
- end
19
-
20
- describe '#order' do
21
- subject { super().order }
22
- it { is_expected.to eq('asc') }
23
- end
24
-
25
- specify '#to_sql prepends table name' do
26
- expect(subject.to_sql).to eq '"posts"."id" asc'
27
- end
28
- end
29
-
30
- describe 'virtual_column_asc' do
31
- let(:clause) { 'virtual_column_asc' }
32
-
33
- it { is_expected.to be_valid }
34
-
35
- describe '#field' do
36
- subject { super().field }
37
- it { is_expected.to eq('virtual_column') }
38
- end
39
-
40
- describe '#order' do
41
- subject { super().order }
42
- it { is_expected.to eq('asc') }
43
- end
44
-
45
- specify '#to_sql' do
46
- expect(subject.to_sql).to eq '"virtual_column" asc'
47
- end
48
- end
49
-
50
- describe "hstore_col->'field'_desc" do
51
- let(:clause) { "hstore_col->'field'_desc" }
52
-
53
- it { is_expected.to be_valid }
54
-
55
- describe '#field' do
56
- subject { super().field }
57
- it { is_expected.to eq("hstore_col->'field'") }
58
- end
59
-
60
- describe '#order' do
61
- subject { super().order }
62
- it { is_expected.to eq('desc') }
63
- end
64
-
65
- it 'converts to sql' do
66
- expect(subject.to_sql).to eq %Q("hstore_col"->'field' desc)
67
- end
68
- end
69
-
70
- describe '_asc' do
71
- let(:clause) { '_asc' }
72
-
73
- it { is_expected.not_to be_valid }
74
- end
75
-
76
- describe 'nil' do
77
- let(:clause) { nil }
78
-
79
- it { is_expected.not_to be_valid }
80
- end
81
- end
@@ -1,5 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::PageController do
4
- let(:controller) { ActiveAdmin::PageController.new }
5
- end
@@ -1,128 +0,0 @@
1
- require 'rails_helper'
2
- require File.expand_path('config_shared_examples', File.dirname(__FILE__))
3
-
4
- module ActiveAdmin
5
- RSpec.describe Page do
6
-
7
- it_should_behave_like "ActiveAdmin::Resource"
8
- before { load_defaults! }
9
-
10
- let(:application){ ActiveAdmin::Application.new }
11
- let(:namespace){ Namespace.new(application, :admin) }
12
- let(:page_name) { "Chocolate I lØve You!" }
13
-
14
- def config(options = {})
15
- @config ||= namespace.register_page("Chocolate I lØve You!", options)
16
- end
17
-
18
- describe "controller name" do
19
- it "should return a namespaced controller name" do
20
- expect(config.controller_name).to eq "Admin::ChocolateILoveYouController"
21
- end
22
- context "when non namespaced controller" do
23
- let(:namespace){ ActiveAdmin::Namespace.new(application, :root) }
24
- it "should return a non namespaced controller name" do
25
- expect(config.controller_name).to eq "ChocolateILoveYouController"
26
- end
27
- end
28
- end
29
-
30
- describe "#resource_name" do
31
- it "returns the name" do
32
- expect(config.resource_name).to eq "Chocolate I lØve You!"
33
- end
34
-
35
- it "returns the singular, lowercase name" do
36
- if RUBY_VERSION >= '2.4.0'
37
- expect(config.resource_name.singular).to eq "chocolate i løve you!"
38
- else
39
- expect(config.resource_name.singular).to eq "chocolate i lØve you!"
40
- end
41
- end
42
- end
43
-
44
- describe "#plural_resource_label" do
45
- it "returns the singular name" do
46
- expect(config.plural_resource_label).to eq "Chocolate I lØve You!"
47
- end
48
- end
49
-
50
- describe "#underscored_resource_name" do
51
- it "returns the resource name underscored" do
52
- expect(config.underscored_resource_name).to eq "chocolate_i_love_you"
53
- end
54
- end
55
-
56
- describe "#camelized_resource_name" do
57
- it "returns the resource name camel case" do
58
- expect(config.camelized_resource_name).to eq "ChocolateILoveYou"
59
- end
60
- end
61
-
62
- describe "#namespace_name" do
63
- it "returns the name of the namespace" do
64
- expect(config.namespace_name).to eq "admin"
65
- end
66
- end
67
-
68
- it "should not belong_to anything" do
69
- expect(config.belongs_to?).to eq false
70
- end
71
-
72
- it "should not have any action_items" do
73
- expect(config.action_items?).to eq false
74
- end
75
-
76
- it "should not have any sidebar_sections" do
77
- expect(config.sidebar_sections?).to eq false
78
- end
79
-
80
- context "with belongs to config" do
81
- let!(:post_config) { namespace.register Post }
82
- let!(:page_config) {
83
- namespace.register_page page_name do
84
- belongs_to :post
85
- end
86
- }
87
-
88
- it "configures page with belongs_to" do
89
- expect(page_config.belongs_to?).to be true
90
- end
91
-
92
- it "sets navigation menu to parent" do
93
- expect(page_config.navigation_menu_name).to eq :post
94
- end
95
-
96
- it "builds a belongs_to relationship" do
97
- belongs_to = page_config.belongs_to_config
98
-
99
- expect(belongs_to.target).to eq(post_config)
100
- expect(belongs_to.owner).to eq(page_config)
101
- expect(belongs_to.optional?).to be_falsy
102
- end
103
-
104
- it "forwards belongs_to call to controller" do
105
- options = { optional: true }
106
- expect(page_config.controller).to receive(:belongs_to).with(:post, options)
107
- page_config.belongs_to :post, options
108
- end
109
- end # context "with belongs to config" do
110
-
111
- context "with optional belongs to config" do
112
- let!(:post_config) { namespace.register Post }
113
- let!(:page_config) {
114
- namespace.register_page page_name do
115
- belongs_to :post, optional: true
116
- end
117
- }
118
-
119
- it "does not override default navigation menu" do
120
- expect(page_config.navigation_menu_name).to eq(:default)
121
- end
122
- end # context "with optional belongs to config" do
123
-
124
- it "has no belongs_to by default" do
125
- expect(config.belongs_to?).to be_falsy
126
- end
127
- end
128
- end
@@ -1,82 +0,0 @@
1
- require 'rails_helper'
2
- require 'active_admin/view_helpers/display_helper'
3
-
4
- RSpec.describe "#pretty_format" do
5
- include ActiveAdmin::ViewHelpers::DisplayHelper
6
-
7
- def method_missing(*args, &block)
8
- mock_action_view.send *args, &block
9
- end
10
-
11
- ['hello', 23, 5.67, 10**30, :foo, Arbre::Element.new.br].each do |obj|
12
- it "should call `to_s` on #{obj.class}s" do
13
- expect(pretty_format(obj)).to eq obj.to_s
14
- end
15
- end
16
-
17
- shared_examples_for 'a time-ish object' do |t|
18
- it "formats it with the default long format" do
19
- expect(pretty_format(t)).to eq "February 28, 1985 20:15"
20
- end
21
-
22
- it "formats it with a customized long format" do
23
- with_translation time: { formats: { long: "%B %d, %Y, %l:%M%P" } } do
24
- expect(pretty_format(t)).to eq "February 28, 1985, 8:15pm"
25
- end
26
- end
27
-
28
- context "with a custom localize format" do
29
- around do |example|
30
- previous_localize_format = ActiveAdmin.application.localize_format
31
- ActiveAdmin.application.localize_format = :short
32
- example.call
33
- ActiveAdmin.application.localize_format = previous_localize_format
34
- end
35
-
36
- it "formats it with the default custom format" do
37
- expect(pretty_format(t)).to eq "28 Feb 20:15"
38
- end
39
-
40
- it "formats it with i18n custom format" do
41
- with_translation time: { formats: { short: "%-m %d %Y" } } do
42
- expect(pretty_format(t)).to eq "2 28 1985"
43
- end
44
- end
45
- end
46
-
47
- context "with non-English locale" do
48
- around do |example|
49
- I18n.with_locale(:es) { example.call }
50
- end
51
-
52
- it "formats it with the default long format" do
53
- expect(pretty_format(t)).to eq "28 de febrero de 1985 20:15"
54
- end
55
-
56
- it "formats it with a customized long format" do
57
- with_translation time: { formats: { long: "El %d de %B de %Y a las %H horas y %M minutos" } } do
58
- expect(pretty_format(t)).to eq "El 28 de febrero de 1985 a las 20 horas y 15 minutos"
59
- end
60
- end
61
- end
62
- end
63
-
64
- it_behaves_like 'a time-ish object', Time.utc(1985, "feb", 28, 20, 15, 1)
65
- it_behaves_like 'a time-ish object', DateTime.new(1985, 2, 28, 20, 15, 1)
66
-
67
- context "given an ActiveRecord object" do
68
- it "should delegate to auto_link" do
69
- post = Post.new
70
- expect(self).to receive(:auto_link).with(post) { "model name" }
71
- expect(pretty_format(post)).to eq "model name"
72
- end
73
- end
74
-
75
- context "given an arbitrary object" do
76
- it "should delegate to `display_name`" do
77
- something = Class.new.new
78
- expect(self).to receive(:display_name).with(something) { "I'm not famous" }
79
- expect(pretty_format(something)).to eq "I'm not famous"
80
- end
81
- end
82
- end