blacklight 6.14.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.npmignore +23 -0
  4. data/.rubocop.yml +40 -16
  5. data/.rubocop_todo.yml +479 -375
  6. data/.solr_wrapper.yml +9 -2
  7. data/.travis.yml +27 -20
  8. data/Gemfile +3 -1
  9. data/README.md +22 -5
  10. data/Rakefile +3 -2
  11. data/VERSION +1 -1
  12. data/Vagrantfile +2 -0
  13. data/app/assets/images/blacklight/list.svg +1 -0
  14. data/app/assets/images/blacklight/search.svg +1 -0
  15. data/app/assets/javascripts/blacklight/blacklight.js +497 -57
  16. data/app/assets/stylesheets/blacklight/_balanced_list.scss +7 -12
  17. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +18 -15
  18. data/app/assets/stylesheets/blacklight/_bookmark.scss +1 -13
  19. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +27 -0
  20. data/app/assets/stylesheets/blacklight/_constraints.scss +17 -25
  21. data/app/assets/stylesheets/blacklight/_controls.scss +8 -16
  22. data/app/assets/stylesheets/blacklight/_facets.scss +64 -93
  23. data/app/assets/stylesheets/blacklight/_header.scss +35 -48
  24. data/app/assets/stylesheets/blacklight/_icons.scss +35 -0
  25. data/app/assets/stylesheets/blacklight/_layout.scss +0 -10
  26. data/app/assets/stylesheets/blacklight/_mixins.scss +15 -0
  27. data/app/assets/stylesheets/blacklight/_modal.scss +9 -17
  28. data/app/assets/stylesheets/blacklight/_pagination.scss +2 -17
  29. data/app/assets/stylesheets/blacklight/_search_form.scss +7 -0
  30. data/app/assets/stylesheets/blacklight/_search_history.scss +5 -13
  31. data/app/assets/stylesheets/blacklight/_search_results.scss +9 -8
  32. data/app/assets/stylesheets/blacklight/_twitter_typeahead.scss +1 -2
  33. data/app/assets/stylesheets/blacklight/blacklight.scss +1 -1
  34. data/app/builders/blacklight/action_builder.rb +57 -0
  35. data/app/controllers/bookmarks_controller.rb +2 -2
  36. data/app/controllers/catalog_controller.rb +2 -2
  37. data/app/controllers/concerns/blacklight/base.rb +0 -33
  38. data/app/controllers/concerns/blacklight/bookmarks.rb +36 -33
  39. data/app/controllers/concerns/blacklight/catalog.rb +266 -210
  40. data/app/controllers/concerns/blacklight/controller.rb +111 -126
  41. data/app/controllers/concerns/blacklight/default_component_configuration.rb +12 -43
  42. data/app/controllers/concerns/blacklight/facet.rb +3 -0
  43. data/app/controllers/concerns/blacklight/search_context.rb +16 -14
  44. data/app/controllers/concerns/blacklight/search_fields.rb +4 -14
  45. data/app/controllers/concerns/blacklight/search_history.rb +1 -6
  46. data/app/controllers/concerns/blacklight/token_based_user.rb +24 -9
  47. data/app/helpers/blacklight/blacklight_helper_behavior.rb +39 -119
  48. data/app/helpers/blacklight/catalog_helper_behavior.rb +94 -88
  49. data/app/helpers/blacklight/component_helper_behavior.rb +21 -19
  50. data/app/helpers/blacklight/configuration_helper_behavior.rb +30 -57
  51. data/app/helpers/blacklight/facets_helper_behavior.rb +55 -51
  52. data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +9 -11
  53. data/app/helpers/blacklight/icon_helper_behavior.rb +18 -0
  54. data/app/helpers/blacklight/layout_helper_behavior.rb +3 -3
  55. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +8 -6
  56. data/app/helpers/blacklight/render_partials_helper_behavior.rb +195 -0
  57. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +19 -11
  58. data/app/helpers/blacklight/suggest_helper_behavior.rb +1 -0
  59. data/app/helpers/blacklight/url_helper_behavior.rb +50 -41
  60. data/app/{assets/javascripts → javascript}/blacklight/autocomplete.js +3 -2
  61. data/app/javascript/blacklight/bookmark_toggle.js +25 -0
  62. data/app/javascript/blacklight/checkbox_submit.js +134 -0
  63. data/app/{assets/javascripts → javascript}/blacklight/collapsable.js +1 -1
  64. data/app/{assets/javascripts → javascript}/blacklight/core.js +10 -8
  65. data/app/{assets/javascripts → javascript}/blacklight/facet_load.js +6 -6
  66. data/app/{assets/javascripts/blacklight/ajax_modal.js → javascript/blacklight/modal.js} +62 -64
  67. data/app/{assets/javascripts → javascript}/blacklight/search_context.js +10 -3
  68. data/app/models/blacklight/facet_paginator.rb +3 -3
  69. data/app/models/blacklight/icon.rb +56 -0
  70. data/app/models/blacklight/solr/facet_paginator.rb +3 -3
  71. data/app/models/blacklight/suggest_search.rb +4 -15
  72. data/app/models/bookmark.rb +5 -10
  73. data/app/models/concerns/blacklight/configurable.rb +13 -13
  74. data/app/models/concerns/blacklight/document/active_model_shim.rb +13 -11
  75. data/app/models/concerns/blacklight/document/cache_key.rb +1 -1
  76. data/app/models/concerns/blacklight/document/dublin_core.rb +2 -2
  77. data/app/models/concerns/blacklight/document/email.rb +1 -1
  78. data/app/models/concerns/blacklight/document/extensions.rb +5 -5
  79. data/app/models/concerns/blacklight/document/semantic_fields.rb +9 -9
  80. data/app/models/concerns/blacklight/document/sms.rb +1 -1
  81. data/app/models/concerns/blacklight/document.rb +26 -40
  82. data/app/models/concerns/blacklight/solr/document.rb +8 -8
  83. data/app/models/concerns/blacklight/suggest/response.rb +5 -3
  84. data/app/models/concerns/blacklight/user.rb +7 -6
  85. data/app/models/record_mailer.rb +5 -6
  86. data/app/models/search.rb +5 -7
  87. data/app/presenters/blacklight/document_presenter.rb +25 -140
  88. data/app/presenters/blacklight/field_presenter.rb +7 -5
  89. data/app/presenters/blacklight/index_presenter.rb +41 -58
  90. data/app/presenters/blacklight/json_presenter.rb +10 -14
  91. data/app/presenters/blacklight/link_alternate_presenter.rb +3 -1
  92. data/app/presenters/blacklight/rendering/abstract_step.rb +7 -5
  93. data/app/presenters/blacklight/rendering/helper_method.rb +10 -8
  94. data/app/presenters/blacklight/rendering/join.rb +5 -3
  95. data/app/presenters/blacklight/rendering/link_to_facet.rb +23 -19
  96. data/app/presenters/blacklight/rendering/microdata.rb +6 -3
  97. data/app/presenters/blacklight/rendering/pipeline.rb +7 -5
  98. data/app/presenters/blacklight/rendering/terminator.rb +2 -0
  99. data/app/presenters/blacklight/search_bar_presenter.rb +39 -0
  100. data/app/presenters/blacklight/show_presenter.rb +26 -63
  101. data/app/presenters/blacklight/thumbnail_presenter.rb +74 -0
  102. data/app/services/blacklight/document_factory.rb +13 -0
  103. data/app/services/blacklight/field_retriever.rb +26 -24
  104. data/app/services/blacklight/search_service.rb +152 -0
  105. data/app/values/blacklight/types.rb +31 -0
  106. data/app/views/blacklight/nav/_bookmark.html.erb +2 -2
  107. data/app/views/blacklight/nav/_search_history.html.erb +1 -1
  108. data/app/views/bookmarks/_tools.html.erb +2 -2
  109. data/app/views/bookmarks/index.html.erb +12 -13
  110. data/app/views/catalog/_bookmark_control.html.erb +26 -10
  111. data/app/views/catalog/_citation.html.erb +4 -4
  112. data/app/views/catalog/_constraints.html.erb +6 -7
  113. data/app/views/catalog/_constraints_element.html.erb +6 -6
  114. data/app/views/catalog/_did_you_mean.html.erb +1 -1
  115. data/app/views/catalog/{_document_default.atom.builder → _document.atom.builder} +19 -18
  116. data/app/views/catalog/_document.html.erb +5 -3
  117. data/app/views/catalog/{_document_default.rss.builder → _document.rss.builder} +2 -0
  118. data/app/views/catalog/_document_action.html.erb +2 -1
  119. data/app/views/catalog/_email_form.html.erb +8 -4
  120. data/app/views/catalog/_facet_index_navigation.html.erb +5 -4
  121. data/app/views/catalog/_facet_layout.html.erb +6 -10
  122. data/app/views/catalog/_facet_limit.html.erb +3 -2
  123. data/app/views/catalog/_facet_pagination.html.erb +8 -8
  124. data/app/views/catalog/_facet_pivot.html.erb +2 -2
  125. data/app/views/catalog/_facets.html.erb +9 -12
  126. data/app/views/catalog/_field.json.jbuilder +10 -0
  127. data/app/views/catalog/{_group_default.html.erb → _group.html.erb} +1 -1
  128. data/app/views/catalog/_home_text.html.erb +32 -36
  129. data/app/views/catalog/_index.html.erb +10 -0
  130. data/app/views/catalog/{_index_header_default.html.erb → _index_header.html.erb} +3 -3
  131. data/app/views/catalog/_per_page_widget.html.erb +6 -7
  132. data/app/views/catalog/_previous_next_doc.html.erb +6 -14
  133. data/app/views/catalog/_results_pagination.html.erb +2 -2
  134. data/app/views/catalog/_search_form.html.erb +12 -8
  135. data/app/views/catalog/_search_header.html.erb +0 -3
  136. data/app/views/catalog/_search_results.html.erb +6 -2
  137. data/app/views/catalog/_show.html.erb +8 -0
  138. data/app/views/catalog/_show_main_content.html.erb +4 -4
  139. data/app/views/catalog/_show_more_like_this.html.erb +1 -1
  140. data/app/views/catalog/_show_sidebar.html.erb +3 -3
  141. data/app/views/catalog/_show_tools.html.erb +10 -12
  142. data/app/views/catalog/_sms_form.html.erb +8 -4
  143. data/app/views/catalog/_sort_and_per_page.html.erb +3 -3
  144. data/app/views/catalog/_sort_widget.html.erb +7 -7
  145. data/app/views/catalog/_thumbnail.html.erb +5 -0
  146. data/app/views/catalog/_view_type_group.html.erb +2 -2
  147. data/app/views/catalog/_zero_results.html.erb +1 -1
  148. data/app/views/catalog/citation.js.erb +4 -2
  149. data/app/views/catalog/email.html.erb +5 -3
  150. data/app/views/catalog/email_success.html.erb +12 -8
  151. data/app/views/catalog/facet.html.erb +10 -8
  152. data/app/views/catalog/facet.json.jbuilder +2 -0
  153. data/app/views/catalog/index.atom.builder +13 -16
  154. data/app/views/catalog/index.html.erb +9 -11
  155. data/app/views/catalog/index.json.jbuilder +84 -3
  156. data/app/views/catalog/index.rss.builder +7 -5
  157. data/app/views/catalog/opensearch.xml.builder +12 -10
  158. data/app/views/catalog/show.html.erb +11 -6
  159. data/app/views/catalog/show.json.jbuilder +21 -0
  160. data/app/views/catalog/sms.html.erb +3 -1
  161. data/app/views/catalog/sms_success.html.erb +12 -8
  162. data/app/views/kaminari/blacklight/_first_page.html.erb +2 -2
  163. data/app/views/kaminari/blacklight/_gap.html.erb +2 -2
  164. data/app/views/kaminari/blacklight/_last_page.html.erb +2 -2
  165. data/app/views/kaminari/blacklight/_next_page.html.erb +5 -5
  166. data/app/views/kaminari/blacklight/_page.html.erb +5 -3
  167. data/app/views/kaminari/blacklight/_prev_page.html.erb +4 -4
  168. data/app/views/kaminari/blacklight_compact/_paginator.html.erb +4 -4
  169. data/app/views/layouts/blacklight/base.html.erb +35 -0
  170. data/app/views/layouts/blacklight.html.erb +14 -41
  171. data/app/views/layouts/catalog_result.html.erb +11 -0
  172. data/app/views/search_history/index.html.erb +16 -21
  173. data/app/views/shared/_header_navbar.html.erb +8 -13
  174. data/app/views/shared/_modal.html.erb +6 -0
  175. data/app/views/shared/_user_util_links.html.erb +22 -0
  176. data/blacklight.gemspec +10 -11
  177. data/config/i18n-tasks.yml +17 -0
  178. data/config/locales/blacklight.de.yml +71 -82
  179. data/config/locales/blacklight.en.yml +15 -27
  180. data/config/locales/blacklight.es.yml +14 -26
  181. data/config/locales/blacklight.fr.yml +16 -33
  182. data/config/locales/blacklight.hu.yml +212 -0
  183. data/config/locales/blacklight.it.yml +15 -26
  184. data/config/locales/blacklight.nl.yml +212 -0
  185. data/config/locales/blacklight.pt-BR.yml +24 -29
  186. data/config/locales/blacklight.sq.yml +4 -28
  187. data/config/locales/blacklight.zh.yml +3 -25
  188. data/config/routes.rb +2 -10
  189. data/db/migrate/20140202020202_create_bookmarks.rb +0 -1
  190. data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +1 -1
  191. data/lib/blacklight/abstract_repository.rb +22 -10
  192. data/lib/blacklight/configuration/context.rb +12 -1
  193. data/lib/blacklight/configuration/facet_field.rb +16 -9
  194. data/lib/blacklight/configuration/field.rb +32 -3
  195. data/lib/blacklight/configuration/fields.rb +61 -58
  196. data/lib/blacklight/configuration/null_field.rb +2 -0
  197. data/lib/blacklight/configuration/search_field.rb +2 -2
  198. data/lib/blacklight/configuration/sort_field.rb +2 -2
  199. data/lib/blacklight/configuration/view_config.rb +4 -0
  200. data/lib/blacklight/configuration.rb +101 -88
  201. data/lib/blacklight/engine.rb +11 -7
  202. data/lib/blacklight/exceptions.rb +4 -7
  203. data/lib/blacklight/{utils.rb → nested_open_struct_with_hash_access.rb} +9 -81
  204. data/lib/blacklight/open_struct_with_hash_access.rb +49 -0
  205. data/lib/blacklight/parameters.rb +1 -1
  206. data/lib/blacklight/routes/exportable.rb +1 -3
  207. data/lib/blacklight/routes/searchable.rb +3 -3
  208. data/lib/blacklight/runtime_registry.rb +2 -0
  209. data/lib/blacklight/search_builder.rb +28 -35
  210. data/lib/blacklight/search_state.rb +10 -8
  211. data/lib/blacklight/solr/repository.rb +40 -6
  212. data/lib/blacklight/solr/request.rb +1 -1
  213. data/lib/blacklight/solr/response/facets.rb +29 -31
  214. data/lib/blacklight/solr/response/group.rb +3 -3
  215. data/lib/blacklight/solr/response/group_response.rb +1 -1
  216. data/lib/blacklight/solr/response/more_like_this.rb +2 -2
  217. data/lib/blacklight/solr/response/response.rb +2 -2
  218. data/lib/blacklight/solr/response/spelling.rb +4 -3
  219. data/lib/blacklight/solr/response.rb +29 -30
  220. data/lib/blacklight/solr/search_builder_behavior.rb +25 -29
  221. data/lib/blacklight/version.rb +1 -1
  222. data/lib/blacklight.rb +10 -8
  223. data/lib/generators/blacklight/assets_generator.rb +18 -12
  224. data/lib/generators/blacklight/controller_generator.rb +4 -5
  225. data/lib/generators/blacklight/document_generator.rb +1 -1
  226. data/lib/generators/blacklight/install_generator.rb +18 -28
  227. data/lib/generators/blacklight/search_builder_generator.rb +1 -1
  228. data/lib/generators/blacklight/{solr5_generator.rb → solr_generator.rb} +12 -6
  229. data/lib/generators/blacklight/templates/.solr_wrapper.yml +5 -0
  230. data/lib/generators/blacklight/templates/alternate_controller.rb +4 -4
  231. data/lib/generators/blacklight/templates/blacklight.scss +0 -2
  232. data/lib/generators/blacklight/templates/catalog_controller.rb +59 -49
  233. data/lib/generators/blacklight/templates/config/blacklight.yml +1 -13
  234. data/lib/generators/blacklight/templates/solr/conf/schema.xml +388 -0
  235. data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +195 -0
  236. data/lib/generators/blacklight/test_support_generator.rb +10 -10
  237. data/lib/generators/blacklight/user_generator.rb +5 -6
  238. data/lib/railties/blacklight.rake +17 -21
  239. data/package-lock.json +2195 -0
  240. data/package.json +29 -0
  241. data/spec/controllers/alternate_controller_spec.rb +5 -4
  242. data/spec/controllers/application_controller_spec.rb +1 -5
  243. data/spec/controllers/blacklight/base_spec.rb +6 -3
  244. data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +11 -7
  245. data/spec/controllers/blacklight/facet_spec.rb +1 -2
  246. data/spec/controllers/blacklight/search_fields_spec.rb +25 -34
  247. data/spec/controllers/bookmarks_controller_spec.rb +46 -11
  248. data/spec/controllers/catalog_controller_spec.rb +334 -161
  249. data/spec/controllers/search_history_controller_spec.rb +6 -6
  250. data/spec/features/alternate_controller_spec.rb +4 -4
  251. data/spec/features/autocomplete_spec.rb +4 -2
  252. data/spec/features/bookmarks_spec.rb +10 -10
  253. data/spec/features/did_you_mean_spec.rb +7 -12
  254. data/spec/features/facets_spec.rb +29 -17
  255. data/spec/features/record_view_spec.rb +12 -18
  256. data/spec/features/search_context_spec.rb +6 -7
  257. data/spec/features/search_crawler_spec.rb +3 -5
  258. data/spec/features/search_filters_spec.rb +80 -80
  259. data/spec/features/search_formats_spec.rb +1 -1
  260. data/spec/features/search_history_spec.rb +6 -29
  261. data/spec/features/search_pagination_spec.rb +4 -2
  262. data/spec/features/search_results_spec.rb +14 -12
  263. data/spec/features/search_sort_spec.rb +2 -2
  264. data/spec/features/search_spec.rb +8 -9
  265. data/spec/features/sitelinks_search_box.rb +4 -4
  266. data/{solr → spec/fixtures}/sample_solr_documents.yml +688 -688
  267. data/spec/helpers/{configuration_helper_spec.rb → blacklight/configuration_helper_behavior_spec.rb} +97 -92
  268. data/spec/helpers/{facets_helper_spec.rb → blacklight/facets_helper_behavior_spec.rb} +72 -67
  269. data/spec/helpers/{hash_as_hidden_fields_spec.rb → blacklight/hash_as_hidden_fields_behavior_spec.rb} +2 -2
  270. data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +10 -0
  271. data/spec/helpers/{layout_helper_spec.rb → blacklight/layout_helper_behavior_spec.rb} +5 -5
  272. data/spec/helpers/{render_constraints_helper_spec.rb → blacklight/render_constraints_helper_behavior_spec.rb} +10 -6
  273. data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +92 -0
  274. data/spec/helpers/{search_history_constraints_helper_spec.rb → blacklight/search_history_constraints_helper_behavior_spec.rb} +29 -30
  275. data/spec/helpers/{suggest_helper_spec.rb → blacklight/suggest_helper_behavior_spec.rb} +9 -2
  276. data/spec/helpers/{url_helper_spec.rb → blacklight/url_helper_behavior_spec.rb} +56 -54
  277. data/spec/helpers/blacklight_helper_spec.rb +65 -150
  278. data/spec/helpers/catalog_helper_spec.rb +80 -96
  279. data/spec/i18n_spec.rb +18 -0
  280. data/spec/integration/generators/blacklight/{solr5_generator_spec.rb → solr_generator_spec.rb} +21 -13
  281. data/spec/lib/blacklight/configuration/facet_field_spec.rb +13 -0
  282. data/spec/lib/blacklight/configuration/field_spec.rb +15 -0
  283. data/spec/lib/blacklight/nested_open_struct_with_hash_access_spec.rb +17 -0
  284. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +148 -0
  285. data/spec/lib/blacklight/parameters_spec.rb +4 -2
  286. data/spec/lib/blacklight/search_state_spec.rb +53 -36
  287. data/spec/lib/blacklight_spec.rb +14 -15
  288. data/spec/lib/tasks/blacklight_task_spec.rb +4 -6
  289. data/spec/models/blacklight/configurable_spec.rb +24 -27
  290. data/spec/models/blacklight/configuration/context_spec.rb +9 -10
  291. data/spec/models/blacklight/configuration_spec.rb +248 -223
  292. data/spec/models/blacklight/document/active_model_shim_spec.rb +15 -6
  293. data/spec/models/blacklight/document/cache_key_spec.rb +9 -2
  294. data/spec/models/blacklight/document/dublin_core_spec.rb +17 -20
  295. data/spec/models/blacklight/document/email_spec.rb +10 -10
  296. data/spec/models/blacklight/document/sms_spec.rb +10 -10
  297. data/spec/models/blacklight/document_spec.rb +10 -22
  298. data/spec/models/blacklight/facet_paginator_spec.rb +40 -30
  299. data/spec/models/blacklight/icon_spec.rb +44 -0
  300. data/spec/models/blacklight/search_builder_spec.rb +41 -26
  301. data/spec/models/blacklight/solr/document_spec.rb +224 -216
  302. data/spec/models/blacklight/solr/facet_paginator_spec.rb +6 -4
  303. data/spec/models/blacklight/solr/repository_spec.rb +61 -46
  304. data/spec/models/blacklight/solr/request_spec.rb +17 -18
  305. data/spec/models/blacklight/solr/response/facets_spec.rb +58 -58
  306. data/spec/models/blacklight/solr/response/group_response_spec.rb +16 -22
  307. data/spec/models/blacklight/solr/response/group_spec.rb +18 -25
  308. data/spec/models/blacklight/solr/response_spec.rb +56 -55
  309. data/spec/models/blacklight/solr/search_builder_spec.rb +150 -164
  310. data/spec/models/blacklight/suggest/response_spec.rb +6 -4
  311. data/spec/models/blacklight/suggest_search_spec.rb +9 -16
  312. data/spec/models/blacklight/user_spec.rb +9 -11
  313. data/spec/models/bookmark_spec.rb +7 -6
  314. data/spec/models/record_mailer_spec.rb +23 -21
  315. data/spec/models/search_spec.rb +19 -18
  316. data/spec/models/solr_document_spec.rb +33 -5
  317. data/spec/presenters/blacklight/document_presenter_spec.rb +86 -0
  318. data/spec/presenters/blacklight/index_presenter_spec.rb +186 -0
  319. data/spec/presenters/blacklight/json_presenter_spec.rb +59 -0
  320. data/spec/presenters/blacklight/link_alternate_presenter_spec.rb +3 -0
  321. data/spec/presenters/blacklight/search_bar_presenter_spec.rb +79 -0
  322. data/spec/presenters/blacklight/show_presenter_spec.rb +333 -0
  323. data/spec/presenters/pipeline_spec.rb +18 -11
  324. data/spec/presenters/thumbnail_presenter_spec.rb +174 -0
  325. data/spec/routing/catalog_routing_spec.rb +13 -15
  326. data/spec/services/blacklight/search_service_spec.rb +488 -0
  327. data/spec/spec_helper.rb +20 -19
  328. data/spec/support/features/session_helpers.rb +4 -4
  329. data/spec/support/features.rb +1 -1
  330. data/spec/test_app_templates/Gemfile.extra +2 -4
  331. data/spec/test_app_templates/lib/generators/test_app_generator.rb +12 -13
  332. data/spec/views/catalog/_constraints.html.erb_spec.rb +3 -6
  333. data/spec/views/catalog/_constraints_element.html.erb_spec.rb +17 -13
  334. data/spec/views/catalog/_document.html.erb_spec.rb +11 -11
  335. data/spec/views/catalog/_document_list.html.erb_spec.rb +2 -1
  336. data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +5 -5
  337. data/spec/views/catalog/_facet_layout.html.erb_spec.rb +6 -6
  338. data/spec/views/catalog/_facets.html.erb_spec.rb +10 -12
  339. data/spec/views/catalog/{_index_default.erb_spec.rb → _index.html.erb_spec.rb} +14 -15
  340. data/spec/views/catalog/{_index_header_default.html.erb_spec.rb → _index_header.html.erb_spec.rb} +6 -9
  341. data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +7 -30
  342. data/spec/views/catalog/_search_header.erb_spec.rb +1 -3
  343. data/spec/views/catalog/{_show_default.erb_spec.rb → _show.html.erb_spec.rb} +13 -14
  344. data/spec/views/catalog/_show_sidebar.erb_spec.rb +6 -9
  345. data/spec/views/catalog/_show_tools.html.erb_spec.rb +5 -5
  346. data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +1 -2
  347. data/spec/views/catalog/_sort_widget.html.erb_spec.rb +3 -1
  348. data/spec/views/catalog/{_thumbnail_default.erb_spec.rb → _thumbnail.html.erb_spec.rb} +7 -9
  349. data/spec/views/catalog/_view_type_group.html.erb_spec.rb +12 -10
  350. data/spec/views/catalog/email_success.html.erb_spec.rb +8 -0
  351. data/spec/views/catalog/facet.html.erb_spec.rb +4 -3
  352. data/spec/views/catalog/facet.json.jbuilder_spec.rb +3 -2
  353. data/spec/views/catalog/index.atom.builder_spec.rb +11 -6
  354. data/spec/views/catalog/index.html.erb_spec.rb +6 -8
  355. data/spec/views/catalog/index.json.jbuilder_spec.rb +119 -26
  356. data/spec/views/catalog/opensearch.xml.builder_spec.rb +1 -1
  357. data/spec/views/catalog/show.html.erb_spec.rb +8 -8
  358. data/spec/views/catalog/show.json.jbuilder_spec.rb +40 -0
  359. data/spec/views/catalog/sms_success.html.erb_spec.rb +8 -0
  360. data/spec/views/{_user_util_links.html.erb_spec.rb → shared/_user_util_links.html.erb_spec.rb} +4 -7
  361. data/tasks/blacklight.rake +10 -8
  362. data/template.demo.rb +3 -11
  363. metadata +188 -189
  364. data/app/assets/javascripts/blacklight/autofocus.js +0 -16
  365. data/app/assets/javascripts/blacklight/bookmark_toggle.js +0 -23
  366. data/app/assets/javascripts/blacklight/checkbox_submit.js +0 -135
  367. data/app/controllers/concerns/blacklight/request_builders.rb +0 -77
  368. data/app/controllers/concerns/blacklight/saved_searches.rb +0 -70
  369. data/app/controllers/concerns/blacklight/search_helper.rb +0 -155
  370. data/app/controllers/concerns/blacklight/suggest.rb +0 -25
  371. data/app/controllers/saved_searches_controller.rb +0 -4
  372. data/app/controllers/suggest_controller.rb +0 -4
  373. data/app/helpers/blacklight/deprecated_url_helper_behavior.rb +0 -57
  374. data/app/helpers/blacklight/render_partials_helper.rb +0 -205
  375. data/app/helpers/blacklight_configuration_helper.rb +0 -4
  376. data/app/helpers/blacklight_url_helper.rb +0 -4
  377. data/app/helpers/component_helper.rb +0 -4
  378. data/app/helpers/facets_helper.rb +0 -4
  379. data/app/helpers/hash_as_hidden_fields_helper.rb +0 -4
  380. data/app/helpers/layout_helper.rb +0 -4
  381. data/app/helpers/render_constraints_helper.rb +0 -4
  382. data/app/helpers/search_history_constraints_helper.rb +0 -4
  383. data/app/helpers/suggest_helper.rb +0 -4
  384. data/app/models/concerns/blacklight/solr/document/more_like_this.rb +0 -6
  385. data/app/views/_user_util_links.html.erb +0 -26
  386. data/app/views/blacklight/nav/_saved_searches.html.erb +0 -1
  387. data/app/views/catalog/_index_default.html.erb +0 -12
  388. data/app/views/catalog/_show_default.html.erb +0 -10
  389. data/app/views/catalog/_thumbnail_default.html.erb +0 -5
  390. data/app/views/saved_searches/index.html.erb +0 -32
  391. data/app/views/shared/_ajax_modal.html.erb +0 -6
  392. data/lib/generators/blacklight/solr4_generator.rb +0 -31
  393. data/lib/generators/blacklight/templates/config/jetty.yml +0 -13
  394. data/solr/conf/schema.xml +0 -629
  395. data/solr/conf/solrconfig.xml +0 -411
  396. data/spec/controllers/blacklight/search_helper_spec.rb +0 -470
  397. data/spec/controllers/saved_searches_controller_spec.rb +0 -32
  398. data/spec/controllers/suggest_controller_spec.rb +0 -17
  399. data/spec/features/saved_searches_spec.rb +0 -47
  400. data/spec/helpers/deprecated_url_helper_behavior_spec.rb +0 -101
  401. data/spec/lib/blacklight/utils_spec.rb +0 -167
  402. data/spec/models/blacklight/solr/document/more_like_this_spec.rb +0 -18
  403. data/spec/presenters/document_presenter_spec.rb +0 -438
  404. data/spec/presenters/index_presenter_spec.rb +0 -173
  405. data/spec/presenters/show_presenter_spec.rb +0 -313
  406. data/spec/support/backport_test.rb +0 -14
  407. /data/app/views/catalog/{_show_header_default.html.erb → _show_header.html.erb} +0 -0
  408. /data/app/views/{_flash_msg.html.erb → shared/_flash_msg.html.erb} +0 -0
  409. /data/{solr → lib/generators/blacklight/templates/solr}/conf/_rest_managed.json +0 -0
  410. /data/{solr → lib/generators/blacklight/templates/solr}/conf/admin-extra.html +0 -0
  411. /data/{solr → lib/generators/blacklight/templates/solr}/conf/elevate.xml +0 -0
  412. /data/{solr → lib/generators/blacklight/templates/solr}/conf/mapping-ISOLatin1Accent.txt +0 -0
  413. /data/{solr → lib/generators/blacklight/templates/solr}/conf/protwords.txt +0 -0
  414. /data/{solr → lib/generators/blacklight/templates/solr}/conf/scripts.conf +0 -0
  415. /data/{solr → lib/generators/blacklight/templates/solr}/conf/spellings.txt +0 -0
  416. /data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords.txt +0 -0
  417. /data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords_en.txt +0 -0
  418. /data/{solr → lib/generators/blacklight/templates/solr}/conf/synonyms.txt +0 -0
  419. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example.xsl +0 -0
  420. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_atom.xsl +0 -0
  421. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_rss.xsl +0 -0
  422. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/luke.xsl +0 -0
