geoblacklight 5.3.0 → 6.0.0.pre.alpha.2

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 (468) hide show
  1. checksums.yaml +4 -4
  2. data/.engine_cart.yml +14 -0
  3. data/.github/workflows/ruby.yml +25 -25
  4. data/.gitignore +0 -9
  5. data/.prettierignore +4 -0
  6. data/.prettierrc +5 -0
  7. data/CONTRIBUTING.md +2 -4
  8. data/Gemfile +4 -2
  9. data/README.md +4 -4
  10. data/Rakefile +0 -22
  11. data/app/assets/stylesheets/geoblacklight/global.css +7 -0
  12. data/app/assets/stylesheets/geoblacklight/home.css +22 -0
  13. data/app/assets/stylesheets/geoblacklight/index_maps.css +36 -0
  14. data/app/assets/stylesheets/geoblacklight/record.css +39 -0
  15. data/app/assets/stylesheets/geoblacklight/search.css +56 -0
  16. data/app/assets/stylesheets/geoblacklight/viewers.css +50 -0
  17. data/app/assets/stylesheets/geoblacklight.css +14 -0
  18. data/app/components/blacklight/icons/web_services_component.rb +3 -3
  19. data/app/components/geoblacklight/accordion_component.html.erb +3 -3
  20. data/app/components/geoblacklight/accordion_component.rb +4 -0
  21. data/app/components/geoblacklight/arcgis_component.html.erb +1 -1
  22. data/app/components/geoblacklight/arcgis_component.rb +1 -1
  23. data/app/components/geoblacklight/attribute_table_component.html.erb +3 -3
  24. data/app/components/geoblacklight/data_dictionary_download_component.html.erb +1 -1
  25. data/app/components/geoblacklight/display_note_component.html.erb +1 -1
  26. data/app/components/geoblacklight/display_note_component.rb +2 -1
  27. data/app/components/geoblacklight/document/citation_component.html.erb +1 -1
  28. data/app/components/geoblacklight/document/relations_container_component.html.erb +1 -0
  29. data/app/components/geoblacklight/document/relations_container_component.rb +12 -0
  30. data/app/components/geoblacklight/document/sidebar_component.html.erb +3 -4
  31. data/app/components/geoblacklight/document/sidebar_component.rb +0 -1
  32. data/app/components/geoblacklight/document_component.html.erb +1 -2
  33. data/app/components/geoblacklight/download_links_component.rb +1 -1
  34. data/app/components/geoblacklight/header_component.html.erb +4 -4
  35. data/app/components/geoblacklight/header_icons_component.rb +4 -2
  36. data/app/components/geoblacklight/homepage_feature_facet_component.html.erb +3 -7
  37. data/app/components/geoblacklight/homepage_feature_facet_component.rb +12 -3
  38. data/app/components/geoblacklight/iiif_drag_drop_component.html.erb +2 -2
  39. data/app/components/geoblacklight/iiif_drag_drop_component.rb +2 -2
  40. data/app/components/geoblacklight/index_map_inspect_component.html.erb +3 -3
  41. data/app/components/geoblacklight/index_map_legend_component.html.erb +7 -7
  42. data/app/components/geoblacklight/index_map_legend_component.rb +7 -0
  43. data/app/components/geoblacklight/item_map_viewer_component.rb +8 -4
  44. data/app/components/geoblacklight/location_leaflet_map_component.rb +28 -15
  45. data/app/components/geoblacklight/login_link_component.rb +1 -1
  46. data/app/components/geoblacklight/relations_component.html.erb +2 -2
  47. data/app/components/geoblacklight/search_result_component.html.erb +28 -26
  48. data/app/components/geoblacklight/search_result_component.rb +2 -2
  49. data/app/components/geoblacklight/static_map_component.html.erb +1 -1
  50. data/app/components/geoblacklight/static_map_component.rb +5 -4
  51. data/app/components/geoblacklight/viewer_help_text_component.html.erb +1 -1
  52. data/app/components/geoblacklight/viewer_help_text_component.rb +1 -1
  53. data/app/components/geoblacklight/web_services_component.html.erb +1 -1
  54. data/app/components/geoblacklight/web_services_component.rb +1 -1
  55. data/app/components/geoblacklight/web_services_default_component.html.erb +6 -6
  56. data/app/components/geoblacklight/web_services_link_component.rb +12 -9
  57. data/app/components/geoblacklight/web_services_wfs_component.html.erb +4 -4
  58. data/app/components/geoblacklight/web_services_wms_component.html.erb +4 -4
  59. data/app/controllers/download_controller.rb +0 -1
  60. data/app/controllers/relation_controller.rb +1 -1
  61. data/app/controllers/wms_controller.rb +1 -1
  62. data/app/helpers/geoblacklight_helper.rb +1 -16
  63. data/app/javascript/geoblacklight/controllers/clipboard_controller.js +6 -6
  64. data/app/javascript/geoblacklight/controllers/downloads_controller.js +37 -29
  65. data/app/javascript/geoblacklight/controllers/leaflet_viewer_controller.js +108 -117
  66. data/app/javascript/geoblacklight/controllers/oembed_viewer_controller.js +5 -5
  67. data/app/javascript/geoblacklight/controllers/openlayers_viewer_controller.js +27 -30
  68. data/app/javascript/geoblacklight/controllers/search_results_controller.js +18 -18
  69. data/app/javascript/geoblacklight/core.js +33 -36
  70. data/app/javascript/geoblacklight/index.js +10 -10
  71. data/app/javascript/geoblacklight/initializers/metadata_download.js +23 -25
  72. data/app/javascript/geoblacklight/initializers/popovers.js +4 -4
  73. data/app/javascript/geoblacklight/initializers/tooltips.js +19 -23
  74. data/app/javascript/geoblacklight/initializers/truncation.js +18 -18
  75. data/app/javascript/geoblacklight/leaflet/basemaps.js +2 -3
  76. data/app/javascript/geoblacklight/leaflet/constants.js +7 -7
  77. data/app/javascript/geoblacklight/leaflet/controls/geosearch.js +80 -74
  78. data/app/javascript/geoblacklight/leaflet/controls/layer_opacity.js +74 -73
  79. data/app/javascript/geoblacklight/leaflet/controls/sidebar.js +31 -29
  80. data/app/javascript/geoblacklight/leaflet/controls/sleep.js +54 -51
  81. data/app/javascript/geoblacklight/leaflet/inspection.js +77 -68
  82. data/app/javascript/geoblacklight/leaflet/layer_index_map.js +74 -69
  83. data/app/javascript/geoblacklight/leaflet/layer_wmts.js +14 -16
  84. data/app/javascript/geoblacklight/leaflet/layers.js +59 -66
  85. data/app/javascript/geoblacklight/leaflet/utils.js +37 -43
  86. data/app/javascript/geoblacklight/openlayers/basemaps.js +35 -27
  87. data/app/javascript/geoblacklight/openlayers/inspection.js +23 -23
  88. data/app/javascript/geoblacklight/openlayers/layers.js +11 -11
  89. data/app/models/concerns/geoblacklight/bbox_filter_query.rb +7 -9
  90. data/app/models/concerns/geoblacklight/solr_document.rb +16 -39
  91. data/app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb +3 -3
  92. data/app/views/catalog/_document_split.html.erb +3 -3
  93. data/app/views/catalog/_home_text.html.erb +22 -14
  94. data/app/views/catalog/_metadata.html.erb +1 -1
  95. data/app/views/catalog/index.html.erb +0 -1
  96. data/app/views/catalog/metadata/_markup.html.erb +1 -2
  97. data/app/views/catalog/metadata/_missing.html.erb +2 -2
  98. data/app/views/catalog/web_services.html.erb +1 -1
  99. data/app/views/relation/index.html.erb +4 -2
  100. data/app/views/relation/index.json.jbuilder +1 -1
  101. data/config/initializers/rails_config.rb +0 -3
  102. data/config/locales/geoblacklight.en.yml +79 -78
  103. data/geoblacklight.gemspec +1 -2
  104. data/lib/generators/geoblacklight/assets_generator.rb +35 -26
  105. data/lib/generators/geoblacklight/install_generator.rb +6 -11
  106. data/lib/generators/geoblacklight/templates/assets/customizations.css +6 -0
  107. data/lib/generators/geoblacklight/templates/catalog_controller.rb +97 -73
  108. data/lib/generators/geoblacklight/templates/settings.yml +159 -171
  109. data/lib/geoblacklight/configuration/case_insensitive_settings.rb +59 -0
  110. data/lib/geoblacklight/configuration/default_settings_builder.rb +18 -0
  111. data/lib/geoblacklight/configuration/display_note_shown_config.rb +13 -0
  112. data/lib/geoblacklight/configuration/fields_config.rb +51 -0
  113. data/lib/geoblacklight/configuration/layer_config.rb +28 -0
  114. data/lib/geoblacklight/configuration/leaflet_config.rb +69 -0
  115. data/lib/geoblacklight/configuration/leaflet_layers_config.rb +33 -0
  116. data/lib/geoblacklight/configuration/leaflet_sleep_config.rb +20 -0
  117. data/lib/geoblacklight/configuration/relationship_config.rb +15 -0
  118. data/lib/geoblacklight/configuration/relationships_config.rb +123 -0
  119. data/lib/geoblacklight/configuration/settings_builder.rb +118 -0
  120. data/lib/geoblacklight/configuration.rb +153 -0
  121. data/lib/geoblacklight/deprecation.rb +7 -0
  122. data/lib/geoblacklight/download.rb +2 -2
  123. data/lib/geoblacklight/engine.rb +7 -5
  124. data/lib/geoblacklight/metadata/base.rb +0 -2
  125. data/lib/geoblacklight/metadata_transformer.rb +0 -2
  126. data/lib/geoblacklight/references.rb +5 -4
  127. data/lib/geoblacklight/relation/ancestors.rb +3 -2
  128. data/lib/geoblacklight/relation/descendants.rb +2 -1
  129. data/lib/geoblacklight/relation/relation_response.rb +4 -4
  130. data/lib/geoblacklight/version.rb +1 -1
  131. data/lib/geoblacklight/wms_layer.rb +3 -3
  132. data/lib/geoblacklight.rb +7 -1
  133. data/package.json +10 -31
  134. data/schema/geoblacklight-schema-aardvark.json +1 -9
  135. data/schema/readme.md +3 -4
  136. data/solr/conf/_rest_managed.json +3 -2
  137. data/solr/conf/schema.xml +1 -1
  138. data/spec/components/geoblacklight/arcgis_component_spec.rb +6 -6
  139. data/spec/components/geoblacklight/attribute_table_component_spec.rb +6 -7
  140. data/spec/components/geoblacklight/citation_component_spec.rb +7 -4
  141. data/spec/components/geoblacklight/display_note_component_spec.rb +8 -8
  142. data/spec/components/geoblacklight/document/sidebar_component_spec.rb +48 -0
  143. data/spec/components/geoblacklight/document_component_spec.rb +13 -13
  144. data/spec/components/geoblacklight/download_links_component_spec.rb +17 -14
  145. data/spec/components/geoblacklight/header_icons_component_spec.rb +6 -11
  146. data/spec/components/geoblacklight/homepage_feature_facet_component_spec.rb +22 -30
  147. data/spec/components/geoblacklight/iiif_drag_drop_component_spec.rb +3 -3
  148. data/spec/components/geoblacklight/index_map_legend_component_spec.rb +5 -18
  149. data/spec/components/geoblacklight/item_map_viewer_component_spec.rb +5 -5
  150. data/spec/components/geoblacklight/login_link_component_spec.rb +5 -6
  151. data/spec/components/geoblacklight/search_result_component_spec.rb +2 -6
  152. data/spec/components/geoblacklight/static_map_component_spec.rb +2 -2
  153. data/spec/components/geoblacklight/viewer_help_text_component_spec.rb +4 -6
  154. data/spec/components/geoblacklight/web_services_component_spec.rb +11 -10
  155. data/spec/controllers/catalog_controller_spec.rb +7 -7
  156. data/spec/controllers/download_controller_spec.rb +1 -1
  157. data/spec/controllers/relation_controller_spec.rb +1 -1
  158. data/spec/controllers/wms_controller_spec.rb +1 -1
  159. data/spec/features/axe_spec.rb +4 -4
  160. data/spec/features/bookmarks_spec.rb +1 -1
  161. data/spec/features/citations_spec.rb +1 -1
  162. data/spec/features/configurable_basemap_spec.rb +1 -1
  163. data/spec/features/data_dictionary_download_spec.rb +1 -1
  164. data/spec/features/download_layer_spec.rb +1 -1
  165. data/spec/features/empty_search_spec.rb +1 -1
  166. data/spec/features/esri_viewer_spec.rb +1 -1
  167. data/spec/features/exports_spec.rb +1 -1
  168. data/spec/features/full_screen_control_spec.rb +3 -10
  169. data/spec/features/help_text_spec.rb +1 -1
  170. data/spec/features/home_page_spec.rb +1 -1
  171. data/spec/features/index_map_spec.rb +3 -3
  172. data/spec/features/index_view_spec.rb +7 -7
  173. data/spec/features/layer_inspection_spec.rb +1 -1
  174. data/spec/features/layer_opacity_spec.rb +1 -1
  175. data/spec/features/layer_preview_spec.rb +1 -1
  176. data/spec/features/layer_with_no_references_spec.rb +1 -1
  177. data/spec/features/linkified_attribute_table_spec.rb +1 -1
  178. data/spec/features/metadata_panel_spec.rb +1 -1
  179. data/spec/features/missing_metadata_spec.rb +1 -1
  180. data/spec/features/multiple_downloads_spec.rb +1 -1
  181. data/spec/features/oembed_spec.rb +1 -1
  182. data/spec/features/relations_spec.rb +2 -2
  183. data/spec/features/saved_searches_spec.rb +1 -1
  184. data/spec/features/search_bar_spec.rb +1 -1
  185. data/spec/features/search_results_complex_geometry_spec.rb +1 -1
  186. data/spec/features/search_results_icons_spec.rb +3 -4
  187. data/spec/features/search_results_map_spec.rb +1 -1
  188. data/spec/features/search_results_overlap_ratio_spec.rb +3 -3
  189. data/spec/features/search_spec.rb +1 -1
  190. data/spec/features/show_page_download_spec.rb +1 -1
  191. data/spec/features/show_page_metadata_spec.rb +2 -2
  192. data/spec/features/sms_spec.rb +1 -1
  193. data/spec/features/suppressed_records_spec.rb +1 -1
  194. data/spec/features/tilejson_spec.rb +1 -1
  195. data/spec/features/tms_spec.rb +1 -1
  196. data/spec/features/web_services_modal_spec.rb +1 -1
  197. data/spec/features/wmts_spec.rb +1 -1
  198. data/spec/features/xyz_spec.rb +1 -1
  199. data/spec/fixtures/manifests/tilejson.json +10 -19
  200. data/spec/fixtures/metadata/fgdc.html +1 -1
  201. data/spec/fixtures/metadata/iso.html +1 -1
  202. data/spec/fixtures/solr_documents/README.md +0 -1
  203. data/spec/fixtures/solr_documents/actual-papermap1.json +9 -28
  204. data/spec/fixtures/solr_documents/actual-point1.json +12 -39
  205. data/spec/fixtures/solr_documents/actual-polygon1.json +10 -30
  206. data/spec/fixtures/solr_documents/actual-raster1.json +14 -46
  207. data/spec/fixtures/solr_documents/all-relationships.json +12 -36
  208. data/spec/fixtures/solr_documents/b1g_iiif_manifest.json +33 -62
  209. data/spec/fixtures/solr_documents/b1g_wabash_child_15.json +13 -40
  210. data/spec/fixtures/solr_documents/b1g_wabash_child_16.json +13 -40
  211. data/spec/fixtures/solr_documents/b1g_wabash_child_17.json +13 -40
  212. data/spec/fixtures/solr_documents/b1g_wabash_child_18.json +13 -40
  213. data/spec/fixtures/solr_documents/b1g_wabash_parent.json +13 -40
  214. data/spec/fixtures/solr_documents/baruch_ancestor1.json +13 -40
  215. data/spec/fixtures/solr_documents/baruch_ancestor2.json +13 -40
  216. data/spec/fixtures/solr_documents/baruch_documentation_download.json +14 -46
  217. data/spec/fixtures/solr_documents/bbox-spans-180.json +7 -21
  218. data/spec/fixtures/solr_documents/complex-geom.json +11 -37
  219. data/spec/fixtures/solr_documents/cornell_html_metadata.json +12 -37
  220. data/spec/fixtures/solr_documents/display-note.json +11 -33
  221. data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +13 -39
  222. data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +13 -40
  223. data/spec/fixtures/solr_documents/esri-feature-layer.json +13 -39
  224. data/spec/fixtures/solr_documents/esri-image-map-layer.json +13 -40
  225. data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +16 -54
  226. data/spec/fixtures/solr_documents/esri-wms-layer.json +12 -36
  227. data/spec/fixtures/solr_documents/harvard_raster.json +12 -37
  228. data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +9 -27
  229. data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +12 -41
  230. data/spec/fixtures/solr_documents/index-map-polygon.json +12 -41
  231. data/spec/fixtures/solr_documents/index-map-stanford.json +14 -45
  232. data/spec/fixtures/solr_documents/index-map-v1-complex.json +13 -38
  233. data/spec/fixtures/solr_documents/index_map_point.json +13 -42
  234. data/spec/fixtures/solr_documents/metadata_no_geom.json +4 -14
  235. data/spec/fixtures/solr_documents/metadata_no_provider.json +8 -25
  236. data/spec/fixtures/solr_documents/multiple-downloads.json +6 -18
  237. data/spec/fixtures/solr_documents/no_locn_geometry.json +4 -12
  238. data/spec/fixtures/solr_documents/no_spatial.json +4 -12
  239. data/spec/fixtures/solr_documents/oembed.json +8 -25
  240. data/spec/fixtures/solr_documents/princeton-child1.json +9 -29
  241. data/spec/fixtures/solr_documents/princeton-child2.json +9 -29
  242. data/spec/fixtures/solr_documents/princeton-child3.json +9 -29
  243. data/spec/fixtures/solr_documents/princeton-child4.json +9 -29
  244. data/spec/fixtures/solr_documents/princeton-parent.json +10 -33
  245. data/spec/fixtures/solr_documents/public_cog_princeton.json +9 -27
  246. data/spec/fixtures/solr_documents/public_iiif_princeton.json +13 -43
  247. data/spec/fixtures/solr_documents/public_pmtiles_princeton.json +29 -39
  248. data/spec/fixtures/solr_documents/public_polygon_mit.json +9 -30
  249. data/spec/fixtures/solr_documents/restricted-line.json +14 -47
  250. data/spec/fixtures/solr_documents/the-related-record.json +4 -12
  251. data/spec/fixtures/solr_documents/tilejson.json +23 -46
  252. data/spec/fixtures/solr_documents/tms.json +7 -21
  253. data/spec/fixtures/solr_documents/umn_metro_result1.json +13 -41
  254. data/spec/fixtures/solr_documents/umn_state_result1.json +13 -39
  255. data/spec/fixtures/solr_documents/umn_state_result2.json +13 -39
  256. data/spec/fixtures/solr_documents/uva_slug_colon.json +10 -30
  257. data/spec/fixtures/solr_documents/wmts-multiple.json +23 -39
  258. data/spec/fixtures/solr_documents/wmts-single-layer.json +23 -46
  259. data/spec/fixtures/solr_documents/xyz.json +10 -33
  260. data/spec/helpers/geoblacklight_helper_spec.rb +5 -50
  261. data/spec/javascripts/geoblacklight_spec.js +10 -10
  262. data/spec/javascripts/metadata_download_button_spec.js +14 -13
  263. data/spec/lib/geoblacklight/bounding_box_spec.rb +1 -1
  264. data/spec/lib/geoblacklight/configuration/default_settings_builder_spec.rb +9 -0
  265. data/spec/lib/geoblacklight/configuration/layer_config_spec.rb +71 -0
  266. data/spec/lib/geoblacklight/configuration/leaflet_layers_config_spec.rb +63 -0
  267. data/spec/lib/geoblacklight/configuration/settings_builder_spec.rb +177 -0
  268. data/spec/lib/geoblacklight/configuration_spec.rb +48 -0
  269. data/spec/lib/geoblacklight/download/csv_download_spec.rb +2 -2
  270. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +2 -2
  271. data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +5 -2
  272. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +2 -2
  273. data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +2 -2
  274. data/spec/lib/geoblacklight/download_spec.rb +15 -6
  275. data/spec/lib/geoblacklight/geometry_spec.rb +1 -1
  276. data/spec/lib/geoblacklight/item_viewer_spec.rb +2 -2
  277. data/spec/lib/geoblacklight/metadata/base_spec.rb +1 -1
  278. data/spec/lib/geoblacklight/metadata/html_spec.rb +1 -1
  279. data/spec/lib/geoblacklight/metadata_spec.rb +1 -1
  280. data/spec/lib/geoblacklight/metadata_transformer/base_spec.rb +1 -1
  281. data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +1 -1
  282. data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +1 -1
  283. data/spec/lib/geoblacklight/metadata_transformer_spec.rb +1 -1
  284. data/spec/lib/geoblacklight/reference_spec.rb +1 -1
  285. data/spec/lib/geoblacklight/references_spec.rb +6 -4
  286. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +10 -4
  287. data/spec/lib/geoblacklight/relation/descendants_spec.rb +9 -4
  288. data/spec/lib/geoblacklight/relation/relation_response_spec.rb +16 -19
  289. data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +1 -1
  290. data/spec/lib/geoblacklight/wms_layer_spec.rb +1 -1
  291. data/spec/models/concerns/geoblacklight/bbox_filter_query_spec.rb +20 -11
  292. data/spec/models/concerns/geoblacklight/solr_document/citation_spec.rb +1 -1
  293. data/spec/models/concerns/geoblacklight/solr_document/finder_spec.rb +1 -1
  294. data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +1 -1
  295. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +4 -39
  296. data/spec/models/concerns/geoblacklight/suppressed_records_search_behavior_spec.rb +2 -2
  297. data/spec/routing/catalog_routing_spec.rb +1 -1
  298. data/spec/spec_helper.rb +26 -10
  299. data/spec/tasks/geoblacklight_spec.rb +1 -1
  300. data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -3
  301. metadata +44 -187
  302. data/Procfile.dev +0 -3
  303. data/app/assets/stylesheets/geoblacklight/geoblacklight.scss +0 -2
  304. data/app/assets/stylesheets/geoblacklight/modules/_base.scss +0 -31
  305. data/app/assets/stylesheets/geoblacklight/modules/_blacklight_overrides.scss +0 -40
  306. data/app/assets/stylesheets/geoblacklight/modules/_styles.scss +0 -9
  307. data/app/assets/stylesheets/geoblacklight/modules/downloads.scss +0 -62
  308. data/app/assets/stylesheets/geoblacklight/modules/geosearch.scss +0 -23
  309. data/app/assets/stylesheets/geoblacklight/modules/home.scss +0 -13
  310. data/app/assets/stylesheets/geoblacklight/modules/icon-customization.scss +0 -116
  311. data/app/assets/stylesheets/geoblacklight/modules/index_maps.scss +0 -61
  312. data/app/assets/stylesheets/geoblacklight/modules/item.scss +0 -78
  313. data/app/assets/stylesheets/geoblacklight/modules/layer_opacity.scss +0 -87
  314. data/app/assets/stylesheets/geoblacklight/modules/leaflet.scss +0 -4
  315. data/app/assets/stylesheets/geoblacklight/modules/metadata.scss +0 -31
  316. data/app/assets/stylesheets/geoblacklight/modules/metadata_content.scss +0 -43
  317. data/app/assets/stylesheets/geoblacklight/modules/metadata_markup.scss +0 -9
  318. data/app/assets/stylesheets/geoblacklight/modules/metadata_missing.scss +0 -7
  319. data/app/assets/stylesheets/geoblacklight/modules/modal.scss +0 -5
  320. data/app/assets/stylesheets/geoblacklight/modules/results.scss +0 -60
  321. data/app/assets/stylesheets/geoblacklight/modules/search_widgets.scss +0 -5
  322. data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +0 -42
  323. data/app/assets/stylesheets/geoblacklight/modules/toolbar.scss +0 -34
  324. data/app/assets/stylesheets/geoblacklight/modules/web_services.scss +0 -5
  325. data/app/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component.rb +0 -46
  326. data/app/components/blacklight/icons/arizona_component.rb +0 -24
  327. data/app/components/blacklight/icons/baruch_cuny_component.rb +0 -23
  328. data/app/components/blacklight/icons/bookmark_component.rb +0 -23
  329. data/app/components/blacklight/icons/circle_info_solid_component.rb +0 -23
  330. data/app/components/blacklight/icons/columbia_component.rb +0 -23
  331. data/app/components/blacklight/icons/cornell_component.rb +0 -25
  332. data/app/components/blacklight/icons/george_mason_component.rb +0 -24
  333. data/app/components/blacklight/icons/harvard_component.rb +0 -23
  334. data/app/components/blacklight/icons/indiana_component.rb +0 -23
  335. data/app/components/blacklight/icons/lewis_clark_component.rb +0 -25
  336. data/app/components/blacklight/icons/massgis_component.rb +0 -23
  337. data/app/components/blacklight/icons/michigan_state_university_component.rb +0 -25
  338. data/app/components/blacklight/icons/mit_component.rb +0 -23
  339. data/app/components/blacklight/icons/northwestern_university_component.rb +0 -24
  340. data/app/components/blacklight/icons/nyu_component.rb +0 -26
  341. data/app/components/blacklight/icons/pennsylvania_state_university_component.rb +0 -25
  342. data/app/components/blacklight/icons/princeton_component.rb +0 -23
  343. data/app/components/blacklight/icons/purdue_university_component.rb +0 -25
  344. data/app/components/blacklight/icons/rutgers_component.rb +0 -25
  345. data/app/components/blacklight/icons/sms_component.rb +0 -23
  346. data/app/components/blacklight/icons/stanford_component.rb +0 -23
  347. data/app/components/blacklight/icons/texas_component.rb +0 -23
  348. data/app/components/blacklight/icons/the_ohio_state_university_component.rb +0 -26
  349. data/app/components/blacklight/icons/tufts_component.rb +0 -23
  350. data/app/components/blacklight/icons/ucla_component.rb +0 -23
  351. data/app/components/blacklight/icons/university_of_california_berkeley_component.rb +0 -24
  352. data/app/components/blacklight/icons/university_of_chicago_component.rb +0 -25
  353. data/app/components/blacklight/icons/university_of_colorado_boulder_component.rb +0 -26
  354. data/app/components/blacklight/icons/university_of_illinois_urbana_champaign_component.rb +0 -25
  355. data/app/components/blacklight/icons/university_of_iowa_component.rb +0 -24
  356. data/app/components/blacklight/icons/university_of_maryland_component.rb +0 -24
  357. data/app/components/blacklight/icons/university_of_michigan_component.rb +0 -24
  358. data/app/components/blacklight/icons/university_of_minnesota_component.rb +0 -24
  359. data/app/components/blacklight/icons/university_of_nebraska_lincoln_component.rb +0 -27
  360. data/app/components/blacklight/icons/university_of_wisconsin_madison_component.rb +0 -24
  361. data/app/components/blacklight/icons/uva_component.rb +0 -23
  362. data/app/components/geoblacklight/icon_facet_item_component.rb +0 -33
  363. data/app/components/geoblacklight/web_services_link_component.html.erb +0 -3
  364. data/app/javascript/geoblacklight/initializers/relations.js +0 -40
  365. data/app/views/catalog/_relations_container.html.erb +0 -1
  366. data/bin/vite +0 -29
  367. data/config/initializers/new_gbl_settings_defaults_4.1.yml +0 -104
  368. data/lib/generators/geoblacklight/assets/importmap_generator.rb +0 -73
  369. data/lib/generators/geoblacklight/assets/vite_generator.rb +0 -89
  370. data/lib/generators/geoblacklight/templates/assets/_customizations.scss +0 -23
  371. data/lib/generators/geoblacklight/templates/assets/application.js +0 -17
  372. data/lib/generators/geoblacklight/templates/assets/application.scss +0 -9
  373. data/lib/generators/geoblacklight/templates/assets/geoblacklight.scss +0 -11
  374. data/lib/generators/geoblacklight/templates/base.html.erb +0 -46
  375. data/lib/generators/geoblacklight/templates/vite.config.ts +0 -23
  376. data/lib/generators/geoblacklight/templates/vite.json +0 -16
  377. data/schema/geoblacklight-schema-1.0.json +0 -214
  378. data/solr/conf/xslt/example.xsl +0 -132
  379. data/solr/conf/xslt/example_atom.xsl +0 -67
  380. data/solr/conf/xslt/example_rss.xsl +0 -66
  381. data/solr/conf/xslt/luke.xsl +0 -337
  382. data/spec/components/blacklight/icons/american_geographical_society_library_uwm_libraries_component_spec.rb +0 -15
  383. data/spec/components/blacklight/icons/arizona_component_spec.rb +0 -15
  384. data/spec/components/blacklight/icons/arrow_circle_down_component_spec.rb +0 -15
  385. data/spec/components/blacklight/icons/baruch_cuny_component_spec.rb +0 -15
  386. data/spec/components/blacklight/icons/book_component_spec.rb +0 -15
  387. data/spec/components/blacklight/icons/bookmark_component_spec.rb +0 -15
  388. data/spec/components/blacklight/icons/cd_rom_component_spec.rb +0 -15
  389. data/spec/components/blacklight/icons/child_item_component_spec.rb +0 -15
  390. data/spec/components/blacklight/icons/circle_info_solid_component_spec.rb +0 -15
  391. data/spec/components/blacklight/icons/citation_component_spec.rb +0 -15
  392. data/spec/components/blacklight/icons/collection_component_spec.rb +0 -15
  393. data/spec/components/blacklight/icons/collections_component_spec.rb +0 -15
  394. data/spec/components/blacklight/icons/columbia_component_spec.rb +0 -15
  395. data/spec/components/blacklight/icons/cornell_component_spec.rb +0 -15
  396. data/spec/components/blacklight/icons/datasets_component_spec.rb +0 -15
  397. data/spec/components/blacklight/icons/dvd_rom_component_spec.rb +0 -15
  398. data/spec/components/blacklight/icons/email_component_spec.rb +0 -15
  399. data/spec/components/blacklight/icons/esri_globe_component_spec.rb +0 -15
  400. data/spec/components/blacklight/icons/fire_solid_component_spec.rb +0 -15
  401. data/spec/components/blacklight/icons/george_mason_component_spec.rb +0 -15
  402. data/spec/components/blacklight/icons/globe_component_spec.rb +0 -15
  403. data/spec/components/blacklight/icons/harvard_component_spec.rb +0 -15
  404. data/spec/components/blacklight/icons/home_component_spec.rb +0 -15
  405. data/spec/components/blacklight/icons/iiif_drag_drop_component_spec.rb +0 -15
  406. data/spec/components/blacklight/icons/image_component_spec.rb +0 -15
  407. data/spec/components/blacklight/icons/imagery_component_spec.rb +0 -15
  408. data/spec/components/blacklight/icons/indiana_component_spec.rb +0 -15
  409. data/spec/components/blacklight/icons/leaf_component_spec.rb +0 -15
  410. data/spec/components/blacklight/icons/lewis_clark_component_spec.rb +0 -15
  411. data/spec/components/blacklight/icons/lightbulb_solid_component_spec.rb +0 -15
  412. data/spec/components/blacklight/icons/line_component_spec.rb +0 -15
  413. data/spec/components/blacklight/icons/map_component_spec.rb +0 -15
  414. data/spec/components/blacklight/icons/map_marker_component_spec.rb +0 -15
  415. data/spec/components/blacklight/icons/maps_component_spec.rb +0 -15
  416. data/spec/components/blacklight/icons/massgis_component_spec.rb +0 -15
  417. data/spec/components/blacklight/icons/metadata_component_spec.rb +0 -15
  418. data/spec/components/blacklight/icons/michigan_state_university_component_spec.rb +0 -15
  419. data/spec/components/blacklight/icons/mit_component_spec.rb +0 -15
  420. data/spec/components/blacklight/icons/mixed_component_spec.rb +0 -15
  421. data/spec/components/blacklight/icons/multilinestring_component_spec.rb +0 -15
  422. data/spec/components/blacklight/icons/multipoint_component_spec.rb +0 -15
  423. data/spec/components/blacklight/icons/multipolygon_component_spec.rb +0 -15
  424. data/spec/components/blacklight/icons/northwestern_university_component_spec.rb +0 -15
  425. data/spec/components/blacklight/icons/nyu_component_spec.rb +0 -15
  426. data/spec/components/blacklight/icons/pagelines_brands_component_spec.rb +0 -15
  427. data/spec/components/blacklight/icons/paper_map_component_spec.rb +0 -15
  428. data/spec/components/blacklight/icons/parent_item_component_spec.rb +0 -15
  429. data/spec/components/blacklight/icons/pennsylvania_state_university_component_spec.rb +0 -15
  430. data/spec/components/blacklight/icons/point_component_spec.rb +0 -15
  431. data/spec/components/blacklight/icons/polygon_component_spec.rb +0 -15
  432. data/spec/components/blacklight/icons/polyline_component_spec.rb +0 -15
  433. data/spec/components/blacklight/icons/princeton_component_spec.rb +0 -15
  434. data/spec/components/blacklight/icons/public_component_spec.rb +0 -15
  435. data/spec/components/blacklight/icons/purdue_university_component_spec.rb +0 -15
  436. data/spec/components/blacklight/icons/raster_component_spec.rb +0 -15
  437. data/spec/components/blacklight/icons/restricted_component_spec.rb +0 -15
  438. data/spec/components/blacklight/icons/rutgers_component_spec.rb +0 -15
  439. data/spec/components/blacklight/icons/sms_component_spec.rb +0 -15
  440. data/spec/components/blacklight/icons/stanford_component_spec.rb +0 -15
  441. data/spec/components/blacklight/icons/table_component_spec.rb +0 -15
  442. data/spec/components/blacklight/icons/tags_component_spec.rb +0 -15
  443. data/spec/components/blacklight/icons/texas_component_spec.rb +0 -15
  444. data/spec/components/blacklight/icons/the_ohio_state_university_component_spec.rb +0 -15
  445. data/spec/components/blacklight/icons/triangle_exclamation_solid_component_spec.rb +0 -15
  446. data/spec/components/blacklight/icons/tufts_component_spec.rb +0 -15
  447. data/spec/components/blacklight/icons/ucla_component_spec.rb +0 -15
  448. data/spec/components/blacklight/icons/university_of_california_berkeley_component_spec.rb +0 -15
  449. data/spec/components/blacklight/icons/university_of_chicago_component_spec.rb +0 -15
  450. data/spec/components/blacklight/icons/university_of_colorado_boulder_component_spec.rb +0 -15
  451. data/spec/components/blacklight/icons/university_of_illinois_urbana_champaign_component_spec.rb +0 -15
  452. data/spec/components/blacklight/icons/university_of_iowa_component_spec.rb +0 -15
  453. data/spec/components/blacklight/icons/university_of_maryland_component_spec.rb +0 -15
  454. data/spec/components/blacklight/icons/university_of_michigan_component_spec.rb +0 -15
  455. data/spec/components/blacklight/icons/university_of_minnesota_component_spec.rb +0 -15
  456. data/spec/components/blacklight/icons/university_of_nebraska_lincoln_component_spec.rb +0 -15
  457. data/spec/components/blacklight/icons/university_of_wisconsin_madison_component_spec.rb +0 -15
  458. data/spec/components/blacklight/icons/uva_component_spec.rb +0 -15
  459. data/spec/components/blacklight/icons/web_services_component_spec.rb +0 -15
  460. data/spec/components/blacklight/icons/websites_component_spec.rb +0 -15
  461. data/spec/components/geoblacklight/icon_facet_item_component_spec.rb +0 -18
  462. data/spec/config/initializers/rails_config_spec.rb +0 -16
  463. data/spec/features/show_page_sidebar_static_map_spec.rb +0 -21
  464. data/spec/fixtures/solr_documents/public_direct_download.json +0 -62
  465. data/spec/support/backport_test_helpers.rb +0 -47
  466. data/spec/support/view_component_capybara_test_helpers.rb +0 -8
  467. data/vite.config.ts +0 -32
  468. /data/app/assets/images/{blacklight → geoblacklight}/logo.svg +0 -0
