geoblacklight 4.0.0.pre.rc3 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (229) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +22 -16
  3. data/.standard.yml +1 -0
  4. data/CODE_OF_CONDUCT.md +1 -1
  5. data/Gemfile +13 -11
  6. data/README.md +22 -14
  7. data/Rakefile +42 -50
  8. data/app/assets/images/blacklight/american-geographical-society-library-uwm-libraries.svg +26 -0
  9. data/app/assets/images/blacklight/arizona.svg +4 -0
  10. data/app/assets/images/blacklight/circle-info-solid.svg +1 -0
  11. data/app/assets/images/blacklight/fire-solid.svg +1 -0
  12. data/app/assets/images/blacklight/geoblacklight-icons.json +98 -66
  13. data/app/assets/images/blacklight/george-mason.svg +4 -0
  14. data/app/assets/images/blacklight/lightbulb-solid.svg +1 -0
  15. data/app/assets/images/blacklight/nebraska.svg +4 -0
  16. data/app/assets/images/blacklight/rutgers.svg +5 -0
  17. data/app/assets/images/blacklight/triangle-exclamation-solid.svg +1 -0
  18. data/app/assets/stylesheets/geoblacklight/modules/sidebar.scss +8 -0
  19. data/app/components/geoblacklight/display_note_component.html.erb +1 -0
  20. data/app/components/geoblacklight/display_note_component.rb +47 -0
  21. data/app/components/geoblacklight/icon_facet_item_component.rb +2 -2
  22. data/app/controllers/download_controller.rb +36 -37
  23. data/app/controllers/relation_controller.rb +1 -0
  24. data/app/controllers/wms_controller.rb +1 -0
  25. data/app/helpers/arcgis_helper.rb +2 -1
  26. data/app/helpers/blacklight_helper.rb +2 -1
  27. data/app/helpers/carto_helper.rb +3 -2
  28. data/app/helpers/geoblacklight/geoblacklight_helper_behavior.rb +2 -1
  29. data/app/helpers/geoblacklight_helper.rb +44 -36
  30. data/app/models/concerns/geoblacklight/bbox_filter_query.rb +1 -1
  31. data/app/models/concerns/geoblacklight/solr_document/arcgis.rb +1 -0
  32. data/app/models/concerns/geoblacklight/solr_document/carto.rb +1 -0
  33. data/app/models/concerns/geoblacklight/solr_document/citation.rb +3 -2
  34. data/app/models/concerns/geoblacklight/solr_document/finder.rb +1 -0
  35. data/app/models/concerns/geoblacklight/solr_document/inspection.rb +1 -0
  36. data/app/models/concerns/geoblacklight/solr_document.rb +17 -9
  37. data/app/models/concerns/geoblacklight/suppressed_records_search_behavior.rb +2 -1
  38. data/app/presenters/geoblacklight/document_presenter.rb +3 -2
  39. data/app/views/catalog/_show_default_display_note.html.erb +7 -0
  40. data/app/views/catalog/_show_sidebar.html.erb +1 -0
  41. data/app/views/catalog/_show_sidebar_static_map.html.erb +10 -0
  42. data/app/views/relation/index.json.jbuilder +1 -1
  43. data/config/initializers/new_gbl_settings_defaults_4.1.yml +104 -0
  44. data/config/initializers/rails_config.rb +5 -1
  45. data/config/locales/geoblacklight.en.yml +19 -10
  46. data/geoblacklight.gemspec +36 -40
  47. data/lib/generators/geoblacklight/assets_generator.rb +15 -15
  48. data/lib/generators/geoblacklight/install_generator.rb +24 -23
  49. data/lib/generators/geoblacklight/templates/catalog_controller.rb +66 -71
  50. data/lib/generators/geoblacklight/templates/settings.yml +74 -22
  51. data/lib/geoblacklight/bounding_box.rb +1 -0
  52. data/lib/geoblacklight/constants.rb +26 -25
  53. data/lib/geoblacklight/download/geojson_download.rb +10 -9
  54. data/lib/geoblacklight/download/geotiff_download.rb +6 -5
  55. data/lib/geoblacklight/download/hgl_download.rb +4 -3
  56. data/lib/geoblacklight/download/kmz_download.rb +11 -10
  57. data/lib/geoblacklight/download/shapefile_download.rb +10 -9
  58. data/lib/geoblacklight/download.rb +12 -11
  59. data/lib/geoblacklight/engine.rb +10 -9
  60. data/lib/geoblacklight/exceptions.rb +3 -0
  61. data/lib/geoblacklight/faraday_middleware/follow_redirects.rb +12 -11
  62. data/lib/geoblacklight/geometry.rb +6 -5
  63. data/lib/geoblacklight/item_viewer.rb +4 -3
  64. data/lib/geoblacklight/metadata/base.rb +4 -3
  65. data/lib/geoblacklight/metadata/fgdc.rb +1 -0
  66. data/lib/geoblacklight/metadata/html.rb +5 -4
  67. data/lib/geoblacklight/metadata/iso19139.rb +1 -0
  68. data/lib/geoblacklight/metadata.rb +1 -0
  69. data/lib/geoblacklight/metadata_transformer/base.rb +5 -4
  70. data/lib/geoblacklight/metadata_transformer/fgdc.rb +1 -0
  71. data/lib/geoblacklight/metadata_transformer/iso19139.rb +1 -0
  72. data/lib/geoblacklight/metadata_transformer.rb +6 -2
  73. data/lib/geoblacklight/reference.rb +3 -2
  74. data/lib/geoblacklight/references.rb +11 -6
  75. data/lib/geoblacklight/relation/ancestors.rb +4 -3
  76. data/lib/geoblacklight/relation/descendants.rb +4 -3
  77. data/lib/geoblacklight/relation/relation_response.rb +3 -2
  78. data/lib/geoblacklight/routes/downloadable.rb +3 -2
  79. data/lib/geoblacklight/routes/exportable.rb +4 -3
  80. data/lib/geoblacklight/routes/wms.rb +2 -1
  81. data/lib/geoblacklight/routes.rb +4 -3
  82. data/lib/geoblacklight/version.rb +2 -1
  83. data/lib/geoblacklight/view_helper_override.rb +3 -2
  84. data/lib/geoblacklight/wms_layer/feature_info_response.rb +5 -4
  85. data/lib/geoblacklight/wms_layer.rb +4 -3
  86. data/lib/geoblacklight.rb +32 -31
  87. data/lib/tasks/geoblacklight.rake +57 -39
  88. data/schema/geoblacklight-schema-1.0.json +3 -3
  89. data/schema/geoblacklight-schema-aardvark.json +6 -0
  90. data/schema/readme.md +8 -0
  91. data/spec/components/geoblacklight/display_note_component_spec.rb +27 -0
  92. data/spec/components/geoblacklight/homepage_feature_facet_component_spec.rb +11 -10
  93. data/spec/components/geoblacklight/icon_facet_item_component_spec.rb +8 -7
  94. data/spec/config/initializers/rails_config_spec.rb +10 -9
  95. data/spec/controllers/catalog_controller_spec.rb +27 -26
  96. data/spec/controllers/download_controller_spec.rb +50 -49
  97. data/spec/controllers/relation_controller_spec.rb +5 -4
  98. data/spec/controllers/wms_controller_spec.rb +10 -9
  99. data/spec/factories/user.rb +3 -2
  100. data/spec/features/bookmarks_spec.rb +7 -6
  101. data/spec/features/configurable_basemap_spec.rb +12 -11
  102. data/spec/features/data_dictionary_download_spec.rb +11 -10
  103. data/spec/features/download_layer_spec.rb +64 -63
  104. data/spec/features/empty_search_spec.rb +6 -5
  105. data/spec/features/esri_viewer_spec.rb +33 -32
  106. data/spec/features/exports_spec.rb +18 -17
  107. data/spec/features/full_screen_controll_spec.rb +8 -8
  108. data/spec/features/help_text_spec.rb +6 -5
  109. data/spec/features/home_page_spec.rb +30 -29
  110. data/spec/features/iiif_viewer_spec.rb +6 -5
  111. data/spec/features/index_map_spec.rb +17 -16
  112. data/spec/features/layer_inspection_spec.rb +8 -7
  113. data/spec/features/layer_opacity_spec.rb +15 -14
  114. data/spec/features/layer_preview_spec.rb +11 -10
  115. data/spec/features/layer_with_no_references_spec.rb +5 -4
  116. data/spec/features/linkified_attribute_table_spec.rb +8 -7
  117. data/spec/features/metadata_panel_spec.rb +32 -31
  118. data/spec/features/missing_metadata_spec.rb +18 -17
  119. data/spec/features/multiple_downloads_spec.rb +11 -10
  120. data/spec/features/oembed_spec.rb +6 -5
  121. data/spec/features/relations_spec.rb +51 -26
  122. data/spec/features/saved_searches_spec.rb +7 -6
  123. data/spec/features/search_bar_spec.rb +9 -8
  124. data/spec/features/search_results_complex_geometry_spec.rb +12 -11
  125. data/spec/features/search_results_icons_spec.rb +10 -9
  126. data/spec/features/search_results_map_spec.rb +21 -20
  127. data/spec/features/search_results_overlap_ratio_spec.rb +17 -16
  128. data/spec/features/search_spec.rb +19 -18
  129. data/spec/features/show_page_download_spec.rb +15 -14
  130. data/spec/features/show_page_metadata_spec.rb +9 -8
  131. data/spec/features/show_page_sidebar_static_map_spec.rb +21 -0
  132. data/spec/features/sms_spec.rb +12 -11
  133. data/spec/features/split_view.html.erb_spec.rb +56 -55
  134. data/spec/features/suppressed_records_spec.rb +10 -9
  135. data/spec/features/tilejson_spec.rb +9 -8
  136. data/spec/features/tms_spec.rb +6 -5
  137. data/spec/features/web_services_modal_spec.rb +37 -36
  138. data/spec/features/wmts_spec.rb +16 -15
  139. data/spec/features/xyz_spec.rb +6 -5
  140. data/spec/fixtures/solr_documents/actual-papermap1.json +1 -1
  141. data/spec/fixtures/solr_documents/actual-point1.json +1 -1
  142. data/spec/fixtures/solr_documents/actual-polygon1.json +1 -1
  143. data/spec/fixtures/solr_documents/actual-raster1.json +1 -1
  144. data/spec/fixtures/solr_documents/baruch_ancestor1.json +1 -1
  145. data/spec/fixtures/solr_documents/baruch_ancestor2.json +1 -1
  146. data/spec/fixtures/solr_documents/baruch_documentation_download.json +2 -2
  147. data/spec/fixtures/solr_documents/cornell_html_metadata.json +1 -1
  148. data/spec/fixtures/solr_documents/display-note.json +52 -0
  149. data/spec/fixtures/solr_documents/esri-dynamic-layer-all-layers.json +1 -1
  150. data/spec/fixtures/solr_documents/esri-dynamic-layer-single-layer.json +1 -1
  151. data/spec/fixtures/solr_documents/esri-feature-layer.json +1 -1
  152. data/spec/fixtures/solr_documents/esri-image-map-layer.json +1 -1
  153. data/spec/fixtures/solr_documents/esri-tiled_map_layer.json +1 -1
  154. data/spec/fixtures/solr_documents/esri-wms-layer.json +1 -1
  155. data/spec/fixtures/solr_documents/harvard_raster.json +1 -1
  156. data/spec/fixtures/solr_documents/iiif-eastern-hemisphere.json +1 -1
  157. data/spec/fixtures/solr_documents/index-map-polygon-no-downloadurl.json +1 -1
  158. data/spec/fixtures/solr_documents/index-map-polygon.json +1 -1
  159. data/spec/fixtures/solr_documents/index-map-stanford.json +1 -1
  160. data/spec/fixtures/solr_documents/index_map_point.json +1 -1
  161. data/spec/fixtures/solr_documents/princeton-parent.json +1 -1
  162. data/spec/fixtures/solr_documents/public_direct_download.json +1 -1
  163. data/spec/fixtures/solr_documents/public_iiif_princeton.json +1 -1
  164. data/spec/fixtures/solr_documents/restricted-line.json +1 -1
  165. data/spec/fixtures/solr_documents/tilejson.json +2 -2
  166. data/spec/fixtures/solr_documents/umn_metro_result1.json +2 -2
  167. data/spec/fixtures/solr_documents/umn_state_result1.json +1 -1
  168. data/spec/fixtures/solr_documents/umn_state_result2.json +1 -1
  169. data/spec/fixtures/solr_documents/uva_slug_colon.json +1 -1
  170. data/spec/fixtures/solr_documents/wmts-multiple.json +1 -1
  171. data/spec/fixtures/solr_documents/wmts-single-layer.json +6 -6
  172. data/spec/fixtures/solr_documents/xyz.json +3 -3
  173. data/spec/helpers/arcgis_helper_spec.rb +8 -7
  174. data/spec/helpers/carto_helper_spec.rb +6 -5
  175. data/spec/helpers/geoblacklight/geoblacklight_helper_behavior_spec.rb +10 -15
  176. data/spec/helpers/geoblacklight_helper_spec.rb +139 -138
  177. data/spec/lib/geoblacklight/bounding_box_spec.rb +14 -13
  178. data/spec/lib/geoblacklight/document_presenter_spec.rb +26 -25
  179. data/spec/lib/geoblacklight/download/geojson_download_spec.rb +8 -7
  180. data/spec/lib/geoblacklight/download/geotiff_download_spec.rb +8 -7
  181. data/spec/lib/geoblacklight/download/hgl_download_spec.rb +16 -15
  182. data/spec/lib/geoblacklight/download/kmz_download_spec.rb +9 -8
  183. data/spec/lib/geoblacklight/download/shapefile_download_spec.rb +8 -7
  184. data/spec/lib/geoblacklight/download_spec.rb +61 -60
  185. data/spec/lib/geoblacklight/geometry_spec.rb +29 -28
  186. data/spec/lib/geoblacklight/item_viewer_spec.rb +25 -24
  187. data/spec/lib/geoblacklight/metadata/base_spec.rb +44 -43
  188. data/spec/lib/geoblacklight/metadata/html_spec.rb +7 -6
  189. data/spec/lib/geoblacklight/metadata_spec.rb +15 -14
  190. data/spec/lib/geoblacklight/metadata_transformer/base_spec.rb +13 -12
  191. data/spec/lib/geoblacklight/metadata_transformer/fgdc_spec.rb +8 -7
  192. data/spec/lib/geoblacklight/metadata_transformer/iso19139_spec.rb +8 -7
  193. data/spec/lib/geoblacklight/metadata_transformer_spec.rb +15 -14
  194. data/spec/lib/geoblacklight/reference_spec.rb +28 -27
  195. data/spec/lib/geoblacklight/references_spec.rb +89 -76
  196. data/spec/lib/geoblacklight/relation/ancestors_spec.rb +17 -16
  197. data/spec/lib/geoblacklight/relation/descendants_spec.rb +17 -16
  198. data/spec/lib/geoblacklight/relation/relation_response_spec.rb +29 -28
  199. data/spec/lib/geoblacklight/view_helper_override_spec.rb +14 -13
  200. data/spec/lib/geoblacklight/wms_layer/feature_info_response_spec.rb +19 -18
  201. data/spec/lib/geoblacklight/wms_layer_spec.rb +31 -30
  202. data/spec/models/concerns/geoblacklight/bbox_filter_field_spec.rb +31 -31
  203. data/spec/models/concerns/geoblacklight/bbox_filter_query_spec.rb +32 -32
  204. data/spec/models/concerns/geoblacklight/solr_document/carto_spec.rb +16 -15
  205. data/spec/models/concerns/geoblacklight/solr_document/citation_spec.rb +7 -6
  206. data/spec/models/concerns/geoblacklight/solr_document/finder_spec.rb +16 -17
  207. data/spec/models/concerns/geoblacklight/solr_document/inspection_spec.rb +7 -6
  208. data/spec/models/concerns/geoblacklight/solr_document_spec.rb +121 -107
  209. data/spec/models/concerns/geoblacklight/suppressed_records_search_behavior_spec.rb +8 -7
  210. data/spec/presenters/geoblacklight/bbox_item_presenter_spec.rb +10 -10
  211. data/spec/routing/catalog_routing_spec.rb +4 -3
  212. data/spec/spec_helper.rb +34 -33
  213. data/spec/support/backport_test_helpers.rb +6 -5
  214. data/spec/support/features/session_helpers.rb +8 -7
  215. data/spec/support/features.rb +2 -1
  216. data/spec/support/fixtures.rb +2 -1
  217. data/spec/tasks/geoblacklight_spec.rb +10 -9
  218. data/spec/test_app_templates/lib/generators/test_app_generator.rb +16 -15
  219. data/spec/views/catalog/_document_split.html.erb_spec.rb +3 -2
  220. data/spec/views/catalog/_index_split.html.erb_spec.rb +3 -2
  221. data/spec/views/catalog/_results_pagination.html.erb_spec.rb +5 -4
  222. data/spec/views/catalog/_show_downloads.html.erb_spec.rb +11 -10
  223. data/spec/views/catalog/_show_tools.html.erb_spec.rb +13 -12
  224. data/template.rb +9 -8
  225. metadata +31 -212
  226. data/.gitmodules +0 -0
  227. data/.rubocop.yml +0 -111
  228. data/.rubocop_todo.yml +0 -418
  229. data/config/initializers/new_gbl_settings_defaults_3_4.yml +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c79db293440e20eec134b810891862224cc2ffd664c0e0b1899235bd6c577d52