@@ -1,20 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe Blacklight::SearchState do
3
+ RSpec.describe Blacklight::SearchState do
4
+ subject(:search_state) { described_class.new(params, blacklight_config, controller) }
5
+
4
6
  let(:blacklight_config) do
5
7
  Blacklight::Configuration.new.configure do |config|
6
- config.index.title_field = 'title_display'
8
+ config.index.title_field = 'title_tsim'
7
9
  config.index.display_type_field = 'format'
8
10
  end
9
11
  end
10
12
 
11
- subject(:search_state) { described_class.new(params, blacklight_config, controller) }
12
13
  let(:parameter_class) { ActionController::Parameters }
13
14
  let(:controller) { double }
14
15
  let(:params) { parameter_class.new }
15
16
 
16
17
  describe '#to_h' do
17
- let(:data) { { a: '1'} }
18
+ let(:data) { { a: '1' } }
18
19
  let(:params) { parameter_class.new data }
19
20
 
20
21
  it 'returns a copy of the original parameters' do
@@ -52,8 +53,8 @@ describe Blacklight::SearchState do
52
53
 
53
54
  it "takes original params" do
54
55
  result = search_state.params_for_search
55
- expect(result).to eq({ 'default' => 'params' })
56
- expect(params.object_id).to_not eq result.object_id
56
+ expect(result).to eq('default' => 'params')
57
+ expect(params.object_id).not_to eq result.object_id
57
58
  end