@@ -0,0 +1,177 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Geoblacklight::Configuration::SettingsBuilder do
4
+ describe ".build" do
5
+ subject(:config) { described_class.build }
6
+
7
+ it { is_expected.to be_a(Geoblacklight::Configuration) }
8
+
9
+ it "reads values from the real Settings (lowercase) constant" do
10
+ expect(config.institution).to eq(Settings.institution)
11
+ end
12
+ end
13
+
14
+ describe "#build" do
15
+ subject(:config) { described_class.new(settings: settings).build }
16
+
17
+ describe "reading lowercase keys" do
18
+ let(:settings) do
19
+ {
20
+ institution: "MIT",
21
+ fields: {title: "my_title_s"},
22
+ download_formats: {vector: ["GeoJSON"]},
23
+ leaflet: {selected_color: "#abc123", sidebar: true}
24
+ }
25
+ end
26
+
27
+ it "resolves top-level lowercase keys" do
28
+ expect(config.institution).to eq("MIT")
29
+ end
30
+
31
+ it "resolves nested lowercase keys" do
32
+ expect(config.fields.title).to eq("my_title_s")
33
+ expect(config.vector_download_formats).to eq(["GeoJSON"])
34
+ expect(config.leaflet_options.selected_color).to eq("#abc123")
35
+ expect(config.leaflet_options.sidebar).to be true
36
+ end
37
+ end
38
+
39
+ describe "reading uppercase keys (backwards compatibility)" do
40
+ let(:settings) do
41
+ {
42
+ INSTITUTION: "Stanford",
43
+ FIELDS: {TITLE: "dct_title_s"}
44
+ }
45
+ end
46
+
47
+ before { allow(Geoblacklight::Deprecation).to receive(:warn) }
48
+
49
+ it "resolves uppercase keys even though the builder asks case-insensitively" do
50
+ expect(config.institution).to eq("Stanford")
51
+ expect(config.fields.title).to eq("dct_title_s")
52
+ end
53
+ end
54
+
55
+ describe "deprecation warnings" do
56
+ before { allow(Geoblacklight::Deprecation).to receive(:warn) }
57
+
58
+ it "warns when an uppercase key is resolved" do
59
+ described_class.new(settings: {INSTITUTION: "MIT"}).build
60
+ expect(Geoblacklight::Deprecation).to have_received(:warn).with(a_string_matching(/INSTITUTION/i))
61
+ end
62
+
63
+ it "warns about nested uppercase keys" do
64
+ described_class.new(settings: {fields: {TITLE: "dct_title_s"}}).build
65
+ expect(Geoblacklight::Deprecation).to have_received(:warn).with(a_string_matching(/TITLE/i))
66
+ end
67
+
68
+ it "does not warn when keys are lowercase" do
69
+ described_class.new(settings: {institution: "MIT", fields: {title: "x"}}).build
70
+ expect(Geoblacklight::Deprecation).not_to have_received(:warn)
71
+ end
72
+
73
+ it "does not warn when a lowercase key shadows an uppercase one" do
74
+ described_class.new(settings: {institution: "lower", INSTITUTION: "UPPER"}).build
75
+ expect(Geoblacklight::Deprecation).not_to have_received(:warn)
76
+ end
77
+ end
78
+
79
+ describe "when both cases are present" do
80
+ let(:settings) { {institution: "lower", INSTITUTION: "UPPER"} }
81
+ it "prefers the lowercase value" do
82
+ expect(config.institution).to eq("lower")
83
+ end
84
+ end
85
+
86
+ describe "missing keys" do
87
+ let(:settings) { {} }
88
+ it "fall back to the Configuration defaults" do
89
+ expect(config.institution).to eq("Stanford")
90
+ end
91
+ end
92
+ end
93
+ end
94
+
95
+ RSpec.describe Geoblacklight::Configuration::CaseInsensitiveSettings do
96
+ subject(:wrapper) { described_class.new(settings) }
97
+
98
+ describe "method access" do
99
+ let(:settings) { {ARCgis_BASE_URL: "https://example.com"} }
100
+
101
+ it "resolves keys case-insensitively" do
102
+ expect(wrapper.arcgis_base_url).to eq("https://example.com")
103
+ expect(wrapper.ARCGIS_BASE_URL).to eq("https://example.com")
104
+ expect(wrapper.Arcgis_Base_Url).to eq("https://example.com")
105
+ end
106
+
107
+ it "returns nil for unknown keys" do
108
+ expect(wrapper.does_not_exist).to be_nil
109
+ end
110
+ end
111
+
112
+ describe "[] access" do
113
+ let(:settings) { {INSTITUTION: "MIT"} }
114
+
115
+ it "resolves via bracket access" do
116
+ expect(wrapper[:institution]).to eq("MIT")
117
+ expect(wrapper[:INSTITUTION]).to eq("MIT")
118
+ end
119
+ end
120
+
121
+ describe "nested access" do
122
+ let(:settings) { {FIELDS: {TITLE: "dct_title_s"}} }
123
+
124
+ it "wraps nested hashes so chained access resolves" do
125
+ expect(wrapper.fields.title).to eq("dct_title_s")
126
+ expect(wrapper.FIELDS.TITLE).to eq("dct_title_s")
127
+ end
128
+ end
129
+
130
+ describe "lowercase preference" do
131
+ let(:settings) { {institution: "lower", INSTITUTION: "UPPER"} }
132
+
133
+ it "returns the lowercase value when both forms exist" do
134
+ expect(wrapper.institution).to eq("lower")
135
+ end
136
+ end
137
+
138
+ describe "to_h" do
139
+ let(:settings) { {FOO: "bar"} }
140
+
141
+ it "returns the underlying hash" do
142
+ expect(wrapper.to_h).to eq({FOO: "bar"})
143
+ end
144
+ end
145
+
146
+ describe "deprecation warnings" do
147
+ it "warns when an uppercase key is used" do
148
+ deprecation = double("deprecation")
149
+ expect(deprecation).to receive(:warn).with(a_string_matching(/INSTITUTION/i))
150
+ described_class.new({INSTITUTION: "MIT"}, deprecation: deprecation).institution
151
+ end
152
+
153
+ it "warns about nested uppercase keys" do
154
+ deprecation = double("deprecation")
155
+ allow(deprecation).to receive(:warn)
156
+ described_class.new({FIELDS: {TITLE: "x"}}, deprecation: deprecation).fields.title
157
+ expect(deprecation).to have_received(:warn).with(a_string_matching(/FIELDS/i))
158
+ expect(deprecation).to have_received(:warn).with(a_string_matching(/TITLE/i))
159
+ end
160
+
161
+ it "does not warn when the resolved key is lowercase" do
162
+ deprecation = double("deprecation")
163
+ expect(deprecation).not_to receive(:warn)
164
+ described_class.new({institution: "MIT"}, deprecation: deprecation).institution
165
+ end
166
+
167
+ it "does not warn when a lowercase key shadows an uppercase one" do
168
+ deprecation = double("deprecation")
169
+ expect(deprecation).not_to receive(:warn)
170
+ described_class.new({institution: "lower", INSTITUTION: "UPPER"}, deprecation: deprecation).institution
171
+ end
172
+
173
+ it "does not warn by default (no deprecation configured)" do
174
+ expect { described_class.new({INSTITUTION: "MIT"}).institution }.not_to raise_error
175
+ end
176
+ end
177
+ end
@@ -0,0 +1,48 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe Geoblacklight::Configuration do
4
+ subject(:config) { Geoblacklight::Configuration.new }
5
+
6
+ describe "#leaflet_options" do
7
+ subject(:leaflet_options) { config.leaflet_options }
8
+
9
+ it "returns a hash of options for leaflet" do
10
+ expect(leaflet_options.layers.index.keys).to eq(%i[DEFAULT UNAVAILABLE SELECTED])
11
+ end
12
+
13
+ it "uses LayerConfig instances for index configurations" do
14
+ expect(leaflet_options.layers.index[:DEFAULT]).to be_a(Geoblacklight::Configuration::LayerConfig)
15
+ expect(leaflet_options.layers.index[:DEFAULT].weight).to eq(1)
16
+ expect(leaflet_options.layers.index[:DEFAULT].radius).to eq(4)
17
+ expect(leaflet_options.layers.index[:DEFAULT].color).to eq("#7FCDBB")
18
+ expect(leaflet_options.layers.index[:DEFAULT].sr_color_name).to eq("Green")
19
+ end
20
+
21
+ it "serializes layers options correctly with LayerConfig defaults" do
22
+ layers_hash = leaflet_options.to_h[:layers]
23
+ expect(layers_hash).to eq(
24
+ "detect_retina" => true,
25
+ "index" => {
26
+ DEFAULT: {
27
+ color: "#7FCDBB",
28
+ weight: 1,
29
+ radius: 4,
30
+ sr_color_name: "Green"
31
+ },
32
+ UNAVAILABLE: {
33
+ color: "#EDF8B1",
34
+ weight: 1,
35
+ radius: 4,
36
+ sr_color_name: "Yellow"
37
+ },
38
+ SELECTED: {
39
+ color: "#2C7FB8",
40
+ weight: 1,
41
+ radius: 4,
42
+ sr_color_name: "Blue"
43
+ }
44
+ }
45
+ )
46
+ end
47
+ end
48
+ end
@@ -2,8 +2,8 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::CsvDownload do
6
- let(:document) { SolrDocument.new(Settings.FIELDS.ID => "test", :solr_wfs_url => "http://www.example.com/wfs", Settings.FIELDS.WXS_IDENTIFIER => "stanford-test", Settings.FIELDS.GEOMETRY => "ENVELOPE(-180, 180, 90, -90)") }
5
+ RSpec.describe Geoblacklight::CsvDownload do
6
+ let(:document) { SolrDocument.new(Geoblacklight.configuration.fields.id => "test", :solr_wfs_url => "http://www.example.com/wfs", Geoblacklight.configuration.fields.wxs_identifier => "stanford-test", Geoblacklight.configuration.fields.geometry => "ENVELOPE(-180, 180, 90, -90)") }
7
7
  let(:download) { described_class.new(document) }
