geo_combine 0.5.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +53 -0
  3. data/.gitignore +2 -0
  4. data/.rubocop.yml +20 -0
  5. data/.rubocop_todo.yml +165 -0
  6. data/Gemfile +2 -1
  7. data/README.md +20 -2
  8. data/Rakefile +4 -2
  9. data/bin/geocombine +1 -0
  10. data/geo_combine.gemspec +6 -1
  11. data/lib/geo_combine/bounding_box.rb +7 -1
  12. data/lib/geo_combine/ckan_metadata.rb +10 -8
  13. data/lib/geo_combine/cli.rb +3 -1
  14. data/lib/geo_combine/esri_open_data.rb +2 -0
  15. data/lib/geo_combine/exceptions.rb +3 -0
  16. data/lib/geo_combine/fgdc.rb +2 -2
  17. data/lib/geo_combine/formats.rb +2 -0
  18. data/lib/geo_combine/formatting.rb +3 -1
  19. data/lib/geo_combine/geo_blacklight_harvester.rb +21 -13
  20. data/lib/geo_combine/geoblacklight.rb +20 -6
  21. data/lib/geo_combine/geometry_types.rb +2 -0
  22. data/lib/geo_combine/iso19139.rb +2 -1
  23. data/lib/geo_combine/ogp.rb +13 -11
  24. data/lib/geo_combine/railtie.rb +2 -0
  25. data/lib/geo_combine/subjects.rb +2 -0
  26. data/lib/geo_combine/version.rb +3 -1
  27. data/lib/geo_combine.rb +4 -3
  28. data/lib/tasks/geo_combine.rake +50 -29
  29. data/lib/xslt/fgdc2html.xsl +38 -9
  30. data/spec/features/fgdc2html_spec.rb +53 -1
  31. data/spec/features/iso2html_spec.rb +10 -1
  32. data/spec/fixtures/docs/princeton_fgdc.xml +374 -0
  33. data/spec/fixtures/docs/repos.json +3224 -0
  34. data/spec/fixtures/docs/simple_xml.xml +10 -0
  35. data/spec/fixtures/docs/simple_xslt.xsl +11 -0
  36. data/spec/fixtures/docs/stanford_iso.xml +652 -0
  37. data/spec/fixtures/docs/tufts_fgdc.xml +977 -0
  38. data/spec/fixtures/indexing/basic_geoblacklight.json +27 -0
  39. data/spec/fixtures/indexing/geoblacklight.json +33 -0
  40. data/spec/fixtures/indexing/layers.json +16119 -0
  41. data/spec/fixtures/indexing/test.txt +1 -0
  42. data/spec/fixtures/json_docs.rb +2 -0
  43. data/spec/fixtures/xml_docs.rb +9 -1659
  44. data/spec/helpers.rb +7 -7
  45. data/spec/lib/geo_combine/bounding_box_spec.rb +18 -0
  46. data/spec/lib/geo_combine/ckan_metadata_spec.rb +34 -11
  47. data/spec/lib/geo_combine/esri_open_data_spec.rb +23 -2
  48. data/spec/lib/geo_combine/fgdc_spec.rb +41 -10
  49. data/spec/lib/geo_combine/formatting_spec.rb +13 -5
  50. data/spec/lib/geo_combine/geo_blacklight_harvester_spec.rb +30 -26
  51. data/spec/lib/geo_combine/geoblacklight_spec.rb +41 -11
  52. data/spec/lib/geo_combine/iso19139_spec.rb +26 -14
  53. data/spec/lib/geo_combine/ogp_spec.rb +28 -8
  54. data/spec/lib/geo_combine_spec.rb +7 -4
  55. data/spec/lib/tasks/geo_combine_spec.rb +45 -0
  56. data/spec/spec_helper.rb +19 -84
  57. data/spec/support/fixtures.rb +9 -0
  58. metadata +116 -21
  59. data/.coveralls.yml +0 -1
  60. data/.travis.yml +0 -8
data/spec/spec_helper.rb CHANGED
@@ -1,23 +1,15 @@
1
- # This file was generated by the `rspec --init` command. Conventionally, all
2
- # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
- # The generated `.rspec` file contains `--require spec_helper` which will cause
4
- # this file to always be loaded, without a need to explicitly require it in any
5
- # files.
6
- #
7
- # Given that it is always loaded, you are encouraged to keep this file as
8
- # light-weight as possible. Requiring heavyweight dependencies from this file
9
- # will add to the boot time of your test suite on EVERY test run, even for an
10
- # individual file that may not need all of that loaded. Instead, consider making
11
- # a separate helper file that requires the additional dependencies and performs
12
- # the additional setup, and require it from the spec files that actually need
13
- # it.
14
- #
15
- # The `.rspec` file also contains a few flags that are not defaults but that
16
- # users commonly want.
17
- #
18
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
19
- require 'coveralls'
20
- Coveralls.wear!
1
+ # frozen_string_literal: true
2
+
3
+ require 'simplecov'
4
+
5
+ SimpleCov.formatter = SimpleCov::Formatter::HTMLFormatter
6
+ SimpleCov.start 'rails' do
7
+ add_filter 'lib/tasks/geo_combine.rake'
8
+ add_filter 'lib/geo_combine/version.rb'
9
+ add_filter 'lib/geo_combine/railtie.rb'
10
+ add_filter 'lib/geo_combine/cli.rb'
11
+ minimum_coverage 95 # When updating this value, update the README badge value
12
+ end
21
13
 