58
59
 
59
60
  it "accepts params to merge into the controller's params" do
@@ -63,15 +64,17 @@ describe Blacklight::SearchState do
63
64
 
64
65
  context "when params have blacklisted keys" do
65
66
  let(:params) { parameter_class.new action: 'action', controller: 'controller', id: "id", commit: 'commit' }
67
+
66
68
  it "removes them" do
67
69
  result = search_state.params_for_search
68
- expect(result.keys).to_not include(:action, :controller, :commit, :id)
70
+ expect(result.keys).not_to include(:action, :controller, :commit, :id)
69
71
  end
70
72
  end
71
73
 
72
74
  context "when params has page" do
73
75
  context "and per_page changed" do
74
76
  let(:params) { parameter_class.new per_page: 20, page: 5 }
77
+
75
78
  it "adjusts the current page" do
76
79
  result = search_state.params_for_search(per_page: 100)
77
80
  expect(result[:page]).to eq 1
@@ -80,6 +83,7 @@ describe Blacklight::SearchState do
80
83
 
81
84
  context "and per_page didn't change" do
82
85
  let(:params) { parameter_class.new per_page: 20, page: 5 }
86
+
83
87
  it "doesn't change the current page" do
84
88
  result = search_state.params_for_search(per_page: 20)
85
89
  expect(result[:page]).to eq 5
