geo_concerns 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +9 -2
  3. data/README.md +13 -0
  4. data/app/controllers/concerns/geo_concerns/file_sets_controller_behavior.rb +15 -0
  5. data/app/controllers/concerns/geo_concerns/geoblacklight_controller_behavior.rb +29 -0
  6. data/app/models/concerns/geo_concerns/ability.rb +12 -0
  7. data/app/models/concerns/geo_concerns/file_set/derivatives.rb +6 -6
  8. data/app/models/concerns/geo_concerns/geo_file_format_behavior.rb +4 -4
  9. data/app/presenters/geo_concerns/raster_work_show_presenter.rb +1 -1
  10. data/app/processors/geo_concerns/processors/mapnik.rb +30 -0
  11. data/app/processors/geo_concerns/processors/vector/base.rb +2 -1
  12. data/app/processors/geo_concerns/processors/vector/info.rb +66 -0
  13. data/app/services/geo_concerns/authority_service.rb +29 -0
  14. data/app/services/geo_concerns/discovery.rb +4 -0
  15. data/app/services/geo_concerns/discovery/abstract_document.rb +36 -0
  16. data/app/services/geo_concerns/discovery/document_builder.rb +69 -0
  17. data/app/services/geo_concerns/discovery/document_builder/basic_metadata_builder.rb +69 -0
  18. data/app/services/geo_concerns/discovery/document_builder/composite_builder.rb +21 -0
  19. data/app/services/geo_concerns/discovery/document_builder/date_builder.rb +38 -0
  20. data/app/services/geo_concerns/discovery/document_builder/document_helper.rb +10 -0
  21. data/app/services/geo_concerns/discovery/document_builder/document_path.rb +82 -0
  22. data/app/services/geo_concerns/discovery/document_builder/layer_info_builder.rb +65 -0
  23. data/app/services/geo_concerns/discovery/document_builder/references_builder.rb +82 -0
  24. data/app/services/geo_concerns/discovery/document_builder/spatial_builder.rb +40 -0
  25. data/app/services/geo_concerns/discovery/geoblacklight_document.rb +122 -0
  26. data/app/services/geo_concerns/image_format_service.rb +6 -0
  27. data/app/services/geo_concerns/metadata_format_service.rb +6 -0
  28. data/app/services/geo_concerns/raster_format_service.rb +6 -0
  29. data/app/services/geo_concerns/vector_format_service.rb +6 -0
  30. data/app/views/curation_concerns/image_works/show.html.erb +1 -1
  31. data/app/views/curation_concerns/raster_works/show.html.erb +1 -1
  32. data/app/views/curation_concerns/vector_works/show.html.erb +1 -1
  33. data/app/views/geo_concerns/_representative_media.html.erb +5 -0
  34. data/app/views/{curation_concerns → geo_concerns}/file_sets/_form.html.erb +4 -4
  35. data/app/views/geo_concerns/file_sets/media_display/_geo.html.erb +16 -0
  36. data/app/views/geo_concerns/file_sets/new.html.erb +12 -0
  37. data/config/routes.rb +18 -0
  38. data/geo_concerns.gemspec +2 -0
  39. data/lib/generators/geo_concerns/install_generator.rb +34 -0
  40. data/lib/generators/geo_concerns/templates/config/authorities/image_formats.yml +2 -0
  41. data/lib/generators/geo_concerns/templates/config/authorities/raster_formats.yml +4 -0
  42. data/lib/generators/geo_concerns/templates/config/authorities/vector_formats.yml +2 -0
  43. data/lib/generators/geo_concerns/templates/config/discovery/geoblacklight_schema.json +168 -0
  44. data/lib/generators/geo_concerns/templates/config/mapnik.yml +24 -0
  45. data/lib/generators/geo_concerns/templates/controllers/curation_concerns/image_works_controller.rb +1 -0
  46. data/lib/generators/geo_concerns/templates/controllers/curation_concerns/raster_works_controller.rb +1 -0
  47. data/lib/generators/geo_concerns/templates/controllers/curation_concerns/vector_works_controller.rb +1 -0
  48. data/lib/geo_concerns/version.rb +1 -1
  49. data/spec/controllers/file_sets_controller_spec.rb +20 -0
  50. data/spec/controllers/vector_works_controller_spec.rb +33 -0
  51. data/spec/processors/geo_concerns/processors/mapnik_spec.rb +48 -0
  52. data/spec/processors/geo_concerns/processors/vector/base_spec.rb +1 -1
  53. data/spec/processors/geo_concerns/processors/vector/info_spec.rb +41 -0
  54. data/spec/services/geo_concerns/discovery/abstract_document_spec.rb +23 -0
  55. data/spec/services/geo_concerns/discovery/document_builder_spec.rb +186 -0
  56. data/spec/services/geo_concerns/discovery/geoblacklight_document_spec.rb +17 -0
  57. data/spec/services/raster_format_service_spec.rb +1 -1
  58. data/template.rb +2 -2
  59. metadata +70 -9
  60. data/app/services/authority_service.rb +0 -23
  61. data/app/services/image_format_service.rb +0 -4
  62. data/app/services/metadata_format_service.rb +0 -4
  63. data/app/services/raster_format_service.rb +0 -4
  64. data/app/services/vector_format_service.rb +0 -4