4
- data.tar.gz: 20fd4af3b5cb75b5902370b464da4d50f0afdb081d143e566275fd6ec7f6ece6
3
+ metadata.gz: c26827784f59e0d846384c2bfc37023df7b49a1d15166c727be785966ee4b651
4
+ data.tar.gz: daa3337fee9b870746d6a6dec960105e8c0ce0717134f4c0c72de4ace2f7a3d2
5
5
  SHA512:
6
- metadata.gz: 814e2426bdd9024a0d68b4750f2a9b02ac45e8bdf52f8a0c1d54004ae1f3140bce2b93223982ebfc19e960561c6afaaef939f8c7909d91949f15cb1151d34a33
7
- data.tar.gz: 72113af4255d38766e2916ddeac83796daaf3f8079e6eeac631603e9768fb38fc213a12460b0151a0bf9943da33fa4bee9e4b902f0b43e58b299aa1dc19b2d10
6
+ metadata.gz: 8fc7061cae6dad0d571274626d5329be5d651caf93efaae0403eb3d50527c7d641f814018438bb2f839b4a8a34d7eae247e8b9c1a4356b75c8bdc5c38ed69993
7
+ data.tar.gz: 9e8eaad05028d743875646e0b3e35bba917c350a9bdfc79b37ae94fc4c7117e6916bfbcba1a1f6de5c9b725b11b003c8e8ea6d4923eabc8323651e612ed45c9d
@@ -7,7 +7,7 @@ on:
7
7
  pull_request:
8
8
 
9
9
  jobs:
10
- rubocop:
10
+ linter:
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
13
  - uses: actions/checkout@v2
@@ -18,25 +18,28 @@ jobs:
18
18
  - name: Install dependencies
19
19
  run: bundle install
20
20
  - name: Run linter
21
- run: bundle exec rake rubocop
21
+ run: bundle exec standardrb
22
+
23
+ aardvark-fixture-linter:
24
+ runs-on: ubuntu-latest
25
+ steps:
26
+ - uses: actions/checkout@v2
27
+ - name: Set up Ruby
28
+ uses: ruby/setup-ruby@v1
29
+ with:
30
+ ruby-version: 2.7
31
+ - name: Install json schema validator
32
+ run: gem install json_schemer
33
+ - name: Run json_schemer against aarkvark fixtures
34
+ run: find spec/fixtures/solr_documents -type f -name "*.json" | xargs json_schemer schema/geoblacklight-schema-aardvark.json
22
35
 
23
36
  test:
24
37
  runs-on: ubuntu-latest
25
38
  strategy:
26
39
  matrix:
27
40
  ruby_version: ['3.0', 2.7]
28
- rails_version: [6.1]
29
- bundler_version: [2.1.1]
41
+ rails_version: [7.0.2.2, 6.1]
30
42
  faraday_version: ['>= 2', '~> 1.0']