@@ -88,6 +92,7 @@ describe Blacklight::SearchState do
88
92
 
89
93
  context "and the sort changes" do
90
94
  let(:params) { parameter_class.new sort: 'field_a', page: 5 }
95
+
91
96
  it "adjusts the current page" do
92
97
  result = search_state.params_for_search(sort: 'field_b')
93
98
  expect(result[:page]).to eq 1
@@ -96,6 +101,7 @@ describe Blacklight::SearchState do
96
101
 
97
102
  context "and the sort didn't change" do
98
103
  let(:params) { parameter_class.new sort: 'field_a', page: 5 }
104
+
99
105
  it "doesn't change the current page" do
100
106
  result = search_state.params_for_search(sort: 'field_a')
101
107
  expect(result[:page]).to eq 5
@@ -105,13 +111,14 @@ describe Blacklight::SearchState do
105
111
 
106
112
  context "with a block" do
107
113
  let(:params) { parameter_class.new a: 1, b: 2 }
114
+
108
115
  it "evalutes the block and allow it to add or remove keys" do
109
116
  result = search_state.params_for_search(c: 3) do |params|
110
117
  params.extract! :a, :b
111
118
  params[:d] = 'd'
112
119
  end
113
120
 
114
- expect(result.keys).to_not include(:a, :b)
121
+ expect(result.keys).not_to include(:a, :b)
115
122
  expect(result[:c]).to eq 3