8
8
  describe "#initialize" do
9
9
  it "initializes as a CsvDownload object with specific options" do
@@ -2,8 +2,8 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::GeojsonDownload do
6
- let(:document) { SolrDocument.new(Settings.FIELDS.ID => "test", :solr_wfs_url => "http://www.example.com/wfs", Settings.FIELDS.WXS_IDENTIFIER => "stanford-test", Settings.FIELDS.GEOMETRY => "ENVELOPE(-180, 180, 90, -90)") }
5
+ RSpec.describe Geoblacklight::GeojsonDownload do
6
+ let(:document) { SolrDocument.new(Geoblacklight.configuration.fields.id => "test", :solr_wfs_url => "http://www.example.com/wfs", Geoblacklight.configuration.fields.wxs_identifier => "stanford-test", Geoblacklight.configuration.fields.geometry => "ENVELOPE(-180, 180, 90, -90)") }
7
7
  let(:download) { described_class.new(document) }
8
8
  describe "#initialize" do
9
9
  it "initializes as a GeojsonDownload object with specific options" do
@@ -2,8 +2,11 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::GeotiffDownload do
6
- let(:document) { SolrDocument.new(Settings.FIELDS.ID => "test", Settings.FIELDS.WXS_IDENTIFIER => "stanford-test", Settings.FIELDS.GEOMETRY => "ENVELOPE(-180, 180, 90, -90)") }
5
+ RSpec.describe Geoblacklight::GeotiffDownload do
6
+ let(:document) do
7
+ SolrDocument.new(Geoblacklight.configuration.fields.id => "test", Geoblacklight.configuration.fields.wxs_identifier => "stanford-test",
8
+ Geoblacklight.configuration.fields.geometry => "ENVELOPE(-180, 180, 90, -90)")
9
+ end
7
10
  let(:download) { described_class.new(document) }