@@ -1,3 +1,3 @@
1
1
  module GeoConcerns
2
- VERSION = "0.0.4".freeze
2
+ VERSION = "0.0.5".freeze
3
3
  end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe CurationConcerns::FileSetsController, type: :controller do
4
+ let(:user) { FactoryGirl.create(:user) }
5
+
6
+ subject { described_class.new }
7
+
8
+ describe '#new' do
9
+ it 'renders a geo file set form if the parent is a geo work' do
10
+ allow(subject).to receive(:geo?).and_return(true)
11
+ expect(subject).to receive(:render).with('geo_concerns/file_sets/new')
12
+ subject.new
13
+ end
14
+ it 'only render a geo file set form if the parent is a geo work' do
15
+ allow(subject).to receive(:geo?).and_return(false)
16
+ expect(subject).not_to receive(:render)
17
+ subject.new
18
+ end
19
+ end
20
+ end
@@ -47,4 +47,37 @@ describe CurationConcerns::VectorWorksController, type: :controller do
47
47
  expect(described_class.new.show_presenter.name).to eq("GeoConcerns::VectorWorkShowPresenter")
48
48
  end
49
49
  end
50
+
51
+ describe '#geoblacklight' do
52
+ # Tell RSpec where to find the geoblacklight route.
53
+ routes { GeoConcerns::Engine.routes }
54
+ let(:builder) { double }
55
+ before do
56
+ sign_in user
57
+ allow(GeoConcerns::Discovery::DocumentBuilder).to receive(:new).and_return(builder)
58
+ end
59
+
60
+ context 'with a valid geoblacklight document' do
61
+ before do
62
+ allow(builder).to receive(:to_hash).and_return(id: 'test')
63
+ end
64
+
65
+ it 'renders the document' do
66
+ get :geoblacklight, id: vector_work.id, format: :json
67
+ expect(response).to be_success
68
+ end
69
+ end
70
+
71
+ context 'with an invalid geoblacklight document' do
72
+ before do
73
+ allow(builder).to receive(:to_hash).and_return(error: 'problem')
74
+ end
75
+
76
+ it 'returns an error message with a 404 status' do
77
+ get :geoblacklight, id: vector_work.id, format: :json
78
+ expect(response.body).to include('problem')
79
+ expect(response.status).to eq(404)
80
+ end
81
+ end
82
+ end
50
83
  end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe GeoConcerns::Processors::Mapnik do
4
+ before do
5
+ class TestProcessor
6
+ include GeoConcerns::Processors::Mapnik
7
+ end
8
+ end
9
+
10
+ after { Object.send(:remove_const, :TestProcessor) }
11
+
12
+ subject { TestProcessor.new }
13
+
14
+ let(:output_file) { 'output/geo.png' }
15
+ let(:file_name) { 'files' }
16
+ let(:options) { { output_size: '150 150' } }
17
+
18
+ describe '#mapnik_vector_thumbnail' do
19
+ let(:map) { double }
20
+ let(:info) { double }
21
+
22
+ before do
23
+ allow(GeoConcerns::Processors::Vector::Info).to receive(:new).and_return(info)
24
+ allow(SimpleMapnik::Map).to receive(:new).and_return(map)
25
+ end
26
+
27
+ it 'saves a vector thumbnail using simple_mapnik' do
28
+ expect(info).to receive(:name).and_return('test')
29
+ expect(map).to receive(:load_string)
30
+ expect(map).to receive(:zoom_all)
31
+ expect(map).to receive(:to_file).with(output_file)
32
+ subject.class.mapnik_vector_thumbnail(file_name, output_file, options)
33
+ end
34
+
35
+ describe '#mapnik_size' do
36
+ it 'returns an array of width and height' do
37
+ expect(subject.class.mapnik_size(options)).to eq([150, 150])
38
+ end
39
+ end
40
+
41
+ describe '#mapnik_config' do
42
+ it 'returns a mapnik config object' do
43
+ options[:name] = 'test'
44
+ expect(subject.class.mapnik_config(file_name, options)).to be_a(SimpleMapnik::Config)
45
+ end
46
+ end
47
+ end
48
+ end
@@ -28,7 +28,7 @@ describe GeoConcerns::Processors::Vector::Base do
28
28
 