116
123
  expect(result[:d]).to eq 'd'
117
124
  end
@@ -121,19 +128,20 @@ describe Blacklight::SearchState do
121
128
  describe "add_facet_params" do
122
129
  let(:params_no_existing_facet) do
123
130
  parameter_class.new q: "query",
124
- search_field: "search_field",
125
- per_page: "50"
131
+ search_field: "search_field",
132
+ per_page: "50"
126
133
  end
127
134
  let(:params_existing_facets) do
128
135
  parameter_class.new q: "query",
129
- search_field: "search_field",
130
- per_page: "50",
131
- f: { "facet_field_1" => ["value1"],
132
- "facet_field_2" => ["value2", "value2a"] }
136
+ search_field: "search_field",
137
+ per_page: "50",
138
+ f: { "facet_field_1" => ["value1"],
139
+ "facet_field_2" => %w[value2 value2a] }
133
140
  end
134
141
 
135
142
  context "when there are no pre-existing facets" do
136
143
  let(:params) { params_no_existing_facet }
144
+
137
145
  it "adds facet value" do
138
146
  result_params = search_state.add_facet_params("facet_field", "facet_value")
139
147
  expect(result_params[:f]).to be_a Hash
@@ -144,8 +152,9 @@ describe Blacklight::SearchState do
144
152
  it "leaves non-facet params alone" do