8
11
  describe "#initialize" do
9
12
  it "initializes as a GeotiffDownload object with specific options" do
@@ -2,8 +2,8 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::KmzDownload do
6
- let(:document) { SolrDocument.new(Settings.FIELDS.ID => "test", :solr_wfs_url => "http://www.example.com/wfs", Settings.FIELDS.WXS_IDENTIFIER => "stanford-test", Settings.FIELDS.GEOMETRY => "ENVELOPE(-180, 180, 90, -90)") }
5
+ RSpec.describe Geoblacklight::KmzDownload do
6
+ let(:document) { SolrDocument.new(Geoblacklight.configuration.fields.id => "test", :solr_wfs_url => "http://www.example.com/wfs", Geoblacklight.configuration.fields.wxs_identifier => "stanford-test", Geoblacklight.configuration.fields.geometry => "ENVELOPE(-180, 180, 90, -90)") }
7
7
  let(:download) { described_class.new(document) }
8
8
  describe "#initialize" do
9
9
  it "initializes as a KmzDownload object with specific options" do
@@ -2,8 +2,8 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::ShapefileDownload do
6
- let(:document) { SolrDocument.new(Settings.FIELDS.ID => "test", :solr_wfs_url => "http://www.example.com/wfs", Settings.FIELDS.WXS_IDENTIFIER => "stanford-test", Settings.FIELDS.GEOMETRY => "ENVELOPE(-180, 180, 90, -90)") }
5
+ RSpec.describe Geoblacklight::ShapefileDownload do
6
+ let(:document) { SolrDocument.new(Geoblacklight.configuration.fields.id => "test", :solr_wfs_url => "http://www.example.com/wfs", Geoblacklight.configuration.fields.wxs_identifier => "stanford-test", Geoblacklight.configuration.fields.geometry => "ENVELOPE(-180, 180, 90, -90)") }
7
7
  let(:download) { described_class.new(document) }