31
- include:
32
- - ruby_version: 2.6
33
- rails_version: 6.1
34
- bundler_version: 2.1.1
35
- faraday_version: '~> 1.0'
36
- - ruby_version: '3.0'
37
- rails_version: '7.0.2.2'
38
- bundler_version: 2.1.1
39
- faraday_version: '>= 2'
40
43
 
41
44
  name: test ruby ${{ matrix.ruby_version }} / rails ${{ matrix.rails_version }} / faraday ${{ matrix.faraday_version }}
42
45
  steps:
@@ -45,12 +48,15 @@ jobs:
45
48
  uses: ruby/setup-ruby@v1
46
49
  with:
47
50
  ruby-version: ${{ matrix.ruby_version }}
51
+ # required to avoid https://github.com/actions/runner-images/issues/37
52
+ # because faraday depends on patron, which requires curl headers to build
53
+ - name: Install cURL Headers
54
+ run: sudo apt-get update && sudo apt-get install libcurl4-openssl-dev
55
+ if: matrix.faraday_version == '~> 1.0'
48
56
  - name: Create Solr container
49
57
  run: docker run -d -p 8983:8983 geoblacklight/solr:8.9-v1.0.0 server/scripts/ci-start.sh
50
- - name: Install bundler
51
- run: gem install bundler -v ${{ matrix.bundler_version }}
52
58
  - name: Install dependencies
53
- run: bundle _${{ matrix.bundler_version }}_ install
59
+ run: bundle install
54
60
  env:
55
61
  RAILS_VERSION: ${{ matrix.rails_version }}
56
62
  FARADAY_VERSION: ${{ matrix.faraday_version }}
data/.standard.yml ADDED
@@ -0,0 +1 @@
1
+ format: progress
data/CODE_OF_CONDUCT.md CHANGED
@@ -42,7 +42,7 @@ behavior and are expected to take appropriate and fair corrective action in
42
42
  response to any instances of unacceptable behavior.
43
43
 
44
44
  Project maintainers have the right and responsibility to remove, edit, or
45
- reject comments, commits, code, wiki edits, issues, and other contributions
45
+ reject comments, commits, code, issues, and other contributions
46
46
  that are not aligned to this Code of Conduct, or to ban temporarily or
47
47
  permanently any contributor for other behaviors that they deem inappropriate,
48
48
  threatening, offensive, or harmful.
data/Gemfile CHANGED
@@ -1,39 +1,41 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in geoblacklight.gemspec
4
4
  gemspec
5
5
 
6
6
  group :development, :test do
7
7
  # See https://github.com/rails/rails/issues/32955
8
- gem 'thor', '>= 0.19.0'
8
+ gem "thor", ">= 0.19.0"
9
9
  end
10
10
 
11
11
  # BEGIN ENGINE_CART BLOCK
12
12
  # engine_cart: 0.10.0
13
13
  # engine_cart stanza: 0.10.0
14
14
  # the below comes from engine_cart, a gem used to test this Rails engine gem in the context of a Rails app.
15
- file = File.expand_path('Gemfile', ENV['ENGINE_CART_DESTINATION'] || ENV['RAILS_ROOT'] || File.expand_path('.internal_test_app', File.dirname(__FILE__)))
15
+ file = File.expand_path("Gemfile", ENV["ENGINE_CART_DESTINATION"] || ENV["RAILS_ROOT"] || File.expand_path(".internal_test_app", File.dirname(__FILE__)))
16
16
  if File.exist?(file)
17
17
  begin
18
18
  eval_gemfile file
19
19
  rescue Bundler::GemfileError => e
20
- Bundler.ui.warn '[EngineCart] Skipping Rails application dependencies:'
20
+ Bundler.ui.warn "[EngineCart] Skipping Rails application dependencies:"
21
21
  Bundler.ui.warn e.message
22
22
  end
23
23
  else
24
24
  Bundler.ui.warn "[EngineCart] Unable to find test application dependencies in #{file}, using placeholder dependencies"
25
25
 
26
- if ENV['RAILS_VERSION']
27
- if ENV['RAILS_VERSION'] == 'edge'
28
- gem 'rails', github: 'rails/rails'
29
- ENV['ENGINE_CART_RAILS_OPTIONS'] = '--edge --skip-turbolinks'
26
+ if ENV["RAILS_VERSION"]
27
+ if ENV["RAILS_VERSION"] == "edge"
28
+ gem "rails", github: "rails/rails"
29
+ ENV["ENGINE_CART_RAILS_OPTIONS"] = "--edge --skip-turbolinks"
30
30
  else
31
- gem 'rails', ENV['RAILS_VERSION']
31
+ gem "rails", ENV["RAILS_VERSION"]
32
32
  end
33
33
  end
34
34
  end
35
35
 
36
- if File.exists?('spec/test_app_templates/Gemfile.extra')
37
- eval File.read('spec/test_app_templates/Gemfile.extra'), nil, 'spec/test_app_templates/Gemfile.extra'
36
+ if File.exist?("spec/test_app_templates/Gemfile.extra")
37
+ # rubocop:disable Security/Eval
38
+ eval File.read("spec/test_app_templates/Gemfile.extra"), nil, "spec/test_app_templates/Gemfile.extra"
39
+ # rubocop:enable Security/Eval
38
40
  end
39
41
  # END ENGINE_CART BLOCK
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # GeoBlacklight
2
2
 