145
153
  result_params = search_state.add_facet_params("facet_field_2", "new_facet_value")
146
154
 
147
- params.each_pair do |key, value|
155
+ params.each_pair do |key, _value|
148
156
  next if key == :f
157
+
149
158
  expect(result_params[key]).to eq params[key]
150
159
  end
151
160
  end
@@ -162,12 +171,13 @@ describe Blacklight::SearchState do
162
171
 
163
172
  context "when there are pre-existing facets" do
164
173
  let(:params) { params_existing_facets }
174
+
165
175
  it "adds a facet param to existing facet constraints" do
166
176
  result_params = search_state.add_facet_params("facet_field_2", "new_facet_value")
167
177
 
168
178
  expect(result_params[:f]).to be_a Hash
169
179
 
170
- params_existing_facets[:f].each_pair do |facet_field, value_list|
180
+ params_existing_facets[:f].each_pair do |facet_field, _value_list|
171
181
  expect(result_params[:f][facet_field]).to be_a_kind_of(Array)
172
182
  if facet_field == 'facet_field_2'
173
183
  expect(result_params[:f][facet_field]).to eq (params_existing_facets[:f][facet_field] | ["new_facet_value"])
@@ -180,8 +190,9 @@ describe Blacklight::SearchState do
180
190
  it "leaves non-facet params alone" do
181
191
  result_params = search_state.add_facet_params("facet_field_2", "new_facet_value")
182
192
 
183
- params.each_pair do |key, value|
193
+ params.each_pair do |key, _value|
184
194
  next if key == 'f'
195
+
185
196
  expect(result_params[key]).to eq params[key]
186
197
  end
187
198
  end
@@ -189,6 +200,7 @@ describe Blacklight::SearchState do
189
200
 
190
201
  context "with a facet selected in the params" do
191
202
  let(:params) { parameter_class.new f: { 'single_value_facet_field' => 'other_value' } }
203
+
192
204
  it "replaces facets configured as single" do
193
205
  allow(search_state).to receive(:facet_configuration_for_field).with('single_value_facet_field').and_return(double(single: true, key: "single_value_facet_field"))
194
206
  result_params = search_state.add_facet_params('single_value_facet_field', 'my_value')
@@ -205,14 +217,14 @@ describe Blacklight::SearchState do
205
217
  end
206
218
 
207
219
  it "defers to the field set on a FacetItem" do
208
- result_params = search_state.add_facet_params('facet_field_1', double(:field => 'facet_field_2', :value => 123))
220
+ result_params = search_state.add_facet_params('facet_field_1', double(field: 'facet_field_2', value: 123))
209
221
 
210
222
  expect(result_params[:f]['facet_field_1']).to be_blank
211
223
  expect(result_params[:f]['facet_field_2']).to include(123)
212
224
  end
213
225
 
214
226
  it "adds any extra fq parameters from the FacetItem" do
215
- result_params = search_state.add_facet_params('facet_field_1', double(:value => 123, fq: { 'facet_field_2' => 'abc' }))
227
+ result_params = search_state.add_facet_params('facet_field_1', double(value: 123, fq: { 'facet_field_2' => 'abc' }))
216
228
 
217
229
  expect(result_params[:f]['facet_field_1']).to include(123)
218
230
  expect(result_params[:f]['facet_field_2']).to include('abc')
@@ -220,29 +232,31 @@ describe Blacklight::SearchState do
220
232
  end
221
233
 
222
234
  describe "add_facet_params_and_redirect" do
223
- let(:params) { parameter_class.new(
224
- q: "query",
225
- search_field: "search_field",
226
- per_page: "50",
227
- page: "5",
228
- f: { "facet_field_1" => ["value1"], "facet_field_2" => ["value2", "value2a"] },
229
- Blacklight::Solr::FacetPaginator.request_keys[:page] => "100",
230
- Blacklight::Solr::FacetPaginator.request_keys[:sort] => "index",
231
- id: 'facet_field_name')
232
- }
235
+ let(:params) do
236
+ parameter_class.new(
237
+ q: "query",
238
+ search_field: "search_field",
239
+ per_page: "50",
240
+ page: "5",
241
+ f: { "facet_field_1" => ["value1"], "facet_field_2" => %w[value2 value2a] },
242
+ Blacklight::Solr::FacetPaginator.request_keys[:page] => "100",
243
+ Blacklight::Solr::FacetPaginator.request_keys[:sort] => "index",
244
+ id: 'facet_field_name'
245
+ )
246
+ end
233
247
 
234
248
  it "does not include request parameters used by the facet paginator" do
235
249
  params = search_state.add_facet_params_and_redirect("facet_field_2", "facet_value")
236
250
 
237
251
  bad_keys = Blacklight::Solr::FacetPaginator.request_keys.values + [:id]
238
252
  bad_keys.each do |paginator_key|
239
- expect(params.keys).to_not include(paginator_key)
253
+ expect(params.keys).not_to include(paginator_key)
240
254
  end