8
8
  describe "#initialize" do
9
9
  it "initializes as a ShapefileDownload object with specific options" do
@@ -2,13 +2,16 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::Download do
5
+ RSpec.describe Geoblacklight::Download do
6
6
  subject(:download) { described_class.new(document, options) }
7
7
 
8
8
  let(:faraday_connection) { instance_double(Faraday::Connection) }
9
9
  let(:faraday_response) { instance_double(Faraday::Response) }
10
- let(:references_field) { Settings.FIELDS.REFERENCES }
11
- let(:document) { SolrDocument.new(:"#{Settings.FIELDS.ID}" => "test", references_field => {"http://www.opengis.net/def/serviceType/ogc/wms" => "http://www.example.com/wms"}.to_json) }
10
+ let(:references_field) { Geoblacklight.configuration.fields.references }
11
+ let(:document) do
12
+ SolrDocument.new(:"#{Geoblacklight.configuration.fields.id}" => "test",
13
+ references_field => {"http://www.opengis.net/def/serviceType/ogc/wms" => "http://www.example.com/wms"}.to_json)
14
+ end
12
15
  let(:options) { {type: "shapefile", extension: "zip", service_type: "wms", content_type: "application/zip"} }
13
16
 
14
17
  describe "#initialize" do
@@ -31,15 +34,18 @@ describe Geoblacklight::Download do
31
34
  expect(download.file_name).to eq "test-shapefile.zip"
