geo_combine 0.9.2 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +11 -0
- data/.github/workflows/ruby.yml +7 -7
- data/.gitignore +1 -0
- data/.rubocop.yml +2 -0
- data/.rubocop_todo.yml +1 -1
- data/Gemfile +2 -1
- data/README.md +127 -77
- data/geo_combine.gemspec +2 -2
- data/lib/.DS_Store +0 -0
- data/lib/geo_combine/bounding_box.rb +0 -4
- data/lib/geo_combine/ckan_metadata.rb +1 -1
- data/lib/geo_combine/esri_open_data.rb +1 -0
- data/lib/geo_combine/geoblacklight.rb +30 -9
- data/lib/geo_combine/harvester.rb +40 -24
- data/lib/geo_combine/indexer.rb +10 -2
- data/lib/geo_combine/ogp.rb +11 -10
- data/lib/geo_combine/version.rb +1 -1
- data/lib/tasks/geo_combine.rake +10 -4
- data/lib/xslt/isoAardvark.xsl +738 -0
- data/spec/features/fgdc2html_spec.rb +1 -0
- data/spec/features/iso2html_spec.rb +1 -0
- data/spec/fixtures/indexing/restricted_aardvark.json +34 -0
- data/spec/fixtures/indexing/restricted_geoblacklight.json +42 -0
- data/spec/lib/geo_combine/ckan_metadata_spec.rb +1 -0
- data/spec/lib/geo_combine/esri_open_data_spec.rb +1 -0
- data/spec/lib/geo_combine/fgdc_spec.rb +3 -2
- data/spec/lib/geo_combine/geoblacklight_spec.rb +21 -20
- data/spec/lib/geo_combine/harvester_spec.rb +79 -15
- data/spec/lib/geo_combine/iso19139_spec.rb +1 -0
- metadata +18 -14
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dc_publisher_s": "",
|
|
3
|
+
"dc_type_s": "Dataset",
|
|
4
|
+
"dct_title_s": "Property Lot, Arlington County, VA ",
|
|
5
|
+
"dct_description_sm": [
|
|
6
|
+
"This polygon represents property lot in Arlington County, VA"
|
|
7
|
+
],
|
|
8
|
+
"schema_provider_s": "GMU",
|
|
9
|
+
"gbl_resourceType_sm": [
|
|
10
|
+
"Polygon"
|
|
11
|
+
],
|
|
12
|
+
"dct_subject_sm": [
|
|
13
|
+
"Property"
|
|
14
|
+
],
|
|
15
|
+
"gbl_indexYear_im": [
|
|
16
|
+
1
|
|
17
|
+
],
|
|
18
|
+
"locn_geometry": "ENVELOPE(-77.1735, -77.0305, 38.9349, 38.8268)",
|
|
19
|
+
"dct_accessRights_s": "Restricted",
|
|
20
|
+
"dct_format_s": "Shapefile",
|
|
21
|
+
"gbl_wxsIdentifier_s": ":arlington_2004_lot_poly",
|
|
22
|
+
"id": "gmu-arlington-2004-lot-poly",
|
|
23
|
+
"dct_identifier_sm": [
|
|
24
|
+
"GMU.arlington_2004_lot_poly"
|
|
25
|
+
],
|
|
26
|
+
"gbl_mdVersion_s": "Aardvark",
|
|
27
|
+
"dct_temporal_sm": [
|
|
28
|
+
"0001-01-01 01:01:01+00:00"
|
|
29
|
+
],
|
|
30
|
+
"dct_spatial_sm": [
|
|
31
|
+
"virginia"
|
|
32
|
+
],
|
|
33
|
+
"dct_references_s": "{\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"http://localhost:8080/secure-geoserver/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"http://localhost:8080/secure-geoserver/wms\"}"
|
|
34
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dc_creator_sm": [
|
|
3
|
+
"United States. Defense Mapping Agency"
|
|
4
|
+
],
|
|
5
|
+
"dc_description_s": "This raster layer is an image of a 1:5,000,000 scale aeronautical chart sheet that projects to Lambert Conformal Conic. The National Geospatial-Intelligence Agency and its legacy organizations (Defense Mapping Agency, National Imagery and Mapping Agency) originally published the series, and all sheets are in English. East View Geospatial has completed digitization, georeferencing, and electronic archiving services. To see the map index for this chart series, refer to the Derived Data layer.",
|
|
6
|
+
"dc_format_s": "WorldImage TIFF",
|
|
7
|
+
"dc_identifier_s": "http://hdl.handle.net/2451/38709",
|
|
8
|
+
"dc_language_s": "English",
|
|
9
|
+
"dc_publisher_s": "East View Cartographic, Inc.",
|
|
10
|
+
"dc_rights_s": "Restricted",
|
|
11
|
+
"dc_subject_sm": [
|
|
12
|
+
"Aeronautical charts"
|
|
13
|
+
],
|
|
14
|
+
"dc_title_s": "Global Navigation and Planning Chart, Sheet 21 W ",
|
|
15
|
+
"dc_type_s": "Dataset",
|
|
16
|
+
"dct_isPartOf_sm": [
|
|
17
|
+
"EVG Open Data Package"
|
|
18
|
+
],
|
|
19
|
+
"dct_issued_s": "5/31/2016",
|
|
20
|
+
"dct_provenance_s": "NYU",
|
|
21
|
+
"dct_references_s": "{\"http://schema.org/url\":\"http://hdl.handle.net/2451/38709\",\"http://schema.org/downloadUrl\":\"https://archive.nyu.edu/retrieve/84050/nyu_2451_38709.zip\",\"http://www.opengis.net/def/serviceType/ogc/wfs\":\"https://maps-restricted.geo.nyu.edu/geoserver/sdr/wfs\",\"http://www.opengis.net/def/serviceType/ogc/wms\":\"https://maps-restricted.geo.nyu.edu/geoserver/sdr/wms\"}",
|
|
22
|
+
"dct_source_sm": [
|
|
23
|
+
"nyu-2451-38715"
|
|
24
|
+
],
|
|
25
|
+
"dct_spatial_sm": [
|
|
26
|
+
|
|
27
|
+
],
|
|
28
|
+
"dct_temporal_sm": [
|
|
29
|
+
"2016"
|
|
30
|
+
],
|
|
31
|
+
"geoblacklight_version": "1.0",
|
|
32
|
+
"layer_geom_type_s": "Raster",
|
|
33
|
+
"layer_id_s": "sdr:nyu_2451_38709",
|
|
34
|
+
"layer_modified_dt": "2018-01-16T15:11:26Z",
|
|
35
|
+
"layer_slug_s": "nyu-2451-38709",
|
|
36
|
+
"nyu_addl_dspace_s": "39708",
|
|
37
|
+
"nyu_addl_format_sm": [
|
|
38
|
+
"WorldImage TIFF"
|
|
39
|
+
],
|
|
40
|
+
"solr_geom": "ENVELOPE(-179.99999999999994, -177.98915207217718, -39.99974999999998, -75.0037465617225)",
|
|
41
|
+
"solr_year_i": 2016
|
|
42
|
+
}
|
|
@@ -4,6 +4,7 @@ require 'spec_helper'
|
|
|
4
4
|
|
|
5
5
|
RSpec.describe GeoCombine::Fgdc do
|
|
6
6
|
include XmlDocs
|
|
7
|
+
|
|
7
8
|
let(:fgdc_object) { described_class.new(tufts_fgdc) }
|
|
8
9
|
|
|
9
10
|
describe '#initialize' do
|
|
@@ -32,7 +33,7 @@ RSpec.describe GeoCombine::Fgdc do
|
|
|
32
33
|
end
|
|
33
34
|
|
|
34
35
|
it 'is not valid due to bad modification date but valid otherwise' do
|
|
35
|
-
expect { fgdc_geobl.
|
|
36
|
+
expect { fgdc_geobl.validate! }.to raise_error(JSON::Schema::ValidationError, /layer_modified_dt/)
|
|
36
37
|
fgdc_geobl.metadata.delete 'layer_modified_dt'
|
|
37
38
|
expect(fgdc_geobl).to be_valid
|
|
38
39
|
end
|
|
@@ -51,7 +52,7 @@ RSpec.describe GeoCombine::Fgdc do
|
|
|
51
52
|
end
|
|
52
53
|
|
|
53
54
|
it 'dc_description_s' do
|
|
54
|
-
expect(fgdc_geobl.metadata['dc_description_s']).to match(
|
|
55
|
+
expect(fgdc_geobl.metadata['dc_description_s']).to match('Ecuador created from')
|
|
55
56
|
end
|
|
56
57
|
|
|
57
58
|
it 'dc_rights_s' do
|
|
@@ -6,6 +6,7 @@ RSpec.describe GeoCombine::Geoblacklight do
|
|
|
6
6
|
include XmlDocs
|
|
7
7
|
include JsonDocs
|
|
8
8
|
include GeoCombine::Exceptions
|
|
9
|
+
|
|
9
10
|
let(:full_geobl) { described_class.new(full_geoblacklight) }
|
|
10
11
|
let(:enhanced_geobl) { described_class.new(basic_geoblacklight, 'layer_geom_type_s' => 'esriGeometryPolygon') }
|
|
11
12
|
let(:basic_geobl) { described_class.new(basic_geoblacklight) }
|
|
@@ -60,11 +61,17 @@ RSpec.describe GeoCombine::Geoblacklight do
|
|
|
60
61
|
it 'formats the geometry type field' do
|
|
61
62
|
expect(enhanced_geobl.metadata['layer_geom_type_s']).to eq 'Polygon'
|
|
62
63
|
end
|
|
64
|
+
|
|
65
|
+
it 'populates the geometry type field from the subject field if not set' do
|
|
66
|
+
enhanced_from_subject_geobl = described_class.new(basic_geoblacklight, 'dc_subject_sm' => ['polygon'])
|
|
67
|
+
enhanced_from_subject_geobl.enhance_metadata
|
|
68
|
+
expect(enhanced_from_subject_geobl.metadata['layer_geom_type_s']).to eq 'Polygon'
|
|
69
|
+
end
|
|
63
70
|
end
|
|
64
71
|
|
|
65
|
-
describe '#
|
|
72
|
+
describe '#validate!' do
|
|
66
73
|
it 'a valid geoblacklight-schema document should be valid' do
|
|
67
|
-
expect(full_geobl
|
|
74
|
+
expect(full_geobl).to be_valid
|
|
68
75
|
end
|
|
69
76
|
|
|
70
77
|
context 'must have required fields' do
|
|
@@ -78,7 +85,7 @@ RSpec.describe GeoCombine::Geoblacklight do
|
|
|
78
85
|
].each do |field|
|
|
79
86
|
it field do
|
|
80
87
|
full_geobl.metadata.delete field
|
|
81
|
-
expect { full_geobl.
|
|
88
|
+
expect { full_geobl.validate! }.to raise_error(JSON::Schema::ValidationError, /#{field}/)
|
|
82
89
|
end
|
|
83
90
|
end
|
|
84
91
|
end
|
|
@@ -104,7 +111,7 @@ RSpec.describe GeoCombine::Geoblacklight do
|
|
|
104
111
|
].each do |field|
|
|
105
112
|
it field do
|
|
106
113
|
full_geobl.metadata.delete field
|
|
107
|
-
expect { full_geobl.
|
|
114
|
+
expect { full_geobl.validate! }.not_to raise_error
|
|
108
115
|
end
|
|
109
116
|
end
|
|
110
117
|
end
|
|
@@ -119,31 +126,25 @@ RSpec.describe GeoCombine::Geoblacklight do
|
|
|
119
126
|
].each do |field|
|
|
120
127
|
it field do
|
|
121
128
|
full_geobl.metadata.delete field
|
|
122
|
-
expect { full_geobl.
|
|
129
|
+
expect { full_geobl.validate! }.not_to raise_error
|
|
123
130
|
end
|
|
124
131
|
end
|
|
125
132
|
end
|
|
126
133
|
|
|
127
134
|
it 'an invalid document' do
|
|
128
|
-
expect { basic_geobl.
|
|
135
|
+
expect { basic_geobl.validate! }.to raise_error JSON::Schema::ValidationError
|
|
129
136
|
end
|
|
130
137
|
|
|
131
138
|
it 'calls the dct_references_s validator' do
|
|
132
|
-
expect(enhanced_geobl).to receive(:
|
|
139
|
+
expect(enhanced_geobl).to receive(:validate_references!)
|
|
133
140
|
enhanced_geobl.valid?
|
|
134
141
|
end
|
|
135
|
-
|
|
136
|
-
it 'validates spatial bounding box' do
|
|
137
|
-
expect(JSON::Validator).to receive(:validate!).and_return true
|
|
138
|
-
expect { basic_geobl.valid? }
|
|
139
|
-
.to raise_error GeoCombine::Exceptions::InvalidGeometry
|
|
140
|
-
end
|
|
141
142
|
end
|
|
142
143
|
|
|
143
|
-
describe '#
|
|
144
|
+
describe '#validate_references!' do
|
|
144
145
|
context 'with valid document' do
|
|
145
146
|
it 'is valid' do
|
|
146
|
-
expect
|
|
147
|
+
expect { full_geobl.validate_references! }.not_to raise_error
|
|
147
148
|
end
|
|
148
149
|
end
|
|
149
150
|
|
|
@@ -173,22 +174,22 @@ RSpec.describe GeoCombine::Geoblacklight do
|
|
|
173
174
|
end
|
|
174
175
|
|
|
175
176
|
it 'unparseable json' do
|
|
176
|
-
expect { bad_ref.
|
|
177
|
+
expect { bad_ref.validate_references! }.to raise_error JSON::ParserError
|
|
177
178
|
end
|
|
178
179
|
|
|
179
180
|
it 'not a hash' do
|
|
180
|
-
expect { not_hash.
|
|
181
|
+
expect { not_hash.validate_references! }.to raise_error GeoCombine::Exceptions::InvalidDCTReferences
|
|
181
182
|
end
|
|
182
183
|
end
|
|
183
184
|
end
|
|
184
185
|
|
|
185
|
-
describe '
|
|
186
|
+
describe 'validate_spatial!' do
|
|
186
187
|
context 'when valid' do
|
|
187
|
-
it { expect { full_geobl.
|
|
188
|
+
it { expect { full_geobl.validate_spatial! }.not_to raise_error }
|
|
188
189
|
end
|
|
189
190
|
|
|
190
191
|
context 'when invalid' do
|
|
191
|
-
it { expect { basic_geobl.
|
|
192
|
+
it { expect { basic_geobl.validate_spatial! }.to raise_error GeoCombine::Exceptions::InvalidGeometry }
|
|
192
193
|
end
|
|
193
194
|
end
|
|
194
195
|
|
|
@@ -5,7 +5,7 @@ require 'geo_combine/harvester'
|
|
|
5
5
|
require 'spec_helper'
|
|
6
6
|
|
|
7
7
|
RSpec.describe GeoCombine::Harvester do
|
|
8
|
-
subject(:harvester) { described_class.new(ogm_path: 'spec/fixtures/indexing',
|
|
8
|
+
subject(:harvester) { described_class.new(ogm_path: 'spec/fixtures/indexing', logger: logger) }
|
|
9
9
|
|
|
10
10
|
let(:logger) { instance_double(Logger, warn: nil, info: nil, error: nil, debug: nil) }
|
|
11
11
|
let(:repo_name) { 'my-institution' }
|
|
@@ -14,11 +14,12 @@ RSpec.describe GeoCombine::Harvester do
|
|
|
14
14
|
let(:stub_repo) { instance_double(Git::Base) }
|
|
15
15
|
let(:stub_gh_api) do
|
|
16
16
|
[
|
|
17
|
-
{ name: repo_name, size: 100 },
|
|
18
|
-
{ name: 'another-institution', size: 100 },
|
|
19
|
-
{ name: '
|
|
20
|
-
{ name: '
|
|
21
|
-
{ name: 'empty', size: 0 }
|
|
17
|
+
{ name: repo_name, size: 100, custom_properties: { supported_schemas: ['Aardvark'] } },
|
|
18
|
+
{ name: 'another-institution', size: 100, custom_properties: { supported_schemas: ['Aardvark', '1.0'] } }, # multiple schemas
|
|
19
|
+
{ name: 'v1-institution', size: 300, custom_properties: { supported_schemas: ['1.0'] } }, # schema mismatch
|
|
20
|
+
{ name: 'outdated-institution', size: 100, custom_properties: { supported_schemas: ['Aardvark'] }, archived: true }, # archived
|
|
21
|
+
{ name: 'empty', size: 0, custom_properties: { supported_schemas: ['Aardvark'] } }, # no data
|
|
22
|
+
{ name: 'tool', size: 50 } # not a metadata repository
|
|
22
23
|
]
|
|
23
24
|
end
|
|
24
25
|
|
|
@@ -42,17 +43,51 @@ RSpec.describe GeoCombine::Harvester do
|
|
|
42
43
|
describe '#docs_to_index' do
|
|
43
44
|
it 'yields each JSON record with its path, skipping layers.JSON' do
|
|
44
45
|
expect { |b| harvester.docs_to_index(&b) }.to yield_successive_args(
|
|
45
|
-
[JSON.parse(File.read('spec/fixtures/indexing/
|
|
46
|
-
[JSON.parse(File.read('spec/fixtures/indexing/geoblacklight.json')), 'spec/fixtures/indexing/geoblacklight.json']
|
|
46
|
+
[JSON.parse(File.read('spec/fixtures/indexing/aardvark.json')), 'spec/fixtures/indexing/aardvark.json']
|
|
47
47
|
)
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
-
it '
|
|
51
|
-
harvester = described_class.new(ogm_path: 'spec/fixtures/indexing/', schema_version: '
|
|
50
|
+
it 'can yield JSON records for a different schema version' do
|
|
51
|
+
harvester = described_class.new(ogm_path: 'spec/fixtures/indexing/', schema_version: '1.0', logger:)
|
|
52
52
|
expect { |b| harvester.docs_to_index(&b) }.to yield_successive_args(
|
|
53
|
-
[JSON.parse(File.read('spec/fixtures/indexing/
|
|
53
|
+
[JSON.parse(File.read('spec/fixtures/indexing/basic_geoblacklight.json')), 'spec/fixtures/indexing/basic_geoblacklight.json'],
|
|
54
|
+
[JSON.parse(File.read('spec/fixtures/indexing/geoblacklight.json')), 'spec/fixtures/indexing/geoblacklight.json']
|
|
54
55
|
)
|
|
55
56
|
end
|
|
57
|
+
|
|
58
|
+
# Collect the titles of every record yielded, regardless of schema field
|
|
59
|
+
def yielded_titles(harvester)
|
|
60
|
+
harvester.docs_to_index.map { |record, _path| record['dct_title_s'] || record['dc_title_s'] }
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
context 'when skip_restricted is true (the default)' do
|
|
64
|
+
it 'skips records with restricted access rights' do
|
|
65
|
+
expect(yielded_titles(harvester)).not_to include('Property Lot, Arlington County, VA ')
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it 'skips gbl1 records with restricted access rights' do
|
|
69
|
+
harvester = described_class.new(ogm_path: 'spec/fixtures/indexing', schema_version: '1.0', logger:)
|
|
70
|
+
expect(yielded_titles(harvester)).not_to include('Global Navigation and Planning Chart, Sheet 21 W ')
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
context 'when skip_restricted is false' do
|
|
75
|
+
it 'yields records with restricted access rights' do
|
|
76
|
+
harvester = described_class.new(ogm_path: 'spec/fixtures/indexing', skip_restricted: false, logger:)
|
|
77
|
+
expect(yielded_titles(harvester)).to include('Property Lot, Arlington County, VA ')
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
it 'yields gbl1 records with restricted access rights' do
|
|
81
|
+
harvester = described_class.new(ogm_path: 'spec/fixtures/indexing', schema_version: '1.0', skip_restricted: false, logger:)
|
|
82
|
+
expect(yielded_titles(harvester)).to include('Global Navigation and Planning Chart, Sheet 21 W ')
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it 'can read from the OGM_SKIP_RESTRICTED environment variable' do
|
|
86
|
+
stub_const('ENV', ENV.to_h.merge('OGM_SKIP_RESTRICTED' => 'false'))
|
|
87
|
+
harvester = described_class.new(ogm_path: 'spec/fixtures/indexing', logger:)
|
|
88
|
+
expect(yielded_titles(harvester)).to include('Property Lot, Arlington County, VA ')
|
|
89
|
+
end
|
|
90
|
+
end
|
|
56
91
|
end
|
|
57
92
|
|
|
58
93
|
describe '#pull' do
|
|
@@ -79,15 +114,27 @@ RSpec.describe GeoCombine::Harvester do
|
|
|
79
114
|
expect(harvester.pull_all).to eq(%w[my-institution another-institution])
|
|
80
115
|
end
|
|
81
116
|
|
|
82
|
-
it 'skips repositories
|
|
117
|
+
it 'skips repositories with no schema declared' do
|
|
83
118
|
harvester.pull_all
|
|
84
|
-
expect(Git).not_to have_received(:open).with('https://github.com/OpenGeoMetadata/
|
|
119
|
+
expect(Git).not_to have_received(:open).with('https://github.com/OpenGeoMetadata/tool.git')
|
|
85
120
|
end
|
|
86
121
|
|
|
87
122
|
it 'skips archived repositories' do
|
|
88
123
|
harvester.pull_all
|
|
89
124
|
expect(Git).not_to have_received(:open).with('https://github.com/OpenGeoMetadata/outdated-institution.git')
|
|
90
125
|
end
|
|
126
|
+
|
|
127
|
+
it 'skips repositories with no data' do
|
|
128
|
+
harvester.pull_all
|
|
129
|
+
expect(Git).not_to have_received(:open).with('https://github.com/OpenGeoMetadata/empty.git')
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
it 'skips repositories that are on the skip list' do
|
|
133
|
+
stub_const('ENV', ENV.to_h.merge('OGM_SKIP_REPOS' => 'my-institution,another-institution'))
|
|
134
|
+
harvester.pull_all
|
|
135
|
+
expect(Git).not_to have_received(:open).with('https://github.com/OpenGeoMetadata/my-institution.git')
|
|
136
|
+
expect(Git).not_to have_received(:open).with('https://github.com/OpenGeoMetadata/another-institution.git')
|
|
137
|
+
end
|
|
91
138
|
end
|
|
92
139
|
|
|
93
140
|
describe '#clone' do
|
|
@@ -115,14 +162,31 @@ RSpec.describe GeoCombine::Harvester do
|
|
|
115
162
|
expect(Git).to have_received(:clone).exactly(2).times
|
|
116
163
|
end
|
|
117
164
|
|
|
118
|
-
it 'skips repositories
|
|
165
|
+
it 'skips repositories with no schema declared' do
|
|
166
|
+
harvester.clone_all
|
|
167
|
+
expect(Git).not_to have_received(:clone).with('https://github.com/OpenGeoMetadata/tool.git')
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
it 'skips archived repositories' do
|
|
119
171
|
harvester.clone_all
|
|
120
|
-
expect(Git).not_to have_received(:clone).with('https://github.com/OpenGeoMetadata/
|
|
172
|
+
expect(Git).not_to have_received(:clone).with('https://github.com/OpenGeoMetadata/outdated-institution.git')
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
it 'skips repositories with no data' do
|
|
176
|
+
harvester.clone_all
|
|
177
|
+
expect(Git).not_to have_received(:clone).with('https://github.com/OpenGeoMetadata/empty.git')
|
|
121
178
|
end
|
|
122
179
|
|
|
123
180
|
it 'returns the names of repositories cloned' do
|
|
124
181
|
expect(harvester.clone_all).to eq(%w[my-institution another-institution])
|
|
125
182
|
end
|
|
183
|
+
|
|
184
|
+
it 'skips repositories that are on the skip list' do
|
|
185
|
+
stub_const('ENV', ENV.to_h.merge('OGM_SKIP_REPOS' => 'my-institution,another-institution'))
|
|
186
|
+
harvester.pull_all
|
|
187
|
+
expect(Git).not_to have_received(:open).with('https://github.com/OpenGeoMetadata/my-institution.git')
|
|
188
|
+
expect(Git).not_to have_received(:open).with('https://github.com/OpenGeoMetadata/another-institution.git')
|
|
189
|
+
end
|
|
126
190
|
end
|
|
127
191
|
|
|
128
192
|
describe '#ogm_api_uri' do
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: geo_combine
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.11.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jack Reed
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 2026-07-16 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: activesupport
|
|
@@ -196,30 +195,30 @@ dependencies:
|
|
|
196
195
|
name: rubocop
|
|
197
196
|
requirement: !ruby/object:Gem::Requirement
|
|
198
197
|
requirements:
|
|
199
|
-
- - "
|
|
198
|
+
- - ">="
|
|
200
199
|
- !ruby/object:Gem::Version
|
|
201
|
-
version: '
|
|
200
|
+
version: '0'
|
|
202
201
|
type: :development
|
|
203
202
|
prerelease: false
|
|
204
203
|
version_requirements: !ruby/object:Gem::Requirement
|
|
205
204
|
requirements:
|
|
206
|
-
- - "
|
|
205
|
+
- - ">="
|
|
207
206
|
- !ruby/object:Gem::Version
|
|
208
|
-
version: '
|
|
207
|
+
version: '0'
|
|
209
208
|
- !ruby/object:Gem::Dependency
|
|
210
209
|
name: rubocop-rspec
|
|
211
210
|
requirement: !ruby/object:Gem::Requirement
|
|
212
211
|
requirements:
|
|
213
|
-
- - "
|
|
212
|
+
- - ">="
|
|
214
213
|
- !ruby/object:Gem::Version
|
|
215
|
-
version: '
|
|
214
|
+
version: '0'
|
|
216
215
|
type: :development
|
|
217
216
|
prerelease: false
|
|
218
217
|
version_requirements: !ruby/object:Gem::Requirement
|
|
219
218
|
requirements:
|
|
220
|
-
- - "
|
|
219
|
+
- - ">="
|
|
221
220
|
- !ruby/object:Gem::Version
|
|
222
|
-
version: '
|
|
221
|
+
version: '0'
|
|
223
222
|
- !ruby/object:Gem::Dependency
|
|
224
223
|
name: rubocop-rake
|
|
225
224
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -269,6 +268,7 @@ executables: []
|
|
|
269
268
|
extensions: []
|
|
270
269
|
extra_rdoc_files: []
|
|
271
270
|
files:
|
|
271
|
+
- ".github/dependabot.yml"
|
|
272
272
|
- ".github/workflows/ruby.yml"
|
|
273
273
|
- ".gitignore"
|
|
274
274
|
- ".rspec"
|
|
@@ -279,6 +279,7 @@ files:
|
|
|
279
279
|
- README.md
|
|
280
280
|
- Rakefile
|
|
281
281
|
- geo_combine.gemspec
|
|
282
|
+
- lib/.DS_Store
|
|
282
283
|
- lib/geo_combine.rb
|
|
283
284
|
- lib/geo_combine/bounding_box.rb
|
|
284
285
|
- lib/geo_combine/ckan_metadata.rb
|
|
@@ -304,6 +305,7 @@ files:
|
|
|
304
305
|
- lib/xslt/fgdc2html.xsl
|
|
305
306
|
- lib/xslt/iso2geoBL.xsl
|
|
306
307
|
- lib/xslt/iso2html.xsl
|
|
308
|
+
- lib/xslt/isoAardvark.xsl
|
|
307
309
|
- lib/xslt/utils/convert-enumerations.xsl
|
|
308
310
|
- lib/xslt/utils/convert-latlong.xsl
|
|
309
311
|
- lib/xslt/utils/decode-uri/base.css
|
|
@@ -338,6 +340,8 @@ files:
|
|
|
338
340
|
- spec/fixtures/indexing/basic_geoblacklight.json
|
|
339
341
|
- spec/fixtures/indexing/geoblacklight.json
|
|
340
342
|
- spec/fixtures/indexing/layers.json
|
|
343
|
+
- spec/fixtures/indexing/restricted_aardvark.json
|
|
344
|
+
- spec/fixtures/indexing/restricted_geoblacklight.json
|
|
341
345
|
- spec/fixtures/indexing/test.txt
|
|
342
346
|
- spec/fixtures/json_docs.rb
|
|
343
347
|
- spec/fixtures/xml_docs.rb
|
|
@@ -361,7 +365,6 @@ homepage: ''
|
|
|
361
365
|
licenses:
|
|
362
366
|
- Apache
|
|
363
367
|
metadata: {}
|
|
364
|
-
post_install_message:
|
|
365
368
|
rdoc_options: []
|
|
366
369
|
require_paths:
|
|
367
370
|
- lib
|
|
@@ -376,8 +379,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
376
379
|
- !ruby/object:Gem::Version
|
|
377
380
|
version: '0'
|
|
378
381
|
requirements: []
|
|
379
|
-
rubygems_version: 3.
|
|
380
|
-
signing_key:
|
|
382
|
+
rubygems_version: 3.6.2
|
|
381
383
|
specification_version: 4
|
|
382
384
|
summary: A Ruby toolkit for managing geospatial metadata
|
|
383
385
|
test_files:
|
|
@@ -402,6 +404,8 @@ test_files:
|
|
|
402
404
|
- spec/fixtures/indexing/basic_geoblacklight.json
|
|
403
405
|
- spec/fixtures/indexing/geoblacklight.json
|
|
404
406
|
- spec/fixtures/indexing/layers.json
|
|
407
|
+
- spec/fixtures/indexing/restricted_aardvark.json
|
|
408
|
+
- spec/fixtures/indexing/restricted_geoblacklight.json
|
|
405
409
|
- spec/fixtures/indexing/test.txt
|
|
406
410
|
- spec/fixtures/json_docs.rb
|
|
407
411
|
- spec/fixtures/xml_docs.rb
|