29
29
  describe '#encode_queue' do
30
30
  it 'returns an array of command name symbols' do
31
- expect(subject.class.encode_queue).to include :rasterize
31
+ expect(subject.class.encode_queue).to include :mapnik_vector_thumbnail
32
32
  end
33
33
  end
34
34
 
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+ require 'open3'
3
+
4
+ describe GeoConcerns::Processors::Vector::Info do
5
+ let(:path) { 'test.tif' }
6
+ let(:info_doc) { read_test_data_fixture('ogrinfo.txt') }
7
+
8
+ subject { described_class.new(path) }
9
+
10
+ context 'when initializing a new info class' do
11
+ it 'shells out to ogrinfo and sets the doc variable to the output string' do
12
+ expect(Open3).to receive(:capture3).with("ogrinfo #{path}")
13
+ .and_return([info_doc, '', ''])
14
+ expect(subject.doc).to eq(info_doc)
15
+ end
16
+ end
17
+
18
+ context 'after intialization' do
19
+ before do
20
+ allow(subject).to receive(:doc).and_return(info_doc)
21
+ end
22
+
23
+ describe '#name' do
24
+ it 'returns with min and max values' do
25
+ expect(subject.name).to eq('tufts-cambridgegrid100-04')
26
+ end
27
+ end
28
+
29
+ describe '#driver' do
30
+ it 'returns with min and max values' do
31
+ expect(subject.driver).to eq('ESRI Shapefile')
32
+ end
33
+ end
34
+
35
+ describe '#geom' do
36
+ it 'returns raster size' do
37
+ expect(subject.geom).to eq('Polygon')
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe GeoConcerns::Discovery::AbstractDocument do
4
+ subject { described_class.new }
5
+
6
+ describe '#to_hash' do
7
+ it 'raises an error because the class should not be instantiated directly' do
8
+ expect { subject.to_hash(nil) }.to raise_error(/hash/)
9
+ end
10
+ end
11
+
12
+ describe '#to_json' do
13
+ it 'raises an error because the class should not be instantiated directly' do
14
+ expect { subject.to_json(nil) }.to raise_error(/json/)
15
+ end
16
+ end
17
+
18
+ describe '#to_xml' do
19
+ it 'raises an error because the class should not be instantiated directly' do
20
+ expect { subject.to_xml(nil) }.to raise_error(/xml/)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,186 @@
1
+ require 'spec_helper'
2
+
3
+ describe GeoConcerns::Discovery::DocumentBuilder do
4
+ subject { described_class.new(geo_concern_presenter, document_class) }
5
+
6
+ let(:geo_concern) { FactoryGirl.build(:public_vector_work, attributes) }
7
+ let(:geo_concern_presenter) { GeoConcerns::VectorWorkShowPresenter.new(SolrDocument.new(geo_concern.to_solr), nil) }
8
+ let(:document_class) { GeoConcerns::Discovery::GeoblacklightDocument.new }
9
+ let(:document) { JSON.parse(subject.to_json(nil)) }
10
+ let(:metadata__mime_type) { 'application/xml; schema=iso19139' }
11
+ let(:metadata_file) { FileSet.new(id: 'metadatafile', geo_mime_type: metadata__mime_type) }
12
+ let(:metadata_presenter) { CurationConcerns::FileSetPresenter.new(SolrDocument.new(metadata_file.to_solr), nil) }
13
+ let(:geo_file_mime_type) { 'application/zip; ogr-format="ESRI Shapefile"' }
14
+ let(:geo_file) { FileSet.new(id: 'geofile', geo_mime_type: geo_file_mime_type) }
15
+ let(:geo_file_presenter) { CurationConcerns::FileSetPresenter.new(SolrDocument.new(geo_file.to_solr), nil) }
16
+ let(:coverage) { GeoConcerns::Coverage.new(43.039, -69.856, 42.943, -71.032) }
17
+ let(:date_modified) { Time.now.utc }
18
+ let(:attributes) { { id: 'geo-work-1',
19
+ identifier: ['abcde'],
20
+ title: ['Geo Work'],
21
+ coverage: coverage.to_s,
22
+ description: ['This is a Geo Work'],
23
+ creator: ['Yosiwo George'],
24
+ publisher: ['National Geographic'],
25
+ date_modified: date_modified,
26
+ spatial: ['Micronesia'],
27
+ temporal: ['2011'],
28
+ subject: ['Human settlements'],
29
+ provenance: 'Pacific Islands University',
30
+ language: ['Esperanto'] }
31
+ }
32
+
33
+ describe 'vector work' do
34
+ before do
35
+ allow(geo_concern_presenter).to receive(:file_set_presenters).and_return([geo_file_presenter, metadata_presenter])
36
+ end
37
+
38
+ it 'has basic metadata' do
39
+ expect(document['uuid']).to eq('geo-work-1')
40
+ expect(document['dc_identifier_s']).to eq('abcde')
41
+ expect(document['dct_provenance_s']).to eq('Pacific Islands University')
42
+ expect(document['layer_slug_s']).to eq('pacific-islands-university-geo-work-1')
43
+ expect(document['dc_description_s']).to eq('This is a Geo Work')
44
+ expect(document['dc_rights_s']).to eq('Restricted')
45
+ expect(document['dc_creator_sm']).to eq(['Yosiwo George'])
46
+ expect(document['dc_subject_sm']).to eq(['Human settlements'])
47
+ expect(document['dct_spatial_sm']).to eq(['Micronesia'])
48
+ expect(document['dct_temporal_sm']).to eq(['2011'])
49
+ expect(document['dc_title_s']).to eq('Geo Work')
50
+ expect(document['dc_language_s']).to eq('Esperanto')
51
+ expect(document['dc_publisher_s']).to eq('National Geographic')
52
+ end
53
+
54
+ it 'has date field' do
55
+ expect(document['solr_year_i']).to eq(2011)
56
+ end
57
+
58
+ it 'has layer info fields' do
59
+ expect(document['layer_geom_type_s']).to eq('Mixed')
60
+ expect(document['dc_format_s']).to eq('Shapefile')
61
+ end
62
+
63
+ it 'has spatial fields' do
64
+ expect(document['georss_box_s']).to eq('42.943 -71.032 43.039 -69.856')
65
+ expect(document['solr_geom']).to eq('ENVELOPE(-71.032, -69.856, 43.039, 42.943)')
66
+ end
67
+
68
+ it 'has references' do
69
+ refs = JSON.parse(document['dct_references_s'])
70
+ expect(refs['http://schema.org/url']).to eq('http://localhost:3000/concern/vector_works/geo-work-1')
71
+ expect(refs['http://www.isotc211.org/schemas/2005/gmd/']).to eq('http://localhost:3000/downloads/metadatafile')
72
+ expect(refs['http://schema.org/downloadUrl']).to eq('http://localhost:3000/downloads/geofile')
73
+ expect(refs['http://schema.org/thumbnailUrl']).to eq('http://localhost:3000/downloads/geofile?file=thumbnail')
74
+ end
75
+ end
76
+
77
+ describe 'raster work' do
78
+ let(:geo_concern_presenter) { GeoConcerns::RasterWorkShowPresenter.new(SolrDocument.new(geo_concern.to_solr), nil) }
79
+
80
+ context 'with a GeoTIFF file and a FGDC metadata file' do
81
+ let(:geo_file_mime_type) { 'image/tiff; gdal-format=GTiff' }
82
+ let(:metadata__mime_type) { 'application/xml; schema=fgdc' }
83
+
84
+ before do
85
+ allow(geo_concern_presenter).to receive(:file_set_presenters).and_return([geo_file_presenter, metadata_presenter])
86
+ end
87
+
88
+ it 'has layer info fields' do
89
+ expect(document['layer_geom_type_s']).to eq('Raster')
90
+ expect(document['dc_format_s']).to eq('GeoTIFF')
91
+ end
92
+
93
+ it 'has references' do
94
+ refs = JSON.parse(document['dct_references_s'])
95
+ expect(refs['http://www.opengis.net/cat/csw/csdgm']).to eq('http://localhost:3000/downloads/metadatafile')
96
+ end
97
+ end
98
+
99
+ context 'with an ArcGRID file and a MODS metadata file' do
100
+ let(:geo_file_mime_type) { 'application/octet-stream; gdal-format=AIG' }
101
+ let(:metadata__mime_type) { 'application/mods+xml' }
102
+
103
+ before do
104
+ allow(geo_concern_presenter).to receive(:file_set_presenters).and_return([geo_file_presenter, metadata_presenter])
105
+ end
106
+
107
+ it 'has layer info fields' do
108
+ expect(document['dc_format_s']).to eq('ArcGRID')
109
+ end
110
+
111
+ it 'has references' do
112
+ refs = JSON.parse(document['dct_references_s'])
113
+ expect(refs['http://www.loc.gov/mods/v3']).to eq('http://localhost:3000/downloads/metadatafile')
114
+ end
115
+ end
116
+ end
117
+
118
+ describe 'image work' do
119
+ let(:geo_concern_presenter) { GeoConcerns::ImageWorkShowPresenter.new(SolrDocument.new(geo_concern.to_solr), nil) }
120
+
121
+ context 'with a tiff file and no decription' do
122
+ let(:geo_file_mime_type) { 'image/tiff' }
123
+
124
+ before do
125
+ attributes.delete(:description)
126
+ allow(geo_concern_presenter).to receive(:file_set_presenters).and_return([geo_file_presenter, metadata_presenter])
127
+ end
128
+
129
+ it 'uses a default description' do
130
+ expect(document['dc_description_s']).to eq('A vector work object.')
131
+ end
132
+
133
+ it 'has layer info fields' do
134
+ expect(document['layer_geom_type_s']).to eq('Scanned Map')
135
+ expect(document['dc_format_s']).to eq('TIFF')
136
+ end
137
+ end
138
+ end
139
+
140
+ context 'with a missing required metadata field' do
141
+ before do
142
+ attributes.delete(:title)
143
+ allow(geo_concern_presenter).to receive(:file_set_presenters).and_return([geo_file_presenter, metadata_presenter])
144
+ end
145
+
146
+ it 'returns an error document' do
147
+ expect(document['error'][0]).to include('dc_title_s')
148
+ end
149
+ end
150
+
151
+ context 'with a missing non-required metadata field' do
152
+ before do
153
+ attributes.delete(:language)
154
+ allow(geo_concern_presenter).to receive(:file_set_presenters).and_return([geo_file_presenter, metadata_presenter])
155
+ end
156
+
157
+ it 'returns a document without the field' do
158
+ expect(document['dc_language_s']).to be_nil
159
+ end
160
+ end
161
+
162
+ context 'with a public visibility' do
163
+ before do
164
+ pulic = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC
165
+ allow(geo_concern_presenter).to receive(:file_set_presenters).and_return([geo_file_presenter, metadata_presenter])
166
+ allow(geo_concern_presenter.solr_document).to receive(:visibility).and_return(pulic)
167
+ end
168
+
169
+ it 'return a public access' do
170
+ expect(document['dc_rights_s']).to eq('Public')
171
+ end
172
+ end
173
+
174
+ context 'with ssl enabled' do
175
+ subject { described_class.new(geo_concern_presenter, document_class, ssl: true) }
176
+
177
+ before do
178
+ allow(geo_concern_presenter).to receive(:file_set_presenters).and_return([geo_file_presenter, metadata_presenter])
179
+ end
180
+
181
+ it 'returns https reference urls' do
182
+ refs = JSON.parse(document['dct_references_s'])
183
+ expect(refs['http://schema.org/url']).to eq('https://localhost:3000/concern/vector_works/geo-work-1')
184
+ end
185
+ end
186
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe GeoConcerns::Discovery::GeoblacklightDocument do
4
+ subject { described_class.new }
5
+
6
+ describe '#to_hash' do
7
+ let(:document) { { id: 'test' } }
8
+
9
+ before do
10
+ allow(subject).to receive(:document).and_return(document)
11
+ end
12
+
13
+ it 'returns the document hash' do
14
+ expect(subject.to_hash).to eq(document)
15
+ end
16
+ end
17
+ end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe RasterFormatService do
3
+ describe GeoConcerns::RasterFormatService do
4
4
  subject { described_class }