32
35
  end
33
36
  end
37
+
34
38
  describe "#file_path" do
35
39
  it "returns the path with name and extension" do
36
- expect(download.class.file_path).to eq Rails.root.join("tmp", "cache", "downloads")
40
+ expect(download.class.file_path).to eq Rails.root.join("tmp", "cache", "downloads").to_s
37
41
  end
42
+
38
43
  it "is configurable" do
39
- expect(Settings).to receive(:DOWNLOAD_PATH).and_return("configured/path")
44
+ expect(Geoblacklight.configuration).to receive(:download_path).and_return("configured/path")
40
45
  expect(download.class.file_path).to eq "configured/path"
41
46
  end
42
47
  end
48
+
43
49
  describe "#download_exists?" do
44
50
  it "returns false if file does not exist" do
45
51
  expect(File).to receive(:file?).and_return(false)
@@ -106,7 +112,10 @@ describe Geoblacklight::Download do
106
112
  it "creates the file in fs and delete it if the content headers are not correct" do
107
113
  allow(File).to receive(:delete).with("#{download.file_path_and_name}.tmp").and_return(nil)
108
114
 
109
- expect { download.create_download_file }.to raise_error(Geoblacklight::Exceptions::ExternalDownloadFailed, "Wrong download type")
115
+ expect do
116
+ download.create_download_file
117
+ end.to raise_error(Geoblacklight::Exceptions::ExternalDownloadFailed,
118
+ "Wrong download type")
110
119
  end