241
255
  end
242
256
 
243
257
  it 'removes :page request key' do
244
258
  params = search_state.add_facet_params_and_redirect("facet_field_2", "facet_value")
245
- expect(params).to_not have_key(:page)
259
+ expect(params).not_to have_key(:page)
246
260
  end
247
261
 
248
262
  it "otherwise does the same thing as add_facet_params" do
@@ -255,9 +269,10 @@ describe Blacklight::SearchState do
255
269
 
256
270
  describe "#remove_facet_params" do
257
271
  let(:params) { parameter_class.new 'f' => facet_params }
258
- let(:facet_params) { { } }
272
+ let(:facet_params) { {} }
273
+
259
274
  context "when the facet has multiple values" do
260
- let(:facet_params) { { 'some_field' => ['some_value', 'another_value'] } }
275
+ let(:facet_params) { { 'some_field' => %w[some_value another_value] } }
261
276
 
262
277
  it "removes the facet / value tuple from the query parameters" do
263
278
  params = search_state.remove_facet_params('some_field', 'some_value')
@@ -280,9 +295,11 @@ describe Blacklight::SearchState do
280
295
  context "when the facet has configuration" do
281
296
  before do
282
297
  allow(search_state).to receive(:facet_configuration_for_field).with('some_field').and_return(
283
- double(single: true, field: "a_solr_field", key: "some_key"))
298
+ double(single: true, field: "a_solr_field", key: "some_key")
299
+ )
284
300
  end
285
- let(:facet_params) { { 'some_key' => ['some_value', 'another_value'] } }
301
+
302
+ let(:facet_params) { { 'some_key' => %w[some_value another_value] } }
286
303
 
287
304
  it "uses the facet's key configuration" do
288
305
  params = search_state.remove_facet_params('some_field', 'some_value')
@@ -313,7 +330,7 @@ describe Blacklight::SearchState do
313
330
  it 'returns a search state with the given parameters' do
314
331
  new_state = search_state.reset('a' => 1)
315
332
 
316
- expect(new_state.to_hash).to eq({ 'a' => 1 })
333
+ expect(new_state.to_hash).to eq('a' => 1)
317
334
  end
318
335
  end
319
336
  end
@@ -1,22 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe Blacklight do
3
+ RSpec.describe Blacklight do
4
4
  context 'root' do
5
- let(:blroot) { File.expand_path(File.join(__FILE__, '..', '..', '..' )) }
5
+ let(:blroot) { File.expand_path(File.join(__FILE__, '..', '..', '..')) }
6
6
 
7
7
  it 'returns the full path to the BL plugin' do
8
- expect(Blacklight.root).to eq blroot
8
+ expect(described_class.root).to eq blroot
9
9
  end
10
10
  end
11
11
 
12
12
  describe '.default_index' do
13
13
  context 'for a solr index' do
14
14
  before do
15
- allow(Blacklight).to receive(:connection_config).and_return(adapter: 'solr')
15
+ allow(described_class).to receive(:connection_config).and_return(adapter: 'solr')
16
16
  end
17
17
 
18
18
  it 'is an instance of Blacklight::Solr::Repository' do
19
- expect(Blacklight.default_index).to be_a Blacklight::Solr::Repository
19
+ expect(described_class.default_index).to be_a Blacklight::Solr::Repository
20
20
  end
21
21
  end
22
22
  end
@@ -24,51 +24,50 @@ describe Blacklight do
24
24
  describe '.repository_class' do
25
25
  context 'when the adapter key is missing' do
26
26
  before do
27
- allow(Blacklight).to receive(:connection_config).and_return({})
27
+ allow(described_class).to receive(:connection_config).and_return({})
28
28
  end
29
29
 
30
30
  it 'raises an error' do
31
- expect { Blacklight.repository_class }.to raise_error RuntimeError, 'The value for :adapter was not found in the blacklight.yml config'
31
+ expect { described_class.repository_class }.to raise_error RuntimeError, 'The value for :adapter was not found in the blacklight.yml config'
32
32
  end
33
33
  end
34
34
 
35
35
  context 'for a solr index' do
36
36
  before do
37
- allow(Blacklight).to receive(:connection_config).and_return(adapter: 'solr')
37
+ allow(described_class).to receive(:connection_config).and_return(adapter: 'solr')
38
38
  end
39
39
 
40
40
  it 'resolves to the SolrRepository implementation' do
41
- expect(Blacklight.repository_class).to eq Blacklight::Solr::Repository
41
+ expect(described_class.repository_class).to eq Blacklight::Solr::Repository
42
42
  end
43
43
  end
44
44
 
45
45
  context 'for an elastic_search index' do
46
46
  before do
47
47
  stub_const("Blacklight::ElasticSearch::Repository", double)
48
- allow(Blacklight).to receive(:connection_config).and_return(adapter: 'elastic_search')
48
+ allow(described_class).to receive(:connection_config).and_return(adapter: 'elastic_search')
49
49
  end
50
50
 
51
51
  it 'resolves to the SolrRepository implementation' do
52
- expect(Blacklight.repository_class).to eq Blacklight::ElasticSearch::Repository
52
+ expect(described_class.repository_class).to eq Blacklight::ElasticSearch::Repository
53
53
  end
54
54
  end
55
55
 
56
56
  context 'for an explicitly provided class' do
57
57
  before do
58
58
  stub_const("CustomSearch::Repository", double)
59
- allow(Blacklight).to receive(:connection_config).and_return(adapter: 'CustomSearch::Repository')
59
+ allow(described_class).to receive(:connection_config).and_return(adapter: 'CustomSearch::Repository')
60
60
  end
61
61
 
62
62
  it 'resolves to the custom implementation' do
63
- expect(Blacklight.repository_class).to eq CustomSearch::Repository
63
+ expect(described_class.repository_class).to eq CustomSearch::Repository
64
64
  end
65
65
  end
66
66
  end
67
67
 
68
68
  describe '.default_configuration' do
69
69
  it 'is a Blacklight configuration' do
70
- expect(Blacklight.default_configuration).to be_a Blacklight::Configuration
70
+ expect(described_class.default_configuration).to be_a Blacklight::Configuration
71
71
  end
72
72
  end
73
-
74
73
  end
@@ -1,20 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
  require 'rake'
3
3
 
4
- describe "blacklight:delete_old_searches" do
5
-
4
+ RSpec.describe "blacklight:delete_old_searches" do
6
5
  before do
7
- @rake = Rake::Application.new
6
+ @rake = Rake::Application.new
8
7
  Rake.application = @rake
9
8
  Rake.application.rake_require "../lib/railties/blacklight"
10
9
  Rake::Task.define_task(:environment)
11
10
  @task_name = "blacklight:delete_old_searches"
12
11
  end
13
-
12
+
14
13
  it "calls Search.delete_old_searches" do
15
14
  days_old = 7
16
- allow(Search).to receive(:delete_old_searches).with(days_old)
15
+ allow(Search).to receive(:delete_old_searches).with(days_old)
17
16
  @rake[@task_name].invoke(days_old)