5
5
 
6
6
  it 'has select_options' do
@@ -1,5 +1,5 @@
1
- gem 'curation_concerns', '~> 0.14.0.pre4'
2
- gem 'geo_concerns'
1
+ gem 'curation_concerns', '1.0.0.beta3'
2
+ gem 'geo_concerns', '0.0.5'
3
3
 
4
4
  run 'bundle install'
5
5
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geo_concerns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Griffin
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2016-05-24 00:00:00.000000000 Z
15
+ date: 2016-05-31 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: curation_concerns
@@ -42,6 +42,34 @@ dependencies:
42
42
  - - "~>"
43
43
  - !ruby/object:Gem::Version
44
44
  version: '0.7'
45
+ - !ruby/object:Gem::Dependency
46
+ name: simple_mapnik
47
+ requirement: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - '='
50
+ - !ruby/object:Gem::Version
51
+ version: 0.0.9
52
+ type: :runtime
53
+ prerelease: false
54
+ version_requirements: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - '='
57
+ - !ruby/object:Gem::Version
58
+ version: 0.0.9
59
+ - !ruby/object:Gem::Dependency
60
+ name: json-schema
61
+ requirement: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
45
73
  - !ruby/object:Gem::Dependency
46
74
  name: sqlite3
47
75
  requirement: !ruby/object:Gem::Requirement