22
14
  require 'geo_combine'
23
15
  require 'fixtures/xml_docs'
@@ -26,78 +18,21 @@ require 'helpers'
26
18
  require 'rspec-html-matchers'
27
19
  require 'byebug'
28
20
 
21
+ # Setup webmock for specific tests
22
+ require 'webmock/rspec'
23
+ WebMock.allow_net_connect!
24
+
25
+ # include the spec support files
26
+ Dir['./spec/support/**/*.rb'].sort.each { |f| require f }
27
+
29
28
  RSpec.configure do |config|
30
29
  config.include Helpers
31
30
  config.include RSpecHtmlMatchers
32
- # rspec-expectations config goes here. You can use an alternate
33
- # assertion/expectation library such as wrong or the stdlib/minitest
34
- # assertions if you prefer.
35
31
  config.expect_with :rspec do |expectations|
36
- # This option will default to `true` in RSpec 4. It makes the `description`
37
- # and `failure_message` of custom matchers include text for helper methods
38
- # defined using `chain`, e.g.:
39
- # be_bigger_than(2).and_smaller_than(4).description
40
- # # => "be bigger than 2 and smaller than 4"
41
- # ...rather than:
42
- # # => "be bigger than 2"
43
32
  expectations.include_chain_clauses_in_custom_matcher_descriptions = true
44
33
  end
45
34
 
46
- # rspec-mocks config goes here. You can use an alternate test double
47
- # library (such as bogus or mocha) by changing the `mock_with` option here.
48
35
  config.mock_with :rspec do |mocks|
49
- # Prevents you from mocking or stubbing a method that does not exist on
50
- # a real object. This is generally recommended, and will default to
51
- # `true` in RSpec 4.
52
36
  mocks.verify_partial_doubles = true
53
37
  end
54
-
55
- # The settings below are suggested to provide a good initial experience
56
- # with RSpec, but feel free to customize to your heart's content.
57
- =begin
58
- # These two settings work together to allow you to limit a spec run
59
- # to individual examples or groups you care about by tagging them with
60
- # `:focus` metadata. When nothing is tagged with `:focus`, all examples
61
- # get run.
62
- config.filter_run :focus
63
- config.run_all_when_everything_filtered = true
64
-
65
- # Limits the available syntax to the non-monkey patched syntax that is
66
- # recommended. For more details, see:
67
- # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
68
- # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
69
- # - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
70
- config.disable_monkey_patching!
71
-
72
- # This setting enables warnings. It's recommended, but in some cases may
73
- # be too noisy due to issues in dependencies.
74
- config.warnings = true
75
-
76
- # Many RSpec users commonly either run the entire suite or an individual
77
- # file, and it's useful to allow more verbose output when running an
78
- # individual spec file.
79
- if config.files_to_run.one?
80
- # Use the documentation formatter for detailed output,
81
- # unless a formatter has already been configured
82
- # (e.g. via a command-line flag).
83
- config.default_formatter = 'doc'
84
- end
85
-
86
- # Print the 10 slowest examples and example groups at the
87
- # end of the spec run, to help surface which specs are running
88
- # particularly slow.
89
- config.profile_examples = 10
90
-
91
- # Run specs in random order to surface order dependencies. If you find an
92
- # order dependency and want to debug it, you can fix the order by providing
93
- # the seed, which is printed after each run.
94
- # --seed 1234
95
- config.order = :random
96
-
97
- # Seed global randomization in this process using the `--seed` CLI option.
98
- # Setting this allows you to use `--seed` to deterministically reproduce
99
- # test failures related to randomization by passing the same `--seed` value
100
- # as the one that triggered the failure.
101
- Kernel.srand config.seed
102
- =end
103
38
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ def read_fixture(fname)
4
+ File.read(File.join(fixture_dir, fname))
5
+ end
6
+
7
+ def fixture_dir
8
+ @fixture_dir ||= File.join(File.dirname(__FILE__), '../fixtures')
9
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geo_combine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jack Reed
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-13 00:00:00.000000000 Z
11
+ date: 2022-09-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -39,21 +39,21 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: net-http-persistent
42
+ name: nokogiri
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '2.0'
47
+ version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '2.0'
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: nokogiri
56
+ name: json-schema
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: json-schema
70
+ name: sanitize
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: sanitize
84
+ name: thor
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,19 +95,19 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: thor
98
+ name: faraday-net_http_persistent
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '0'
103
+ version: '2.0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '0'
110
+ version: '2.0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: bundler
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +164,76 @@ dependencies:
164
164
  - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '1.25'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '1.25'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rubocop-rspec
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '2.8'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '2.8'
195
+ - !ruby/object:Gem::Dependency
196
+ name: rubocop-rake
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: simplecov
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: webmock
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - "~>"
228
+ - !ruby/object:Gem::Version
229
+ version: '3.14'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - "~>"
235
+ - !ruby/object:Gem::Version
236
+ version: '3.14'
167
237
  description: A Ruby toolkit for managing geospatial metadata