18
17
  end
19
-
20
18
  end
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe "Blacklight::Configurable" do
4
-
3
+ RSpec.describe "Blacklight::Configurable", api: true do
5
4
  describe "inheritence" do
6
5
  before(:all) do
7
6
  module TestCaseInheritence
@@ -9,7 +8,7 @@ describe "Blacklight::Configurable" do
9
8
  include Blacklight::Configurable
10
9
 
11
10
  blacklight_config.configure do |config|
12
- config.list = [1,2,3]
11
+ config.list = [1, 2, 3]
13
12
  end
14
13
  end
15
14
 
@@ -17,23 +16,23 @@ describe "Blacklight::Configurable" do
17
16
  end
18
17
  end
19
18
  end
20
- it "inherits the configuration when subclassed" do
21
- expect(TestCaseInheritence::Child.blacklight_config.list).to include(1,2,3)
19
+
20
+ it "inherits the configuration when subclassed" do
21
+ expect(TestCaseInheritence::Child.blacklight_config.list).to include(1, 2, 3)
22
22
  end
23
-
24
- it "inherited version should be a deep copy, not original" do
25
- expect(TestCaseInheritence::Child.blacklight_config).to_not be(TestCaseInheritence::Parent.blacklight_config)
26
-
27
- TestCaseInheritence::Child.blacklight_config.list << "child_only"
28
23
 
24
+ it "inherited version should be a deep copy, not original" do
25
+ expect(TestCaseInheritence::Child.blacklight_config).not_to be(TestCaseInheritence::Parent.blacklight_config)
29
26
 
30
- expect(TestCaseInheritence::Child.blacklight_config.list).to include("child_only")
31
- expect(TestCaseInheritence::Parent.blacklight_config.list).to_not include("child_only")
32
- end
27
+ TestCaseInheritence::Child.blacklight_config.list << "child_only"
28
+
29
+ expect(TestCaseInheritence::Child.blacklight_config.list).to include("child_only")
30
+ expect(TestCaseInheritence::Parent.blacklight_config.list).not_to include("child_only")
31
+ end
33
32
  end
34
33
 
35
34
  describe "default configuration" do
36
- before(:each) do
35
+ before do
37
36
  Blacklight::Configurable.default_configuration = nil
38
37
  end
39
38
 
@@ -51,20 +50,20 @@ describe "Blacklight::Configurable" do
51
50
  it "allows the user to provide a default configuration" do
52
51
  a = Class.new
53
52
 
54
- Blacklight::Configurable.default_configuration = Blacklight::Configuration.new :a => 1
53
+ Blacklight::Configurable.default_configuration = Blacklight::Configuration.new a: 1
55
54
 
56
55
  a.send(:include, Blacklight::Configurable)
57
56
  expect(a.blacklight_config.a).to eq 1
58
57
  end
59
-
58
+
60
59
  it "has configure_blacklight convenience method" do
61
60
  klass = Class.new
62
61
  klass.send(:include, Blacklight::Configurable)
63
-
62
+
64
63
  klass.configure_blacklight do |config|
65
64
  config.my_key = 'value'
66
- end
67
-
65
+ end
66
+
68
67
  expect(klass.blacklight_config.my_key).to eq 'value'
69
68
  end
70
69
 
@@ -75,11 +74,11 @@ describe "Blacklight::Configurable" do
75
74
 
76
75
  instance = klass.new
77
76
  instance.blacklight_config = Blacklight::Configuration.new
78
-
79
- expect(instance.blacklight_config).to_not eq klass.blacklight_config
77
+
78
+ expect(instance.blacklight_config).not_to eq klass.blacklight_config
80
79
  expect(instance.blacklight_config.foo).to be_nil
81
80
  end
82
-
81
+
83
82
  it "allows instance to set it's own config seperate from class" do
84
83
  # this is built into class_attribute; we spec it both to document it,
85
84
  # and to ensure we preserve this feature if we change implementation
@@ -89,13 +88,13 @@ describe "Blacklight::Configurable" do
89
88
  klass.blacklight_config.foo = "bar"
90
89
  klass.blacklight_config.bar = []
91
90
  klass.blacklight_config.bar << "asd"
92
-
91
+
93
92
  instance = klass.new
94
93
  instance.blacklight_config.bar << "123"
95
- expect(instance.blacklight_config).to_not eq klass.blacklight_config
94
+ expect(instance.blacklight_config).not_to eq klass.blacklight_config
96
95
  expect(klass.blacklight_config.foo).to eq "bar"
97
96
  expect(instance.blacklight_config.foo).to eq "bar"
98
- expect(klass.blacklight_config.bar).to_not include("123")
97
+ expect(klass.blacklight_config.bar).not_to include("123")
99
98
  expect(instance.blacklight_config.bar).to include("asd", "123")
100
99
  end
101
100
 
@@ -111,7 +110,5 @@ describe "Blacklight::Configurable" do
111
110
  expect(klass.blacklight_config.foo).to eq "bar"
112
111
  expect(klass2.blacklight_config.foo).to eq "asdf"
113
112
  end
114
-
115
113
  end
116
114
  end
117
-
@@ -1,33 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- describe Blacklight::Configuration::Context do
4
-
3
+ RSpec.describe Blacklight::Configuration::Context, api: true do
5
4
  subject { described_class.new(context) }
5
+
6
6
  let(:context) { double }
7
7
 
8
8
  describe "#evaluate_configuration_conditional" do
9
- it "should pass through regular values" do
9
+ it "passes through regular values" do
10
10
  val = double
11
11
  expect(subject.evaluate_configuration_conditional(val)).to eq val
12
12
  end
13
13
 
14
- it "should execute a helper method" do
15
- allow(context).to receive_messages(:my_check => true)
14
+ it "executes a helper method" do
15
+ allow(context).to receive_messages(my_check: true)
16
16
  expect(subject.evaluate_configuration_conditional(:my_check)).to be true
17
17
  end
18
18
 
19
- it "should call a helper to determine if it should render a field" do
19
+ it "calls a helper to determine if it should render a field" do
20
20
  a = double
21
21
  allow(context).to receive(:my_check_with_an_arg).with(a).and_return(true)
22
22
  expect(subject.evaluate_configuration_conditional(:my_check_with_an_arg, a)).to be true
23
23
  end
24
24
 
25
- it "should evaluate a Proc to determine if it should render a field" do
26
- one_arg_lambda = lambda { |context, a| true }
27
- two_arg_lambda = lambda { |context, a, b| true }
25
+ it "evaluates a Proc to determine if it should render a field" do
26
+ one_arg_lambda = ->(_context, _a) { true }
27
+ two_arg_lambda = ->(_context, _a, _b) { true }
28
28
  expect(subject.evaluate_configuration_conditional(one_arg_lambda, 1)).to be true
29
29
  expect(subject.evaluate_configuration_conditional(two_arg_lambda, 1, 2)).to be true
30
30
  end
31
31
  end
32
-
33
32
  end