@@ -231,6 +259,7 @@ files:
231
259
  - app/assets/stylesheets/geo_concerns/bounding_box.scss
232
260
  - app/assets/stylesheets/geo_concerns/leaflet-boundingbox.css
233
261
  - app/controllers/concerns/geo_concerns/file_sets_controller_behavior.rb
262
+ - app/controllers/concerns/geo_concerns/geoblacklight_controller_behavior.rb
234
263
  - app/controllers/concerns/geo_concerns/image_works_controller_behavior.rb
235
264
  - app/controllers/concerns/geo_concerns/raster_works_controller_behavior.rb
236
265
  - app/controllers/concerns/geo_concerns/vector_works_controller_behavior.rb
@@ -243,6 +272,7 @@ files:
243
272
  - app/helpers/geo_concerns/application_helper.rb
244
273
  - app/helpers/geo_concerns/bounding_box_helper.rb
245
274
  - app/helpers/geo_concerns/geo_works_helper.rb
275
+ - app/models/concerns/geo_concerns/ability.rb
246
276
  - app/models/concerns/geo_concerns/basic_geo_metadata.rb
247
277
  - app/models/concerns/geo_concerns/external_metadata_file_behavior.rb
248
278
  - app/models/concerns/geo_concerns/extractors/fgdc_helper.rb
