geoblacklight 4.0.0.pre.rc2 → 4.0.0.pre.rc3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +5 -0
- data/.rubocop.yml +6 -0
- data/.solr_wrapper +1 -1
- data/app/controllers/wms_controller.rb +1 -1
- data/config/locales/geoblacklight.en.yml +1 -0
- data/geoblacklight.gemspec +1 -1
- data/lib/generators/geoblacklight/assets_generator.rb +1 -1
- data/lib/generators/geoblacklight/install_generator.rb +17 -0
- data/lib/generators/geoblacklight/templates/settings.yml +19 -0
- data/lib/geoblacklight/download.rb +1 -1
- data/lib/geoblacklight/engine.rb +4 -2
- data/lib/geoblacklight/metadata_transformer/base.rb +1 -1
- data/lib/geoblacklight/version.rb +1 -1
- data/spec/controllers/catalog_controller_spec.rb +7 -7
- data/spec/controllers/download_controller_spec.rb +4 -4
- data/spec/controllers/relation_controller_spec.rb +1 -1
- data/spec/controllers/wms_controller_spec.rb +1 -3
- data/spec/helpers/geoblacklight_helper_spec.rb +4 -4
- data/spec/views/catalog/_results_pagination.html.erb_spec.rb +1 -1
- data/spec/views/catalog/_show_downloads.html.erb_spec.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c79db293440e20eec134b810891862224cc2ffd664c0e0b1899235bd6c577d52
|
4
|
+
data.tar.gz: 20fd4af3b5cb75b5902370b464da4d50f0afdb081d143e566275fd6ec7f6ece6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 814e2426bdd9024a0d68b4750f2a9b02ac45e8bdf52f8a0c1d54004ae1f3140bce2b93223982ebfc19e960561c6afaaef939f8c7909d91949f15cb1151d34a33
|
7
|
+
data.tar.gz: 72113af4255d38766e2916ddeac83796daaf3f8079e6eeac631603e9768fb38fc213a12460b0151a0bf9943da33fa4bee9e4b902f0b43e58b299aa1dc19b2d10
|
data/.github/workflows/ruby.yml
CHANGED
@@ -33,6 +33,11 @@ jobs:
|
|
33
33
|
rails_version: 6.1
|
34
34
|
bundler_version: 2.1.1
|
35
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
|
+
|
36
41
|
name: test ruby ${{ matrix.ruby_version }} / rails ${{ matrix.rails_version }} / faraday ${{ matrix.faraday_version }}
|
37
42
|
steps:
|
38
43
|
- uses: actions/checkout@v2
|
data/.rubocop.yml
CHANGED
@@ -70,6 +70,11 @@ RSpec/AnyInstance:
|
|
70
70
|
- 'spec/models/concerns/geoblacklight/solr_document/finder_spec.rb'
|
71
71
|
- 'spec/features/download_layer_spec.rb'
|
72
72
|
|
73
|
+
RSpec/Capybara/SpecificMatcher:
|
74
|
+
Exclude:
|
75
|
+
- spec/components/geoblacklight/*
|
76
|
+
- spec/features/*
|
77
|
+
|
73
78
|
RSpec/DescribeClass:
|
74
79
|
Exclude:
|
75
80
|
- spec/tasks/*
|
@@ -85,6 +90,7 @@ RSpec/VerifiedDoubles:
|
|
85
90
|
Exclude:
|
86
91
|
- 'spec/lib/geoblacklight/download/hgl_download_spec.rb'
|
87
92
|
- 'spec/lib/geoblacklight/document_presenter_spec.rb'
|
93
|
+
- 'spec/lib/geoblacklight/references_spec.rb'
|
88
94
|
|
89
95
|
# TODO: Investigate use of OpenStruct in specs
|
90
96
|
Style/OpenStructUse:
|
data/.solr_wrapper
CHANGED
data/geoblacklight.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
spec.required_rubygems_version = '>= 2.5.2'
|
21
21
|
|
22
|
-
spec.add_dependency 'rails', '>= 6.1', '< 7'
|
22
|
+
spec.add_dependency 'rails', '>= 6.1', '< 7.1'
|
23
23
|
spec.add_dependency 'blacklight', '~> 7.12'
|
24
24
|
spec.add_dependency 'config'
|
25
25
|
spec.add_dependency 'faraday', '>= 1.0'
|
@@ -17,7 +17,7 @@ module Geoblacklight
|
|
17
17
|
def add_javascript
|
18
18
|
copy_file 'assets/geoblacklight.js', 'app/assets/javascripts/geoblacklight.js'
|
19
19
|
|
20
|
-
if Rails.version.to_i
|
20
|
+
if Rails.version.to_i >= 6
|
21
21
|
append_to_file 'app/assets/javascripts/application.js',
|
22
22
|
"\n// Required by GeoBlacklight\n//= require geoblacklight"
|
23
23
|
end
|
@@ -7,6 +7,23 @@ module Geoblacklight
|
|
7
7
|
|
8
8
|
desc 'Install Geoblacklight'
|
9
9
|
|
10
|
+
def allow_geoblacklight_params
|
11
|
+
gbl_params = <<-"PARAMS"
|
12
|
+
before_action :allow_geoblacklight_params
|
13
|
+
|
14
|
+
def allow_geoblacklight_params
|
15
|
+
# Blacklight::Parameters will pass these to params.permit
|
16
|
+
blacklight_config.search_state_fields.append(Settings.GBL_PARAMS)
|
17
|
+
end
|
18
|
+
PARAMS
|
19
|
+
|
20
|
+
inject_into_file 'app/controllers/application_controller.rb', gbl_params, before: /^end/
|
21
|
+
end
|
22
|
+
|
23
|
+
def raise_unpermitted_params
|
24
|
+
inject_into_file 'config/environments/test.rb', "config.action_controller.action_on_unpermitted_parameters = :raise\n", before: /^end/
|
25
|
+
end
|
26
|
+
|
10
27
|
def mount_geoblacklight_engine
|
11
28
|
inject_into_file 'config/routes.rb', "mount Geoblacklight::Engine => 'geoblacklight'\n", before: /^end/
|
12
29
|
end
|
@@ -22,6 +22,25 @@ OVERLAP_RATIO_BOOST: '2'
|
|
22
22
|
HOMEPAGE_MAP_GEOM: null
|
23
23
|
# HOMEPAGE_MAP_GEOM: '{"type":"Polygon","coordinates":[[[-73.58,42.93],[-73.58,41.20],[-69.90,41.20],[-69.90,42.93]]]}'
|
24
24
|
|
25
|
+
# Non-search-field GeoBlacklight application permitted params
|
26
|
+
GBL_PARAMS:
|
27
|
+
- :bbox
|
28
|
+
- :email
|
29
|
+
- :file
|
30
|
+
- :format
|
31
|
+
- :id
|
32
|
+
- :logo
|
33
|
+
- :provider
|
34
|
+
- :type
|
35
|
+
- :BBOX
|
36
|
+
- :HEIGHT
|
37
|
+
- :LAYERS
|
38
|
+
- :QUERY_LAYERS
|
39
|
+
- :URL
|
40
|
+
- :WIDTH
|
41
|
+
- :X
|
42
|
+
- :Y
|
43
|
+
|
25
44
|
# Solr field mappings
|
26
45
|
FIELDS:
|
27
46
|
:ACCESS_RIGHTS: 'dct_accessRights_s'
|
@@ -48,7 +48,7 @@ module Geoblacklight
|
|
48
48
|
File.rename("#{file_path_and_name}.tmp", file_path_and_name)
|
49
49
|
file_name
|
50
50
|
rescue Geoblacklight::Exceptions::WrongDownloadFormat => error
|
51
|
-
Geoblacklight.logger.error "#{error} expected #{@options[:content_type]} "\
|
51
|
+
Geoblacklight.logger.error "#{error} expected #{@options[:content_type]} " \
|
52
52
|
"received #{download.headers['content-type']}"
|
53
53
|
File.delete("#{file_path_and_name}.tmp")
|
54
54
|
raise Geoblacklight::Exceptions::ExternalDownloadFailed, message: 'Wrong download type'
|
data/lib/geoblacklight/engine.rb
CHANGED
@@ -13,8 +13,10 @@ module Geoblacklight
|
|
13
13
|
# GeoblacklightHelper is needed by all helpers, so we inject it
|
14
14
|
# into action view base here.
|
15
15
|
initializer 'geoblacklight.helpers' do
|
16
|
-
|
17
|
-
|
16
|
+
config.after_initialize do
|
17
|
+
ActionView::Base.send :include, GeoblacklightHelper
|
18
|
+
ActionView::Base.send :include, CartoHelper
|
19
|
+
end
|
18
20
|
end
|
19
21
|
|
20
22
|
config.to_prepare do
|
@@ -31,7 +31,7 @@ module Geoblacklight
|
|
31
31
|
def cleaned_metadata
|
32
32
|
transformed_doc = Nokogiri::XML(@metadata.to_html)
|
33
33
|
if transformed_doc.xpath('//body').children.empty?
|
34
|
-
fail TransformError
|
34
|
+
fail TransformError, \
|
35
35
|
'Failed to extract the <body> child elements from the transformed metadata'
|
36
36
|
end
|
37
37
|
transformed_doc.xpath('//body').children
|
@@ -5,7 +5,7 @@ describe CatalogController, type: :controller do
|
|
5
5
|
describe '#web_services' do
|
6
6
|
it 'returns a document based off an id' do
|
7
7
|
get :web_services, params: { id: 'mit-f6rqs4ucovjk2' }
|
8
|
-
expect(response
|
8
|
+
expect(response).to have_http_status :ok
|
9
9
|
expect(assigns(:documents)).not_to be_nil
|
10
10
|
end
|
11
11
|
end
|
@@ -13,14 +13,14 @@ describe CatalogController, type: :controller do
|
|
13
13
|
describe '.default_solr_params' do
|
14
14
|
it 'sets the number of rows returned by Solr to 10 and does not filter the results' do
|
15
15
|
get :index
|
16
|
-
expect(response
|
16
|
+
expect(response).to have_http_status :ok
|
17
17
|
expect(assigns(:response).docs).not_to be_empty
|
18
18
|
expect(assigns(:response).docs.length).to eq 10
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'sets the starting document index to 0' do
|
22
22
|
get :index
|
23
|
-
expect(response
|
23
|
+
expect(response).to have_http_status :ok
|
24
24
|
expect(assigns(:response).docs).not_to be_empty
|
25
25
|
expect(assigns(:response).docs.first.id).to eq 'stanford-cg357zz0321'
|
26
26
|
end
|
@@ -35,7 +35,7 @@ describe CatalogController, type: :controller do
|
|
35
35
|
it 'sets the starting document index' do
|
36
36
|
blacklight_config.default_solr_params = { start: 2, 'q.alt' => '*:*' }
|
37
37
|
get :index
|
38
|
-
expect(response
|
38
|
+
expect(response).to have_http_status :ok
|
39
39
|
expect(assigns(:response).docs).not_to be_empty
|
40
40
|
expect(assigns(:response).docs.first.id).to eq 'mit-001145244'
|
41
41
|
end
|
@@ -43,7 +43,7 @@ describe CatalogController, type: :controller do
|
|
43
43
|
it 'filters using a default DisMax query when no query is provided by the client' do
|
44
44
|
blacklight_config.default_solr_params = { start: 10, 'q.alt' => '{!dismax}id:nyu' }
|
45
45
|
get :index
|
46
|
-
expect(response
|
46
|
+
expect(response).to have_http_status :ok
|
47
47
|
expect(assigns(:response).docs).to be_empty
|
48
48
|
end
|
49
49
|
end
|
@@ -58,7 +58,7 @@ describe CatalogController, type: :controller do
|
|
58
58
|
it 'alters the number of documents returned from Solr' do
|
59
59
|
blacklight_config.default_per_page = 20
|
60
60
|
get :index
|
61
|
-
expect(response
|
61
|
+
expect(response).to have_http_status :ok
|
62
62
|
expect(assigns(:response).docs).not_to be_empty
|
63
63
|
expect(assigns(:response).docs.length).to eq 20
|
64
64
|
end
|
@@ -68,7 +68,7 @@ describe CatalogController, type: :controller do
|
|
68
68
|
describe '#raw' do
|
69
69
|
it 'returns a JSON representation of a Solr Document' do
|
70
70
|
get :raw, params: { id: 'tufts-cambridgegrid100-04' }
|
71
|
-
expect(response
|
71
|
+
expect(response).to have_http_status :ok
|
72
72
|
expect(response.body).not_to be_empty
|
73
73
|
response_values = JSON.parse(response.body)
|
74
74
|
expect(response_values).to include 'gbl_mdVersion_s' => 'Aardvark'
|
@@ -6,7 +6,7 @@ describe DownloadController, type: :controller do
|
|
6
6
|
describe 'restricted file' do
|
7
7
|
it 'redirects to login for authentication' do
|
8
8
|
get :file, params: { id: 'stanford-cg357zz0321-shapefile', format: 'zip' }
|
9
|
-
expect(response
|
9
|
+
expect(response).to have_http_status :unauthorized
|
10
10
|
end
|
11
11
|
end
|
12
12
|
describe 'public file' do
|
@@ -21,7 +21,7 @@ describe DownloadController, type: :controller do
|
|
21
21
|
describe 'restricted file' do
|
22
22
|
it 'redirects to login for authentication' do
|
23
23
|
get :show, params: { id: 'stanford-cg357zz0321', format: 'json' }
|
24
|
-
expect(response
|
24
|
+
expect(response).to have_http_status :unauthorized
|
25
25
|
end
|
26
26
|
end
|
27
27
|
describe 'public file' do
|
@@ -34,7 +34,7 @@ describe DownloadController, type: :controller do
|
|
34
34
|
it 'initiates download creation' do
|
35
35
|
allow(shapefile_download).to receive(:get).and_return('success')
|
36
36
|
get :show, params: { id: 'mit-f6rqs4ucovjk2', type: 'shapefile' }
|
37
|
-
expect(response
|
37
|
+
expect(response).to have_http_status :ok
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
@@ -85,7 +85,7 @@ describe DownloadController, type: :controller do
|
|
85
85
|
allow(Geoblacklight::HglDownload).to receive(:new).and_return(hgl_download)
|
86
86
|
|
87
87
|
get :hgl, params: { id: 'harvard-g7064-s2-1834-k3', email: 'foo@example.com' }
|
88
|
-
expect(response
|
88
|
+
expect(response).to have_http_status :ok
|
89
89
|
end
|
90
90
|
|
91
91
|
it 'renders form' do
|
@@ -5,7 +5,7 @@ describe RelationController, type: :controller do
|
|
5
5
|
describe '#index' do
|
6
6
|
it 'returns a listing of related documents for a record' do
|
7
7
|
get :index, params: { id: 'nyu_2451_34502' }
|
8
|
-
expect(response
|
8
|
+
expect(response).to have_http_status :ok
|
9
9
|
expect(assigns(:relations)).not_to be_nil
|
10
10
|
end
|
11
11
|
end
|
@@ -5,7 +5,7 @@ describe WmsController, type: :controller do
|
|
5
5
|
let(:wms_layer) { instance_double(Geoblacklight::WmsLayer) }
|
6
6
|
let(:feature_info) { { values: ['fid', 'layer:example'] } }
|
7
7
|
let(:params) do
|
8
|
-
{ format
|
8
|
+
{ 'format' => 'json', 'URL' => 'http://www.example.com/', 'LAYERS' => 'layer:example',
|
9
9
|
'BBOX' => '-74, 40, -68, 43', 'WIDTH' => '500', 'HEIGHT' => '400',
|
10
10
|
'QUERY_LAYERS' => 'layer:example', 'X' => '277', 'Y' => '195' }
|
11
11
|
end
|
@@ -27,8 +27,6 @@ describe WmsController, type: :controller do
|
|
27
27
|
|
28
28
|
it 'returns only permitted params' do
|
29
29
|
get :handle, params: params
|
30
|
-
expect(wms_params.to_h).not_to eq(params)
|
31
|
-
params.delete(:format)
|
32
30
|
expect(wms_params.to_h).to eq(params)
|
33
31
|
end
|
34
32
|
end
|
@@ -139,8 +139,8 @@ describe GeoblacklightHelper, type: :helper do
|
|
139
139
|
context 'as a String' do
|
140
140
|
let(:document_attributes) do
|
141
141
|
{
|
142
|
-
value: 'This is a really long string that should get truncated when it gets rendered'\
|
143
|
-
'in the index view to give a brief description of the contents of a particular document'\
|
142
|
+
value: 'This is a really long string that should get truncated when it gets rendered' \
|
143
|
+
'in the index view to give a brief description of the contents of a particular document' \
|
144
144
|
'indexed into Solr'
|
145
145
|
}
|
146
146
|
end
|
@@ -154,8 +154,8 @@ describe GeoblacklightHelper, type: :helper do
|
|
154
154
|
context 'as an Array' do
|
155
155
|
let(:document_attributes) do
|
156
156
|
{
|
157
|
-
value: ['This is a really long string that should get truncated when it gets rendered'\
|
158
|
-
'in the index view to give a brief description of the contents of a particular document'\
|
157
|
+
value: ['This is a really long string that should get truncated when it gets rendered' \
|
158
|
+
'in the index view to give a brief description of the contents of a particular document' \
|
159
159
|
'indexed into Solr']
|
160
160
|
}
|
161
161
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
describe 'catalog/_results_pagination
|
4
|
+
describe 'catalog/_results_pagination', type: :view do
|
5
5
|
it 'will have a #pagination wrapping div' do
|
6
6
|
allow(view).to receive_messages(show_pagination?: false)
|
7
7
|
render
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
|
-
describe 'catalog/_show_downloads
|
4
|
+
describe 'catalog/_show_downloads', type: :view do
|
5
5
|
context 'document is downloadable' do
|
6
6
|
let(:document) { instance_double(SolrDocument) }
|
7
7
|
before do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geoblacklight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.0.pre.
|
4
|
+
version: 4.0.0.pre.rc3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Graves
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2022-
|
14
|
+
date: 2022-07-13 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rails
|
@@ -22,7 +22,7 @@ dependencies:
|
|
22
22
|
version: '6.1'
|
23
23
|
- - "<"
|
24
24
|
- !ruby/object:Gem::Version
|
25
|
-
version: '7'
|
25
|
+
version: '7.1'
|
26
26
|
type: :runtime
|
27
27
|
prerelease: false
|
28
28
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '6.1'
|
33
33
|
- - "<"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: '7'
|
35
|
+
version: '7.1'
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: blacklight
|
38
38
|
requirement: !ruby/object:Gem::Requirement
|