111
120
  end
112
121
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::Geometry do
5
+ RSpec.describe Geoblacklight::Geometry do
6
6
  let(:wkt_geom) { "MULTIPOLYGON(((-180 81.66, -180 -12.93, -168.35 -12.93, -168.35 81.66, -180 81.66)), ((180 81.66, 25 81.66, 25 -12.93, 180 -12.93, 180 81.66)))" }
7
7
  let(:envelope_geom) { "ENVELOPE(25, -168.35, 81.66, -12.93)" }
8
8
  let(:invalid_geom) { "INVALID" }
@@ -2,11 +2,11 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::ItemViewer do
5
+ RSpec.describe Geoblacklight::ItemViewer do
6
6
  let(:document) { SolrDocument.new(document_attributes) }
7
7
  let(:document_attributes) { {} }
8
8
  let(:references) { document.references }
9
- let(:references_field) { Settings.FIELDS.REFERENCES }
9
+ let(:references_field) { Geoblacklight.configuration.fields.references }
10
10
  let(:item_viewer) { described_class.new(references) }
11
11
  describe "viewer_preference" do
12
12
  describe "for no references" do
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::Metadata::Base do
5
+ RSpec.describe Geoblacklight::Metadata::Base do
6
6
  subject(:metadata) { described_class.new(reference) }
7
7
 
8
8
  let(:connection) { instance_double(Faraday::Connection) }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::Metadata::Html do
5
+ RSpec.describe Geoblacklight::Metadata::Html do
6
6
  let(:url) { "https://s3.amazonaws.com/cugir-data/00/77/41/fgdc.html" }
7
7
  let(:metadata) do