@@ -269,6 +299,7 @@ files:
269
299
  - app/presenters/geo_concerns/vector_work_show_presenter.rb
270
300
  - app/processors/geo_concerns/processors/base_geo_processor.rb
271
301
  - app/processors/geo_concerns/processors/gdal.rb
302
+ - app/processors/geo_concerns/processors/mapnik.rb
272
303
  - app/processors/geo_concerns/processors/ogr.rb
273
304
  - app/processors/geo_concerns/processors/raster.rb
274
305
  - app/processors/geo_concerns/processors/raster/aig.rb
@@ -278,6 +309,7 @@ files:
278
309
  - app/processors/geo_concerns/processors/raster/processor.rb
279
310
  - app/processors/geo_concerns/processors/vector.rb
280
311
  - app/processors/geo_concerns/processors/vector/base.rb
312
+ - app/processors/geo_concerns/processors/vector/info.rb
281
313
  - app/processors/geo_concerns/processors/vector/processor.rb
282
314
  - app/processors/geo_concerns/processors/vector/shapefile.rb
283
315
  - app/processors/geo_concerns/processors/zip.rb
@@ -287,15 +319,26 @@ files:
287
319
  - app/schemas/geo_concerns/basic_geo_metadata_optional.rb
288
320
  - app/schemas/geo_concerns/basic_geo_metadata_required.rb