3
- ![CI](https://github.com/geoblacklight/geoblacklight/actions/workflows/ruby.yml/badge.svg) | [![Coverage Status](https://img.shields.io/badge/coverage-100%25-brightgreen)]() | [![Gem Version](https://img.shields.io/gem/v/geoblacklight.svg)](https://github.com/geoblacklight/geoblacklight/releases)
3
+ ![CI](https://github.com/geoblacklight/geoblacklight/actions/workflows/ruby.yml/badge.svg) | [![Coverage Status](https://img.shields.io/badge/coverage-100%25-brightgreen)]() | [![Gem Version](https://img.shields.io/gem/v/geoblacklight.svg)](https://github.com/geoblacklight/geoblacklight/releases) | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5851664.svg)](https://zenodo.org/record/5851664#.YyIculLMK2A)
4
4
 
5
5
  GeoBlacklight is a world-class discovery platform for geospatial (GIS) holdings. It
6
6
  is an open collaborative project aiming to build off of the successes
@@ -8,29 +8,37 @@ of the Blacklight Solr-powered discovery interface and the
8
8
  multi-institutional [OpenGeoportal](http://opengeoportal.io/) and [OpenGeoMetadata](https://github.com/opengeometadata) federated metadata sharing
9
9
  communities. We're actively looking for community input and development partners.
10
10
 
11
- ### [Installation](https://github.com/geoblacklight/geoblacklight/wiki/Installation)
11
+ ### Installation
12
12
 
13
- In order to create a new GeoBlacklight application from the template, run the following:
13
+ Use Ruby v3.2 and Rails v7 to bootstrap a new GeoBlacklight application using the template script:
14
14
 
15
+ ```bash
16
+ DISABLE_SPRING=1 rails new app-name -m https://raw.githubusercontent.com/geoblacklight/geoblacklight/main/template.rb
15
17
  ```
16
- $ DISABLE_SPRING=1 rails new app-name -m https://raw.githubusercontent.com/geoblacklight/geoblacklight/main/template.rb
17
- ```
18
-
19
- To launch app:
18
+ Then run the `geoblacklight:server` rake task to run the application:
20
19
 
21
- ```
20
+ ```bash
22
21
  $ cd app-name
23
- $ rake geoblacklight:server
22
+ $ bundle exec rake geoblacklight:server
24
23
  ```
25
24
 
26
- Note that this method launches an application that does not have any fixture records to be examined. You may want to launch a test application that has fixture data loaded into a Solr core. If so, refer to the [development guide](https://github.com/geoblacklight/geoblacklight/wiki/Development). For further information on installing a blank app, see the [installation guide](https://github.com/geoblacklight/geoblacklight/wiki/Installation)
25
+ * Visit your GeoBlacklight application at: [http://localhost:3000](http://localhost:3000)
26
+ * Visit the Solr admin panel at: [http://localhost:8983/solr/#/blacklight-core](http://localhost:8983/solr/#/blacklight-core)
27
+
28
+ #### Index Example Data
29
+
30
+ Index the GeoBlacklight project's test fixtures via:
31
+
32
+ ```bash
33
+ $ bundle exec rake "geoblacklight:index:seed[:remote]"
34
+ ```
27
35
 
28
36
  ### Contributing
29
- Interested in contributing to GeoBlacklight? Please see our [contributing](CONTRIBUTING.md) guide.
30
37
 
31
- ### [Development](https://github.com/geoblacklight/geoblacklight/wiki/Development)
38
+ Interested in contributing to GeoBlacklight? Please see our [contributing](https://geoblacklight.org/docs/overview/contributing/) guide.
32
39
 
33
- See the [development guide](https://github.com/geoblacklight/geoblacklight/wiki/Development) on our wiki for more information about setting up your development environment.
40
+ ### Development
34
41
 
42
+ See the [Getting Started for Developers guide](https://geoblacklight.org/docs/installation/getting_started_developers/) for more information about setting up your development environment.
35
43
 
36
- Please see the full documentation hosted on our [Wiki](https://github.com/geoblacklight/geoblacklight/wiki)
44
+ For more information, please see the [GeoBlacklight Documentation](https://geoblacklight.org/docs/) site.
data/Rakefile CHANGED
@@ -1,130 +1,122 @@
1
- # encoding: UTF-8
2
1
  # frozen_string_literal: true
3
- require 'rails'
2
+
3
+ require "rails"
4
4
  begin
5
- require 'bundler/setup'
6
- require 'bundler/gem_tasks'
5
+ require "bundler/setup"
6
+ require "bundler/gem_tasks"
7
7
  rescue LoadError
8
- puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
8
+ puts "You must `gem install bundler` and `bundle install` to run rake tasks"
9
9
  end
10
10
 
11
- require 'solr_wrapper'
12
- require 'solr_wrapper/rake_task'
13
- require 'engine_cart/rake_task'
14
- require 'rspec/core/rake_task'
15
- require 'rubocop/rake_task'
16
- require 'solr_wrapper/rake_task'
17
-
18
- desc 'Run RuboCop style checker'
19
- RuboCop::RakeTask.new(:rubocop) do |task|
20
- task.requires << 'rubocop-rspec'
21
- task.fail_on_error = true
22
- end
11
+ require "solr_wrapper"
12
+ require "solr_wrapper/rake_task"
13
+ require "engine_cart/rake_task"
14
+ require "rspec/core/rake_task"
23
15
 
24
16
  task(:spec).clear
25
17
  RSpec::Core::RakeTask.new(:spec) do |t|
26
18
  t.verbose = false
27
19
  end
28
20
 
29
- desc 'Run JavaScript unit tests'
21
+ desc "Run JavaScript unit tests"
30
22
  task :javascript_tests do
31
- system '/bin/bash -c yarn test'
23
+ system "/bin/bash -c yarn test"
32
24
  end
33
25
 
34
- desc 'Run test suite'
35
- task ci: ['geoblacklight:generate'] do
26
+ desc "Run test suite"
27
+ task ci: ["geoblacklight:generate"] do
36
28
  within_test_app do
37
- system 'RAILS_ENV=test rake geoblacklight:index:seed'
29
+ system "RAILS_ENV=test rake geoblacklight:index:seed"
38
30
  end
39
31
 
40
32
  # Run RSpec tests with Coverage
41
- Rake::Task['geoblacklight:coverage'].invoke
33
+ Rake::Task["geoblacklight:coverage"].invoke
42
34
 
43
35
  # Run JavaScript tests
44
- Rake::Task['javascript_tests'].invoke
36
+ Rake::Task["javascript_tests"].invoke
45
37
  end
46
38
 
47
39
  namespace :geoblacklight do
48
- desc 'Run tests with coverage'
40
+ desc "Run tests with coverage"
49
41
  task :coverage do
50
- ENV['COVERAGE'] = 'true'
51
- Rake::Task['spec'].invoke
42
+ ENV["COVERAGE"] = "true"
43
+ Rake::Task["spec"].invoke
52
44
  end
53
45
 
54
- desc 'Create the test rails app'
55
- task generate: ['engine_cart:generate'] do
46
+ desc "Create the test rails app"
47
+ task generate: ["engine_cart:generate"] do
56
48
  # Intentionally Empty Block
57
49
  end
58
50
 
59
51
  namespace :internal do
60
- task seed: ['engine_cart:generate'] do
52
+ task seed: ["engine_cart:generate"] do
61
53
  within_test_app do
62
- system 'bundle exec rake geoblacklight:index:seed'
63
- system 'bundle exec rake geoblacklight:downloads:mkdir'
54
+ system "bundle exec rake geoblacklight:index:seed"
55
+ system "bundle exec rake geoblacklight:downloads:mkdir"
64
56
  end
65
57
  end
66
58
  end
67
59
 
68
- desc 'Run Solr and GeoBlacklight for interactive development'
60
+ desc "Run Solr and GeoBlacklight for interactive development"
69
61
  task :server, [:rails_server_args] do |_t, args|
70
62
  if File.exist? EngineCart.destination
71
63
  within_test_app do
72
- system 'bundle update'
64
+ system "bundle update"
73
65
  end
74
66
  else
75
- Rake::Task['engine_cart:generate'].invoke
67
+ Rake::Task["engine_cart:generate"].invoke
76
68
  end
77
69
 
78
- SolrWrapper.wrap(port: '8983') do |solr|
79
- solr.with_collection(name: 'blacklight-core', dir: File.join(File.expand_path('.', File.dirname(__FILE__)), 'solr', 'conf')) do
80
- Rake::Task['geoblacklight:internal:seed'].invoke
70
+ SolrWrapper.wrap(port: "8983") do |solr|
71
+ solr.with_collection(name: "blacklight-core", dir: File.join(File.expand_path(".", File.dirname(__FILE__)), "solr", "conf")) do
72
+ Rake::Task["geoblacklight:internal:seed"].invoke
81
73
 
82
74
  within_test_app do
83
75
  puts "\nSolr server running: http://localhost:#{solr.port}/solr/#/blacklight-core"
84
76
  puts "\n^C to stop"
85
- puts ' '
77
+ puts " "
86
78
  begin
87
79
  system "bundle exec rails s #{args[:rails_server_args]}"
88
80
  rescue Interrupt
89
- puts 'Shutting down...'
81
+ puts "Shutting down..."
90
82
  end
91
83
  end
92
84
  end
93
85
  end
94
86
  end
95
87
 
96
- desc 'Run Solr and seed with sample data'
88
+ desc "Run Solr and seed with sample data"
97
89
  task :solr do
98
90
  if File.exist? EngineCart.destination
99
91
  within_test_app do
100
- system 'bundle update'
92
+ system "bundle update"
101
93
  end
102
94
  else
103
- Rake::Task['engine_cart:generate'].invoke
95
+ Rake::Task["engine_cart:generate"].invoke
104
96
  end
105
97
 
106
- SolrWrapper.wrap(port: '8983') do |solr|
107
- solr.with_collection(name: 'blacklight-core', dir: File.join(File.expand_path('.', File.dirname(__FILE__)), 'solr', 'conf')) do
108
- Rake::Task['geoblacklight:internal:seed'].invoke
98
+ SolrWrapper.wrap(port: "8983") do |solr|
99
+ solr.with_collection(name: "blacklight-core", dir: File.join(File.expand_path(".", File.dirname(__FILE__)), "solr", "conf")) do
100
+ Rake::Task["geoblacklight:internal:seed"].invoke
109
101
 
110
102
  within_test_app do
111
103
  puts "\nSolr server running: http://localhost:#{solr.port}/solr/#/blacklight-core"
112
104
  puts "\n^C to stop"
113
- puts ' '
105
+ puts " "
114
106
  begin
115
107
  sleep
116
108
  rescue Interrupt
117
- puts 'Shutting down...'
109
+ puts "Shutting down..."
118
110
  end
119
111
  end
120
112
  end
121
113
  end
122
114
  end
123
115
 
124
- desc 'Stdout output asset paths'
116
+ desc "Stdout output asset paths"
125
117
  task :asset_paths do
126
118
  within_test_app do
127
- system 'bundle exec rake geoblacklight:application_asset_paths'
119
+ system "bundle exec rake geoblacklight:application_asset_paths"
128
120
  end
129
121
  end
130
122
  end
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 27.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 201 141.2" style="enable-background:new 0 0 201 141.2;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill-rule:evenodd;clip-rule:evenodd;fill:#6c757d;}
7
+ .st1{fill-rule:evenodd;clip-rule:evenodd;stroke:#6c757d;stroke-width:0.1;fill:#6c757d;}
8
+ .st2{fill:#6c757d;}
9
+ </style>
10
+ <path class="st0" d="M115.7,69.9h21.1l2.6-29.6c0.2-2.8,0.4-5.6,0.6-8.4h0.7c0.2,2.9,0.7,5.7,1.4,8.6l7.8,29.3h12.7l8.7-31
11
+ c0.6-2.2,1-4.6,1.4-6.9h0.4L176,70h21.1l-9.9-69.3H165l-6.8,27.2c-0.7,2.9-1.1,6.2-1.5,9.2h-0.6l-8.3-36.4h-22.5L115.7,69.9z"/>
12
+ <path class="st1" d="M197.1,98.5c-5-1.7-11-2.7-17.5-2.7c-23.3,0-37.2,15.4-65.7,13.3c-1.8,0-3.3-1.5-3.3-3.3c0-0.3,0-0.6,0.1-0.9
13
+ l-1.1,7.5c-0.1,0.3-0.1,0.6-0.1,0.9c0,1.8,1.5,3.3,3.3,3.3c28.5,2.1,43.4-13.3,66.8-13.3c6.5,0,12.5,1,17.5,2.7v20.8
14
+ c-5-1.7-11-2.7-17.5-2.7c-23.3,0-39.3,15.2-67.8,13.1c-2.6,0-4.8-2.1-4.8-4.8c0-0.3,0-0.6,0.1-0.8l1.9-13.1L5,130.2v-21.1l106.5-7.7
15
+ l0.8-5.7L5,99.9V78.8h104c2.6,0,4.7,2.1,4.7,4.8l-0.1,0.8c-0.1,0.3-0.1,0.6-0.1,0.9c0,1.8,1.5,3.3,3.3,3.3
16
+ c28.5,2.1,39.4-13.1,62.8-13.1c6.5,0,12.5,1,17.5,2.7L197.1,98.5L197.1,98.5z"/>
17
+ <path class="st2" d="M78.2,0.7C78.9,0.7,79,1,79,1.6v3.3c0,0.3-0.1,0.6-0.1,0.7c-0.1,0.1-2.2,0.2-2.4,0.2c-1.9,0.1-4,0.8-4,3.7
18
+ c0,1.6,0.3,2.8,1.6,8l8.3,34.8c5-19,10.9-44,13-51.3c0.3-0.3,0.4-0.3,0.7-0.3c1.9,0,2.7-0.2,2.9,0.4l15,54.8c0,0-1.4,9.8-1.9,13.2
19
+ c-0.1,0.8-0.4,0.8-1,0.8h-4.4c-0.6,0-0.7-0.2-0.9-0.9c-1.6-7.7-2.2-10.4-4.7-19.4c-2.6-9.5-5-20.5-6.8-28.8
20
+ c-2.4,10.3-2.9,12.6-8.3,33.5c-1.9,7.2-2.4,9.5-3.7,14.9c-0.2,0.6-0.3,0.7-0.9,0.7H76c-0.5,0-0.6-0.3-0.7-1
21
+ c-1.5-6.1-12.6-49.3-12.9-50.6C60.9,12.4,60,6.6,56.6,6.6c-2,0-2.4,2.7-2.4,6.4v28.1c-0.1,6.5-0.1,16.1-6.3,23.5
22
+ c-1.7,2.1-7.1,7.7-18,7.7C25,72.4,18.7,71,14,66.1c-5.9-6.2-6.2-13.9-6.3-20.9V14.6c0-7-0.7-9-6.2-9C1.1,5.6,1.1,5.5,1,4.9V1.6
23
+ c0-0.7,0-1.1,0.8-1.1c1.8,0,19.2,0.1,23.5,0c0.2,0,0.5,0.1,0.5,0.7v3.7c-0.1,0.7-0.2,0.7-1.1,0.7c-6.1,0-5.8,2.5-5.8,9.7v22.1
24
+ l0.1,7.9c0.2,4,0.5,7.7,2.2,11.7c1.2,2.7,4.9,8.4,12.2,8.4c4,0,7.9-1.7,10.8-5.1c4.3-5.1,4.9-12,5-19.5V14.3c0-6.9-0.6-8.6-7.5-9
25
+ c-0.5,0-0.6-0.1-0.6-0.6V1.4c0-0.6,0-0.7,0.5-0.7C41.8,0.7,77.2,0.7,78.2,0.7z"/>
26
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34 32">
2
+ <path fill="#6c757d" d="M 17.03125 3.980469 L 23.546875 3.980469 L 23.546875 6.632812 L 20.839844 6.632812 L 27.957031 25.300781 L 30.058594 25.300781 L 30.058594 28.046875 L 21.242188 28.046875 L 21.242188 25.375 L 18.765625 25.375 L 18.765625 30.613281 L 32.683594 30.613281 L 32.683594 22.800781 L 29.558594 22.808594 L 24.546875 9.210938 L 26.121094 9.210938 L 26.121094 1.402344 L 7.941406 1.402344 L 7.941406 9.210938 L 9.515625 9.210938 L 4.503906 22.789062 L 1.378906 22.800781 L 1.378906 30.613281 L 15.300781 30.613281 L 15.300781 25.375 L 12.824219 25.375 L 12.824219 28.046875 L 4.003906 28.046875 L 4.003906 25.300781 L 6.109375 25.300781 L 13.222656 6.632812 L 10.515625 6.632812 L 10.515625 3.980469 Z M 17.03125 3.980469"/>
3
+ <path fill="#6c757d" d="M 17.027344 4.003906 L 24.25 23.074219 C 24.25 23.074219 25.175781 25.394531 26.679688 25.394531 L 21.417969 25.394531 C 21.417969 25.394531 21.683594 25.433594 21.945312 24.988281 C 22.097656 24.734375 21.96875 24.351562 21.96875 24.351562 L 20.34375 20.09375 L 13.722656 20.09375 L 12.09375 24.351562 C 12.09375 24.351562 11.96875 24.734375 12.117188 24.988281 C 12.378906 25.433594 12.644531 25.394531 12.644531 25.394531 L 7.382812 25.394531 C 8.886719 25.394531 9.8125 23.074219 9.8125 23.074219 L 17.027344 4.003906 M 17.019531 18.070312 L 19.566406 18.070312 L 17.070312 11.382812 L 14.488281 18.070312 Z M 17.019531 18.070312"/>
4
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="#6c757d" d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336h24V272H216c-13.3 0-24-10.7-24-24s10.7-24 24-24h48c13.3 0 24 10.7 24 24v88h8c13.3 0 24 10.7 24 24s-10.7 24-24 24H216c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path fill="#6c757d" d="M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z"/></svg>