8
8
  described_class.new(
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::Metadata do
5
+ RSpec.describe Geoblacklight::Metadata do
6
6
  describe ".instance" do
7
7
  let(:reference) { instance_double(Geoblacklight::Reference) }
8
8
  context "with an FGDC metadata reference" do
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::MetadataTransformer::Base do
5
+ RSpec.describe Geoblacklight::MetadataTransformer::Base do
6
6
  describe ".new" do
7
7
  it "raises an error for empty XML" do
8
8
  expect { described_class.new(nil) }.to raise_error Geoblacklight::MetadataTransformer::EmptyMetadataError
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::MetadataTransformer::Fgdc do
5
+ RSpec.describe Geoblacklight::MetadataTransformer::Fgdc do
6
6
  subject do
7
7
  described_class.new(metadata)
8
8
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::MetadataTransformer::Iso19139 do
5
+ RSpec.describe Geoblacklight::MetadataTransformer::Iso19139 do
6
6
  subject do
7
7
  described_class.new(metadata)
8
8
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::MetadataTransformer do
5
+ RSpec.describe Geoblacklight::MetadataTransformer do
6
6
  let(:klass) { instance_double(Class) }
7
7
  before do
8
8
  allow(metadata).to receive(:blank?).and_return(false)
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::Reference do
5
+ RSpec.describe Geoblacklight::Reference do
6
6
  let(:typical_reference) do
7
7
  described_class.new(["http://www.opengis.net/def/serviceType/ogc/wms", "http://hgl.harvard.edu:8080/geoserver/wms"])
8
8
  end
@@ -2,9 +2,9 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::References do
6
- let(:references_field) { Settings.FIELDS.REFERENCES }
7
- let(:file_format_field) { Settings.FIELDS.FORMAT }
5
+ RSpec.describe Geoblacklight::References do
6
+ let(:references_field) { Geoblacklight.configuration.fields.references }
7
+ let(:file_format_field) { Geoblacklight.configuration.fields.format }
8
8
  let(:typical_ogp_shapefile) do
9
9
  described_class.new(
10
10
  SolrDocument.new(
@@ -134,9 +134,11 @@ describe Geoblacklight::References do
134
134
  end
135
135
  context "with an overridden order for the formats" do
136
136
  before do
137
+ allow(Geoblacklight.configuration).to receive_messages(
138
+ metadata_shown: %w[iso19139 mods]
139
+ )
137
140
  stub_const("Settings", Module.new)
138
141
  allow(Settings).to receive_messages(
139
- METADATA_SHOWN: %w[iso19139 mods],
140
142
  FIELDS: OpenStruct.new(FORMAT: "dct_format_s")
141
143
  )
142
144
  end
@@ -2,14 +2,20 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::Relation::Ancestors do
5
+ RSpec.describe Geoblacklight::Relation::Ancestors do
6
6
  let(:repository) { Blacklight::Solr::Repository.new(CatalogController.blacklight_config) }
7
- let(:ancestors) { described_class.new("nyu_2451_34502", Settings.FIELDS.SOURCE, repository) }
8
- let(:empty_ancestors) { described_class.new("harvard-g7064-s2-1834-k3", Settings.FIELDS.SOURCE, repository) }
7
+ let(:ancestors) { described_class.new("nyu_2451_34502", Geoblacklight.configuration.fields.source, repository) }
8
+ let(:empty_ancestors) do
9
+ described_class.new("harvard-g7064-s2-1834-k3", Geoblacklight.configuration.fields.source, repository)
10
+ end
9
11
 
10
12
  describe "#create_search_params" do
11
13
  it "assembles the correct search params for finding ancestor documents" do
12
- expect(ancestors.create_search_params).to eq(fq: ["{!join from=#{Settings.FIELDS.SOURCE} to=#{Settings.FIELDS.ID}}#{Settings.FIELDS.ID}:nyu_2451_34502"], fl: [Settings.FIELDS.TITLE.to_s, Settings.FIELDS.ID, Settings.FIELDS.RESOURCE_TYPE])
14
+ expect(ancestors.create_search_params).to eq(
15
+ fq: ["{!join from=#{Geoblacklight.configuration.fields.source} to=#{Geoblacklight.configuration.fields.id}}#{Geoblacklight.configuration.fields.id}:nyu_2451_34502"], fl: [
16
+ Geoblacklight.configuration.fields.title, Geoblacklight.configuration.fields.id, Geoblacklight.configuration.fields.resource_type
17
+ ]
18
+ )
13
19
  end
14
20
  end
15
21
 
@@ -2,14 +2,19 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::Relation::Descendants do
5
+ RSpec.describe Geoblacklight::Relation::Descendants do
6
6
  let(:repository) { Blacklight::Solr::Repository.new(CatalogController.blacklight_config) }
7
- let(:descendants) { described_class.new("nyu_2451_34636", Settings.FIELDS.SOURCE, repository) }
8
- let(:empty_descendants) { described_class.new("harvard-g7064-s2-1834-k3", Settings.FIELDS.SOURCE, repository) }
7
+ let(:descendants) { described_class.new("nyu_2451_34636", Geoblacklight.configuration.fields.source, repository) }
8
+ let(:empty_descendants) do
9
+ described_class.new("harvard-g7064-s2-1834-k3", Geoblacklight.configuration.fields.source, repository)
10
+ end
9
11
 
10
12
  describe "#create_search_params" do
11
13
  it "assembles the correct search params for finding descendant documents" do
12
- expect(descendants.create_search_params).to eq(fq: "#{Settings.FIELDS.SOURCE}:nyu_2451_34636", fl: [Settings.FIELDS.TITLE.to_s, Settings.FIELDS.ID, Settings.FIELDS.RESOURCE_TYPE])
14
+ expect(descendants.create_search_params).to eq(fq: "#{Geoblacklight.configuration.fields.source}:nyu_2451_34636",
15
+ fl: [
16
+ Geoblacklight.configuration.fields.title, Geoblacklight.configuration.fields.id, Geoblacklight.configuration.fields.resource_type
17
+ ])
13
18
  end
14
19
  end
15
20
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::Relation::RelationResponse do
5
+ RSpec.describe Geoblacklight::Relation::RelationResponse do
6
6
  let(:repository) { Blacklight::Solr::Repository.new(CatalogController.blacklight_config) }
7
7
  let(:relation_resp) { described_class.new("nyu_2451_34502", repository) }
8
8
  let(:empty_relation_resp) { described_class.new("harvard-g7064-s2-1834-k3", repository) }
@@ -14,13 +14,13 @@ describe Geoblacklight::Relation::RelationResponse do
14
14
 
15
15
  describe "#method_missing" do
16
16
  it "returns a hash of ancestor documents" do
17
- expect(relation_resp.SOURCE_ANCESTORS).to include("numFound")
18
- expect(relation_resp.SOURCE_ANCESTORS).to include("docs")
17
+ expect(relation_resp.source_ancestors).to include("numFound")
18
+ expect(relation_resp.source_ancestors).to include("docs")
19
19
  end
20
20
 
21
21
  it "returns a hash of descendant documents" do
22
- expect(relation_resp.SOURCE_DESCENDANTS).to include("numFound")
23
- expect(relation_resp.SOURCE_DESCENDANTS).to include("docs")
22
+ expect(relation_resp.source_descendants).to include("numFound")
23
+ expect(relation_resp.source_descendants).to include("docs")
24
24
  end
25
25
 
26
26
  it "raises no method error" do
@@ -30,7 +30,7 @@ describe Geoblacklight::Relation::RelationResponse do
30
30
 
31
31
  describe "#respond_to_missing?" do
32
32
  it "returns true for configured relationships" do
33
- Settings.RELATIONSHIPS_SHOWN.each_key do |key|
33
+ Geoblacklight.configuration.relationships_shown.each_key do |key|
34
34
  expect(relation_resp).to respond_to(key)
35
35
  end
36
36
  end
@@ -43,23 +43,20 @@ describe Geoblacklight::Relation::RelationResponse do
43
43
  describe "#query_type" do
44
44
  it "fails for a bad query type request" do
45
45
  # Cache the existing relationship values and add a test value
46
- relationships = Settings.RELATIONSHIPS_SHOWN
47
- Settings.add_source!({
48
- RELATIONSHIPS_SHOWN: {
49
- BAD: {
50
- field: "dct_source_sm",
51
- query_type: "bad_query_type",
52
- icon: "pagelines-brands",
53
- label: "geoblacklight.relations.source_ancestor"
54
- }
55
- }
56
- })
57
- Settings.reload!
46
+ relationships = Geoblacklight.configuration.relationships_shown
47
+ Geoblacklight.configuration.relationships_shown = {
48
+ BAD: Config::Options.new({
49
+ field: "dct_source_sm",
50
+ query_type: "bad_query_type",
51
+ icon: "pagelines-brands",
52
+ label: "geoblacklight.relations.source_ancestor"
53
+ })
54
+ }
58
55
 
59
56
  expect { relation_resp.BAD }.to raise_error(ArgumentError)
60
57
 
61
58
  # Restore relationship values
62
- Settings.RELATIONSHIPS_SHOWN = relationships
59
+ Geoblacklight.configuration.relationships_shown = relationships
63
60
  end
64
61
  end
65
62
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::FeatureInfoResponse do
5
+ RSpec.describe Geoblacklight::FeatureInfoResponse do
6
6
  let(:response) { described_class.new(OpenStruct.new(body: "<html><body><table><th>Header1</th><th>Header2</th><td>value1</td><td>value2</td></body></html>", headers: {"content-type" => "all good"})) }
7
7
  let(:response_multiple_features) { described_class.new(OpenStruct.new(body: "<html><body><table><th>Header1</th><th>Header2</th><tr><td>value1</td><td>value2</td></tr><tr><td>value3</td><td>value4</td></tr></body></html>", headers: {"content-type" => "all good"})) }
8
8
  let(:error_response) { described_class.new(error: "bad stuff") }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "spec_helper"
4
4
 
5
- describe Geoblacklight::WmsLayer do
5
+ RSpec.describe Geoblacklight::WmsLayer do
6
6
  let(:wms_layer) { described_class.new(params) }
7
7
  let(:rails_4_params) { {"URL" => "http://www.example.com/", "X" => "277"} }
8
8
  let(:rails_5_params) { instance_double(ActionController::Parameters) }