289
321
  - app/schemas/geo_concerns/file_set_metadata_required.rb
290
- - app/services/authority_service.rb
322
+ - app/services/geo_concerns/authority_service.rb
291
323
  - app/services/geo_concerns/derivative_path.rb
292
- - app/services/image_format_service.rb
293
- - app/services/metadata_format_service.rb
294
- - app/services/raster_format_service.rb
295
- - app/services/vector_format_service.rb
324
+ - app/services/geo_concerns/discovery.rb
325
+ - app/services/geo_concerns/discovery/abstract_document.rb
326
+ - app/services/geo_concerns/discovery/document_builder.rb
327
+ - app/services/geo_concerns/discovery/document_builder/basic_metadata_builder.rb
328
+ - app/services/geo_concerns/discovery/document_builder/composite_builder.rb
329
+ - app/services/geo_concerns/discovery/document_builder/date_builder.rb
330
+ - app/services/geo_concerns/discovery/document_builder/document_helper.rb
331
+ - app/services/geo_concerns/discovery/document_builder/document_path.rb
332
+ - app/services/geo_concerns/discovery/document_builder/layer_info_builder.rb
333
+ - app/services/geo_concerns/discovery/document_builder/references_builder.rb
334
+ - app/services/geo_concerns/discovery/document_builder/spatial_builder.rb
335
+ - app/services/geo_concerns/discovery/geoblacklight_document.rb
336
+ - app/services/geo_concerns/image_format_service.rb
337
+ - app/services/geo_concerns/metadata_format_service.rb
338
+ - app/services/geo_concerns/raster_format_service.rb
339
+ - app/services/geo_concerns/vector_format_service.rb
296
340
  - app/values/geo_concerns/coverage.rb
297
341
  - app/values/geo_concerns/time_period.rb
298
- - app/views/curation_concerns/file_sets/_form.html.erb
299
342
  - app/views/curation_concerns/image_works/_form.html.erb
300
343
  - app/views/curation_concerns/image_works/_image_work.html.erb
301
344
  - app/views/curation_concerns/image_works/_show_actions.html.erb
@@ -320,6 +363,10 @@ files:
320
363
  - app/views/geo_concerns/_related_external_metadata_files.html.erb
321
364
  - app/views/geo_concerns/_related_geo_files.html.erb
322
365
  - app/views/geo_concerns/_related_geo_works.html.erb
366
+ - app/views/geo_concerns/_representative_media.html.erb
367
+ - app/views/geo_concerns/file_sets/_form.html.erb
368
+ - app/views/geo_concerns/file_sets/media_display/_geo.html.erb
369
+ - app/views/geo_concerns/file_sets/new.html.erb
323
370
  - app/vocabs/geo_concerns/geo_terms.rb
324
371
  - config/routes.rb
325
372
  - geo_concerns.gemspec
@@ -331,6 +378,8 @@ files:
331
378
  - lib/generators/geo_concerns/templates/config/authorities/metadata_formats.yml
332
379
  - lib/generators/geo_concerns/templates/config/authorities/raster_formats.yml
333
380
  - lib/generators/geo_concerns/templates/config/authorities/vector_formats.yml
381
+ - lib/generators/geo_concerns/templates/config/discovery/geoblacklight_schema.json
382
+ - lib/generators/geo_concerns/templates/config/mapnik.yml
334
383
  - lib/generators/geo_concerns/templates/controllers/curation_concerns/file_sets_controller.rb
335
384
  - lib/generators/geo_concerns/templates/controllers/curation_concerns/image_works_controller.rb
336
385
  - lib/generators/geo_concerns/templates/controllers/curation_concerns/raster_works_controller.rb
@@ -367,6 +416,7 @@ files:
367
416
  - solr/config/xslt/example_rss.xsl
368
417
  - solr/config/xslt/luke.xsl
369
418
  - spec/actors/geo_concerns/actors/file_actor_spec.rb
419
+ - spec/controllers/file_sets_controller_spec.rb
370
420
  - spec/controllers/image_works_controller_spec.rb
371
421
  - spec/controllers/raster_works_controller_spec.rb
372
422
  - spec/controllers/vector_works_controller_spec.rb
@@ -406,6 +456,7 @@ files:
406
456
  - spec/presenters/vector_work_show_presenter_spec.rb