168
238
  email:
169
239
  - pjreed@stanford.edu
@@ -172,10 +242,11 @@ executables:
172
242
  extensions: []
173
243
  extra_rdoc_files: []
174
244
  files:
175
- - ".coveralls.yml"
245
+ - ".github/workflows/ruby.yml"
176
246
  - ".gitignore"
177
247
  - ".rspec"
178
- - ".travis.yml"
248
+ - ".rubocop.yml"
249
+ - ".rubocop_todo.yml"
179
250
  - Gemfile
180
251
  - LICENSE.txt
181
252
  - README.md
@@ -227,6 +298,16 @@ files:
227
298
  - spec/fixtures/docs/ogp_harvard_line.json
228
299
  - spec/fixtures/docs/ogp_harvard_raster.json
229
300
  - spec/fixtures/docs/ogp_tufts_vector.json
301
+ - spec/fixtures/docs/princeton_fgdc.xml
302
+ - spec/fixtures/docs/repos.json
303
+ - spec/fixtures/docs/simple_xml.xml
304
+ - spec/fixtures/docs/simple_xslt.xsl
305
+ - spec/fixtures/docs/stanford_iso.xml
306
+ - spec/fixtures/docs/tufts_fgdc.xml
307
+ - spec/fixtures/indexing/basic_geoblacklight.json
308
+ - spec/fixtures/indexing/geoblacklight.json
309
+ - spec/fixtures/indexing/layers.json
310
+ - spec/fixtures/indexing/test.txt
230
311
  - spec/fixtures/json_docs.rb
231
312
  - spec/fixtures/xml_docs.rb
232
313
  - spec/helpers.rb
@@ -240,12 +321,14 @@ files:
240
321
  - spec/lib/geo_combine/iso19139_spec.rb
241
322
  - spec/lib/geo_combine/ogp_spec.rb
242
323
  - spec/lib/geo_combine_spec.rb
324
+ - spec/lib/tasks/geo_combine_spec.rb
243
325
  - spec/spec_helper.rb
326
+ - spec/support/fixtures.rb
244
327
  homepage: ''
245
328
  licenses:
246
329
  - Apache
247
330
  metadata: {}
248
- post_install_message:
331
+ post_install_message:
249
332
  rdoc_options: []
250
333
  require_paths:
251
334
  - lib
@@ -260,8 +343,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
260
343
  - !ruby/object:Gem::Version
261
344
  version: '0'
262
345
  requirements: []
263
- rubygems_version: 3.1.2
264
- signing_key:
346
+ rubygems_version: 3.1.6
347
+ signing_key:
265
348
  specification_version: 4
266
349
  summary: A Ruby toolkit for managing geospatial metadata
267
350
  test_files:
@@ -275,6 +358,16 @@ test_files:
275
358
  - spec/fixtures/docs/ogp_harvard_line.json
276
359
  - spec/fixtures/docs/ogp_harvard_raster.json
277
360
  - spec/fixtures/docs/ogp_tufts_vector.json
361
+ - spec/fixtures/docs/princeton_fgdc.xml
362
+ - spec/fixtures/docs/repos.json
363
+ - spec/fixtures/docs/simple_xml.xml
364
+ - spec/fixtures/docs/simple_xslt.xsl
365
+ - spec/fixtures/docs/stanford_iso.xml
366
+ - spec/fixtures/docs/tufts_fgdc.xml
367
+ - spec/fixtures/indexing/basic_geoblacklight.json
368
+ - spec/fixtures/indexing/geoblacklight.json
369
+ - spec/fixtures/indexing/layers.json
370
+ - spec/fixtures/indexing/test.txt
278
371
  - spec/fixtures/json_docs.rb
279
372
  - spec/fixtures/xml_docs.rb
280
373
  - spec/helpers.rb
@@ -288,4 +381,6 @@ test_files:
288
381
  - spec/lib/geo_combine/iso19139_spec.rb
289
382
  - spec/lib/geo_combine/ogp_spec.rb
290
383
  - spec/lib/geo_combine_spec.rb
384
+ - spec/lib/tasks/geo_combine_spec.rb
291
385
  - spec/spec_helper.rb
386
+ - spec/support/fixtures.rb
data/.coveralls.yml DELETED
@@ -1 +0,0 @@
1
- service_name: travis-ci
data/.travis.yml DELETED
@@ -1,8 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.4.10
6
- - 2.5.8
7
- - 2.6.6
8
- - 2.7.1