407
457
  - spec/processors/geo_concerns/processors/base_geo_processor_spec.rb
408
458
  - spec/processors/geo_concerns/processors/gdal_spec.rb
459
+ - spec/processors/geo_concerns/processors/mapnik_spec.rb
409
460
  - spec/processors/geo_concerns/processors/ogr_spec.rb
410
461
  - spec/processors/geo_concerns/processors/raster/aig_spec.rb
411
462
  - spec/processors/geo_concerns/processors/raster/base_spec.rb
@@ -413,11 +464,15 @@ files:
413
464
  - spec/processors/geo_concerns/processors/raster/info_spec.rb
414
465
  - spec/processors/geo_concerns/processors/raster/processor_spec.rb
415
466
  - spec/processors/geo_concerns/processors/vector/base_spec.rb
467
+ - spec/processors/geo_concerns/processors/vector/info_spec.rb
416
468
  - spec/processors/geo_concerns/processors/vector/processor_spec.rb
417
469
  - spec/processors/geo_concerns/processors/vector/shapefile_spec.rb
418
470
  - spec/processors/geo_concerns/processors/zip_spec.rb
419
471
  - spec/renderers/geo_concerns/coverage_renderer_spec.rb
420
472
  - spec/services/derivative_path_spec.rb
473
+ - spec/services/geo_concerns/discovery/abstract_document_spec.rb
474
+ - spec/services/geo_concerns/discovery/document_builder_spec.rb
475
+ - spec/services/geo_concerns/discovery/geoblacklight_document_spec.rb
421
476
  - spec/services/raster_format_service_spec.rb
422
477
  - spec/spec_helper.rb
423
478
  - spec/support/controllers/engine_helpers.rb
@@ -452,12 +507,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
452
507
  version: '0'
453
508
  requirements: []
454
509
  rubyforge_project:
455
- rubygems_version: 2.4.5
510
+ rubygems_version: 2.4.6
456
511
  signing_key:
457
512
  specification_version: 4
458
513
  summary: Rails engine for Hydra Geo models. Built around Curation Concerns engine.
459
514
  test_files:
460
515
  - spec/actors/geo_concerns/actors/file_actor_spec.rb
516
+ - spec/controllers/file_sets_controller_spec.rb
461
517
  - spec/controllers/image_works_controller_spec.rb
462
518
  - spec/controllers/raster_works_controller_spec.rb
463
519
  - spec/controllers/vector_works_controller_spec.rb
@@ -497,6 +553,7 @@ test_files:
497
553
  - spec/presenters/vector_work_show_presenter_spec.rb
498
554
  - spec/processors/geo_concerns/processors/base_geo_processor_spec.rb
499
555
  - spec/processors/geo_concerns/processors/gdal_spec.rb
556
+ - spec/processors/geo_concerns/processors/mapnik_spec.rb
500
557
  - spec/processors/geo_concerns/processors/ogr_spec.rb
501
558
  - spec/processors/geo_concerns/processors/raster/aig_spec.rb
502
559
  - spec/processors/geo_concerns/processors/raster/base_spec.rb
@@ -504,11 +561,15 @@ test_files:
504
561
  - spec/processors/geo_concerns/processors/raster/info_spec.rb
505
562
  - spec/processors/geo_concerns/processors/raster/processor_spec.rb
506
563
  - spec/processors/geo_concerns/processors/vector/base_spec.rb
564
+ - spec/processors/geo_concerns/processors/vector/info_spec.rb
507
565
  - spec/processors/geo_concerns/processors/vector/processor_spec.rb
508
566
  - spec/processors/geo_concerns/processors/vector/shapefile_spec.rb
509
567
  - spec/processors/geo_concerns/processors/zip_spec.rb
510
568
  - spec/renderers/geo_concerns/coverage_renderer_spec.rb
511
569
  - spec/services/derivative_path_spec.rb
570
+ - spec/services/geo_concerns/discovery/abstract_document_spec.rb
571
+ - spec/services/geo_concerns/discovery/document_builder_spec.rb
572
+ - spec/services/geo_concerns/discovery/geoblacklight_document_spec.rb
512
573
  - spec/services/raster_format_service_spec.rb
513
574
  - spec/spec_helper.rb
514
575
  - spec/support/controllers/engine_helpers.rb