geoblacklight 3.7.0 → 3.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 669f1317b4e0b7a8d207830fea82860c2cfad0fe63598889bb62e9f082428fb0
4
- data.tar.gz: 7f56526d08dccd86e1acb275f6ab64f69d3e9294eec494d3527c83d76e5e49ca
3
+ metadata.gz: 9d38227e8bec0552c52eda7b163288785560f4c3738d8d7e20e1092cbd894e25
4
+ data.tar.gz: 15b6abe9a48f346eaa67bbd850b36eb0b37dc8b96a274b136ffe637030fc1668
5
5
  SHA512:
6
- metadata.gz: 1d886872bb892dd3431252cebc62ddd64fc920a6a1a1ed0c718dd53c4a59e2400b1c61c345676bded065523aef0743d1a23b862ca6d0c863054d664c1881586c
7
- data.tar.gz: 437dcc35b775cb2387717c5177fa5e6380023b0bfb76bfff87d3f0ff151ef2756359fbeefd9ce352eec7a8e29e6a4809a9cfba87bab6320e5898b7430d4c62ee
6
+ metadata.gz: c14c4504b167139ade094b552a891ec2f0e5ee5e3ae255e25b9c1a211a126fcca1f2a4ca4455b2bb964fb13a76ae2086f0f502f2d4cfb7d1f879b1af3e98599a
7
+ data.tar.gz: 12fc1f80efc59e132abea31e5b1e252fe48bc3e83eb802b1c415bdb8549cb91d1cb343dd8c2f9f78b6c551f4e22a2680fc54c739e570a903b8b2b1ef2b7c67d4
@@ -1,6 +1,10 @@
1
1
  name: CI
2
2
 
3
- on: [push, pull_request]
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
4
8
 
5
9
  jobs:
6
10
  rubocop:
@@ -16,49 +20,13 @@ jobs:
16
20
  - name: Run linter
17
21
  run: bundle exec rake rubocop
18
22
 
19
- coverage:
20
- runs-on: ubuntu-latest
21
- needs: test
22
- steps:
23
- - uses: actions/checkout@v2
24
-
25
- - name: Set up Ruby
26
- uses: ruby/setup-ruby@v1
27
- with:
28
- ruby-version: 2.7
29
-
30
- - name: Install bundler
31
- run: gem install bundler -v 2.1.1
32
-
33
- - name: Install dependencies
34
- run: bundle _2.1.1_ install
35
-
36
- - name: Download coverage artifacts
37
- uses: actions/download-artifact@v2
38
- with:
39
- name: coverage
40
- path: coverage_results
41
-
42
- - name: Run coverage report
43
- run: RAILS_ENV=test bundle exec ruby ./bin/coverage.rb
44
-
45
23
  test:
46
24
  runs-on: ubuntu-latest
47
25
  strategy:
48
26
  matrix:
49
27
  ruby_version: ['3.0', 2.7]
50
- rails_version: [6.1]
51
- bundler_version: [2.1.1]
28
+ rails_version: [7.0.2.2, 6.1]
52
29
  faraday_version: ['>= 2', '~> 1.0']
53
- include:
54
- - ruby_version: 2.6
55
- rails_version: 6.1
56
- bundler_version: 2.1.1
57
- faraday_version: '~> 1.0'
58
- - ruby_version: '3.0'
59
- rails_version: '7.0.2.2'
60
- bundler_version: 2.1.1
61
- faraday_version: '>= 2'
62
30
 
63
31
  name: test ruby ${{ matrix.ruby_version }} / rails ${{ matrix.rails_version }} / faraday ${{ matrix.faraday_version }}
64
32
  steps:
@@ -68,17 +36,18 @@ jobs:
68
36
  uses: ruby/setup-ruby@v1
69
37
  with:
70
38
  ruby-version: ${{ matrix.ruby_version }}
71
-
39
+ # required to avoid https://github.com/actions/runner-images/issues/37
40
+ # because faraday depends on patron, which requires curl headers to build
41
+ - name: Install cURL Headers
42
+ run: sudo apt-get update && sudo apt-get install libcurl4-openssl-dev
43
+ if: matrix.faraday_version == '~> 1.0'
72
44
  - name: Create Solr container
73
45
  run: docker run -d -p 8983:8983 geoblacklight/solr:8.9-v1.0.0 server/scripts/ci-start.sh
74
-
75
- - name: Install bundler
76
- run: gem install bundler -v 2.1.1
77
-
78
46
  - name: Install dependencies
79
- run: bundle _2.1.1_ install
47
+ run: bundle install
80
48
  env:
81
- rails_version: ${{ matrix.rails_version }}
49
+ RAILS_VERSION: ${{ matrix.rails_version }}
50
+ FARADAY_VERSION: ${{ matrix.faraday_version }}
82
51
 
83
52
  - name: Load config into solr
84
53
  run: |
@@ -90,12 +59,14 @@ jobs:
90
59
  - name: Run tests
91
60
  run: bundle exec rake ci
92
61
  env:
93
- rails_version: ${{ matrix.rails_version }}
62
+ RAILS_VERSION: ${{ matrix.rails_version }}
94
63
  ENGINE_CART_RAILS_OPTIONS: '--skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test'
95
64
  SOLR_URL: http://solr:SolrRocks@localhost:8983/solr/blacklight-core
65
+ FARADAY_VERSION: ${{ matrix.faraday_version }}
96
66
 
97
67
  - name: Upload coverage artifacts
98
68
  uses: actions/upload-artifact@v2
69
+ if: always()
99
70
  with:
100
71
  name: coverage
101
72
  path: coverage/
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://raw.githubusercontent.com/geoblacklight/geoblacklight/coverage-badge/coverage.svg)]() | [![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)
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
@@ -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>
@@ -1,275 +1,311 @@
1
1
  {
2
2
  "selection": [
3
3
  {
4
- "order": 0,
4
+ "order": 7,
5
+ "name": "george-mason"
6
+ },
7
+ {
8
+ "order": 8,
9
+ "name": "university-of-colorado-boulder"
10
+ },
11
+ {
12
+ "order": 9,
5
13
  "name": "wisconsin"
6
14
  },
7
15
  {
8
- "order": 0,
16
+ "order": 10,
9
17
  "name": "web_services"
10
18
  },
11
19
  {
12
- "order": 0,
20
+ "order": 11,
13
21
  "name": "uva"
14
22
  },
15
23
  {
16
- "order": 0,
24
+ "order": 12,
17
25
  "name": "ucla"
18
26
  },
19
27
  {
20
- "order": 0,
28
+ "order": 13,
21
29
  "name": "tufts"
22
30
  },
23
31
  {
24
- "order": 0,
32
+ "order": 14,
25
33
  "name": "texas"
26
34
  },
27
35
  {
28
- "order": 0,
36
+ "order": 15,
29
37
  "name": "tags"
30
38
  },
31
39
  {
32
- "order": 0,
40
+ "order": 16,
33
41
  "name": "table"
34
42
  },
35
43
  {
36
- "order": 0,
44
+ "order": 17,
37
45
  "name": "stanford"
38
46
  },
39
47
  {
40
- "order": 0,
48
+ "order": 18,
41
49
  "name": "sms"
42
50
  },
43
51
  {
44
- "order": 0,
52
+ "order": 19,
45
53
  "name": "restricted"
46
54
  },
47
55
  {
48
- "order": 0,
56
+ "order": 20,
49
57
  "name": "raster"
50
58
  },
51
59
  {
52
- "order": 0,
60
+ "order": 21,
53
61
  "name": "purdue"
54
62
  },
55
63
  {
56
- "order": 0,
64
+ "order": 22,
57
65
  "name": "public"
58
66
  },
59
67
  {
60
- "order": 0,
68
+ "order": 23,
61
69
  "name": "princeton"
62
70
  },
63
71
  {
64
- "order": 0,
72
+ "order": 24,
65
73
  "name": "polyline"
66
74
  },
67
75
  {
68
- "order": 0,
76
+ "order": 25,
69
77
  "name": "polygon"
70
78
  },
71
79
  {
72
- "order": 0,
80
+ "order": 26,
73
81
  "name": "point"
74
82
  },
75
83
  {
76
- "order": 0,
84
+ "order": 27,
77
85
  "name": "penn-state"
78
86
  },
79
87
  {
80
- "order": 0,
88
+ "order": 28,
81
89
  "name": "paper-map"
82
90
  },
83
91
  {
84
- "order": 0,
92
+ "order": 29,
85
93
  "name": "pagelines-brands"
86
94
  },
87
95
  {
88
- "order": 0,
96
+ "order": 30,
89
97
  "name": "ohio-state"
90
98
  },
91
99
  {
92
- "order": 0,
100
+ "order": 31,
93
101
  "name": "nyu"
94
102
  },
95
103
  {
96
- "order": 0,
104
+ "order": 32,
97
105
  "name": "multipolygon"
98
106
  },
99
107
  {
100
- "order": 0,
108
+ "order": 33,
101
109
  "name": "multipoint"
102
110
  },
103
111
  {
104
- "order": 0,
112
+ "order": 34,
105
113
  "name": "multilinestring"
106
114
  },
107
115
  {
108
- "order": 0,
116
+ "order": 35,
109
117
  "name": "mixed"
110
118
  },
111
119
  {
112
- "order": 0,
120
+ "order": 36,
113
121
  "name": "mit"
114
122
  },
115
123
  {
116
- "order": 0,
124
+ "order": 37,
117
125
  "name": "minnesota"
118
126
  },
119
127
  {
120
- "order": 0,
128
+ "order": 38,
121
129
  "name": "michigan"
122
130
  },
123
131
  {
124
- "order": 0,
132
+ "order": 39,
125
133
  "name": "michigan-state"
126
134
  },
127
135
  {
128
- "order": 0,
136
+ "order": 40,
129
137
  "name": "metadata"
130
138
  },
131
139
  {
132
- "order": 0,
140
+ "order": 41,
133
141
  "name": "massgis"
134
142
  },
135
143
  {
136
- "order": 0,
144
+ "order": 42,
137
145
  "name": "maryland"
138
146
  },
139
147
  {
140
- "order": 0,
148
+ "order": 43,
141
149
  "name": "map"
142
150
  },
143
151
  {
144
- "order": 0,
152
+ "order": 44,
145
153
  "name": "map-marker"
146
154
  },
147
155
  {
148
- "order": 0,
156
+ "order": 45,
149
157
  "name": "line"
150
158
  },
151
159
  {
152
- "order": 0,
160
+ "order": 46,
153
161
  "name": "lewis-clark"
154
162
  },
155
163
  {
156
- "order": 0,
164
+ "order": 47,
157
165
  "name": "leaf"
158
166
  },
159
167
  {
160
- "order": 0,
168
+ "order": 48,
161
169
  "name": "iowa"
162
170
  },
163
171
  {
164
- "order": 0,
172
+ "order": 49,
165
173
  "name": "indiana"
166
174
  },
167
175
  {
168
- "order": 0,
176
+ "order": 50,
169
177
  "name": "image"
170
178
  },
171
179
  {
172
- "order": 0,
180
+ "order": 51,
173
181
  "name": "illinois"
174
182
  },
175
183
  {
176
- "order": 0,
184
+ "order": 52,
177
185
  "name": "harvard"
178
186
  },
179
187
  {
180
- "order": 0,
188
+ "order": 53,
181
189
  "name": "globe"
182
190
  },
183
191
  {
184
- "order": 0,
192
+ "order": 54,
185
193
  "name": "esri-globe"
186
194
  },
187
195
  {
188
- "order": 0,
196
+ "order": 55,
189
197
  "name": "email"
190
198
  },
191
199
  {
192
- "order": 0,
200
+ "order": 56,
193
201
  "name": "dvd-rom"
194
202
  },
195
203
  {
196
- "order": 0,
204
+ "order": 57,
197
205
  "name": "cornell"
198
206
  },
199
207
  {
200
- "order": 0,
208
+ "order": 58,
201
209
  "name": "columbia"
202
210
  },
203
211
  {
204
- "order": 0,
212
+ "order": 59,
205
213
  "name": "chicago"
206
214
  },
207
215
  {
208
- "order": 0,
216
+ "order": 60,
209
217
  "name": "cd-rom"
210
218
  },
211
219
  {
212
- "order": 0,
220
+ "order": 61,
213
221
  "name": "bookmark"
214
222
  },
215
223
  {
216
- "order": 0,
224
+ "order": 62,
217
225
  "name": "book"
218
226
  },
219
227
  {
220
- "order": 0,
228
+ "order": 63,
221
229
  "name": "baruch-cuny"
222
230
  },
223
231
  {
224
- "order": 0,
232
+ "order": 64,
225
233
  "name": "berkeley"
226
234
  },
227
235
  {
228
- "order": 0,
236
+ "order": 65,
229
237
  "name": "logo"
230
238
  },
231
239
  {
232
- "order": 0,
240
+ "order": 66,
233
241
  "name": "arrow-circle-down"
234
242
  },
235
243
  {
236
- "order": 0,
244
+ "order": 67,
237
245
  "name": "home"
238
246
  }
239
247
  ],
240
248
  "metadata": {
241
249
  "name": "geoblacklight-icons",
242
250
  "importSize": {
243
- "width": 20,
244
- "height": 32
251
+ "width": 1024,
252
+ "height": 1024
245
253
  },
246
- "iconsHash": 2056535011
254
+ "iconsHash": 2136029298
247
255
  },
248
256
  "height": 1024,
249
257
  "prevSize": 32,
250
258
  "icons": [
251
259
  {
252
260
  "paths": [
253
- "M320.64 1023.68c-0.64 0-0.96-0.64-0.64-0.96s0-0.64-0.32-0.64c-1.28 0-6.4-4.8-10.24-9.6l-3.52-4.8-7.68-1.92c-60.058-18.149-110.491-53.053-147.382-99.247l-0.458-0.593c-25.6-30.72-45.12-60.8-66.24-103.36-47.029-95.050-77.073-206.21-83.116-323.712l-0.084-2.048-0.96-16.32c-0.158-4.474-0.247-9.732-0.247-15.010 0-14.431 0.671-28.706 1.983-42.794l-0.136 1.805c0.32-21.12 5.76-66.24 11.52-94.72 19.2-96 57.6-165.12 112-201.6 24.411-17.022 54.697-27.198 87.359-27.2l0.001-0c0.96 0 2.56-2.24 4.48-6.4 6.4-13.44 20.16-22.4 40-27.2 4.16-0.64 7.36-1.6 7.68-1.92l2.56-5.44c3.84-8.96 8.64-15.68 15.36-22.4 8.32-8.32 16.64-12.8 26.88-15.040 2.24-0.32 3.84-0.96 3.2-1.28s1.6-0.64 4.48-0.64c5.76-0.64 16 0 15.040 0.64l4.8 1.6c17.28 4.16 33.28 18.88 40.96 37.76 1.92 4.48 3.2 5.76 4.8 5.76 4.16 0 16 3.84 23.36 7.36 6.4 3.2 8.64 4.8 13.44 9.6 4.48 4.48 6.4 6.72 8.64 11.52 1.6 3.2 3.2 6.080 4.16 6.4l7.040 0.32c17.92 0 42.24 6.4 61.12 16 55.36 26.88 96.96 85.44 121.6 171.52 12.502 43.518 20.458 93.765 22.057 145.614l0.023 0.946 0.32 26.88c0.046 2.021 0.072 4.402 0.072 6.789 0 10.341-0.491 20.568-1.451 30.657l0.099-1.287c-5.725 124.246-38.080 239.703-91.444 342.503l2.164-4.583c-28.939 57.499-68.273 105.734-115.958 143.987l-0.842 0.653c-27.643 21.45-60.415 37.799-96.072 46.957l-1.848 0.403-5.12 5.76c-2.24 2.88-5.44 6.080-6.72 7.040l-1.92 1.92c0.96 0-1.92 1.28-2.88 0.96h-1.92zM327.040 1011.84c8-8.64 16-24.64 18.56-36.48 1.28-6.4 1.6-17.28 0.64-23.36-0.64-5.12-2.56-8-7.36-10.88-10.24-6.080-27.2-5.12-35.2 1.92-4.16 3.2-4.8 5.76-5.44 14.72-0.96 16.64 3.84 32 15.040 48.32 4.8 7.040 6.4 8.32 9.6 8.32 1.6 0 2.56-0.64 4.48-2.56zM299.2 995.2c-0.293-2.952-0.972-5.663-1.991-8.2l0.071 0.2c-2.524-6.777-4.237-14.621-4.786-22.783l-0.014-0.257c0-5.44-0.64-6.4-4.8-8-19.075-7.361-35.531-16.189-50.691-26.749l0.771 0.509c-1.28 0-7.68 6.4-11.52 11.2-4.16 5.44-8.64 12.8-8.32 14.72 22.543 17.692 49.14 31.429 78.070 39.611l1.61 0.389 1.6-0.64zM353.92 993.92c28.223-9.479 52.719-22.4 74.65-38.595l-0.73 0.515c0.64-0.96-2.56-7.040-6.4-12.16-3.637-5.444-8.105-10.014-13.277-13.651l-0.163-0.109c-15.668 10.737-33.617 20.119-52.659 27.267l-1.741 0.573c-0.617 1.88-0.974 4.043-0.974 6.289 0 0.264 0.005 0.527 0.015 0.789l-0.001-0.038c-0.64 8.32-2.24 15.040-4.8 22.4-3.2 9.6-3.2 9.6 6.4 6.72zM216.96 949.44c3.2-5.44 8.32-12.16 12.8-16.64 2.24-2.24 3.84-4.16 3.84-4.8s-2.88-3.2-6.4-6.4c-15.36-11.52-38.4-33.6-52.48-50.56-22.234-26.761-42.134-56.886-58.561-89.080l-1.279-2.76-1.28-1.6-5.44 1.6c-3.2 0.64-8.96 3.2-13.44 5.12-6.72 3.2-7.68 4.16-7.68 5.44 19.349 41.261 42.107 76.822 68.821 108.979l-0.661-0.819c9.28 11.52 32 34.56 41.6 42.56 9.28 8 16 13.12 17.28 13.12l3.2-3.84zM440.64 946.88c49.808-41.748 89.508-93.855 116.041-153.142l1.079-2.698c0-2.56-14.080-9.6-23.040-11.84-2.88-0.96-3.52-0.96-4.48 0l-6.4 11.52c-27.771 54.436-65.484 100.025-111.138 135.985l-0.862 0.655 4.16 5.44c5.44 5.76 9.28 10.56 12.16 16 1.6 2.88 2.88 4.16 3.52 4.16s4.8-2.88 8.96-6.4zM292.8 950.080c2.24-8 5.76-12.16 12.48-15.36 11.2-4.8 23.36-4.8 34.24 0 7.040 3.2 10.88 7.68 12.16 13.76 0.32 1.92 0.96 2.24 2.24 2.24 16.74-5.473 31.282-13.086 44.256-22.694l-0.416 0.294c0-0.96-1.92-3.2-4.16-4.8-6.4-5.12-18.24-17.92-23.36-24.32-5.12-7.040-9.6-14.080-12.48-21.12-1.28-2.88-2.56-5.44-3.2-5.44s-4.16 1.6-7.68 3.84c-8.32 4.8-22.4 11.52-24.32 11.52s-18.24-8-24.96-11.84c-1.729-1.277-3.759-2.267-5.955-2.852l-0.125-0.028c-0.64 0-1.92 1.92-3.2 5.12-2.88 6.4-7.040 13.12-12.8 21.12-5.12 7.040-17.6 19.84-23.68 24.64-3.52 2.88-4.48 4.16-3.84 5.12s14.080 8.96 22.72 13.12c15.040 7.36 21.44 9.6 22.080 7.36zM249.6 922.24c15.36-12.8 28.48-28.8 35.2-43.2 4.16-8.64 4.16-8.64-4.8-15.36-29.44-21.44-62.72-60.8-88.64-104-3.2-5.44-4.8-7.68-5.76-7.68-1.754 0.652-3.25 1.633-4.479 2.879l-0.001 0.001c-16.053 12.76-35.502 21.968-56.762 26.104l-0.838 0.136c24.654 51.593 58.419 95.083 99.609 130.103l0.551 0.457c8.96 7.36 19.2 14.72 20.16 14.72l5.76-4.16zM409.28 921.28c39.68-28.48 76.8-72.64 107.84-129.28 5.12-9.6 5.44-11.2 2.56-11.84-10.945-2.686-20.226-5.756-29.184-9.451l1.344 0.491c-9.778-3.885-18.224-8.73-25.852-14.586l0.252 0.186c-3.2-2.56-6.4-4.8-7.040-4.8s-3.2 3.84-6.080 8.64c-12.16 20.16-27.52 41.6-41.6 58.56-13.44 16-33.28 35.2-48 46.4-5.12 3.52-5.44 3.84-4.8 6.080 9.001 22.466 23.906 40.977 42.811 54.144l0.389 0.256c0.64 0 3.84-2.24 7.36-4.8zM277.44 794.56l20.8-133.44 20.48-133.12 25.92 131.2 26.24 133.76 0.64 2.24h6.4c3.84 0 6.080-0.32 6.4-0.96 0.64-0.64 20.16-87.68 43.52-193.92 28.48-128.96 43.2-193.92 43.84-194.88 2.24-3.2 4.48-4.16 9.6-4.8l5.44-0.32v-23.68h-67.2v23.68l5.12-0.32c9.28-0.32 13.12 2.88 13.44 10.88 0 3.84-50.56 224-51.2 223.040l-30.72-144.32c-22.4-106.88-30.4-144.32-31.36-145.28-1.92-1.92-10.88-1.6-11.84 0.32l-22.4 143.040-22.4 142.080-25.6-108.16c-26.56-114.24-25.92-112-23.36-117.12 1.92-3.52 4.48-4.8 9.6-4.8 3.2 0 4.48-0.32 4.8-1.28 0.96-1.28 0.96-19.2 0-20.8-0.64-1.28-1.6-1.28-37.12-1.28-30.4 0-36.8 0-37.44 0.96-0.64 0.64-0.64 4.16-0.64 11.2v10.24l4.48 1.6c5.44 1.92 7.36 3.2 8.64 6.080 0.64 1.28 21.44 88.64 46.080 194.56l45.44 193.28c0.64 0.96 13.76 1.28 14.4 0.32zM564.8 777.28c45.075-97.58 71.363-211.759 71.363-332.078 0-0.816-0.001-1.633-0.004-2.449l0 0.127c0-41.6-0.64-56.64-2.88-57.92-1.92-1.6-14.4 0.64-22.4 3.2l-4.48 1.6 0.32 13.44c0.601 11.384 0.943 24.714 0.943 38.123 0 116.744-25.94 227.429-72.372 326.606l1.989-4.729c-3.52 7.68-4.8 10.88-4.16 11.52 0.32 0.64 2.88 1.92 5.44 2.56 5.44 1.6 14.080 5.76 17.28 8 3.84 2.56 4.48 1.92 8.96-8zM94.080 781.44l12.8-5.12c3.52-0.96 4.8-1.6 4.8-2.56-15.949-32.147-30.664-70.175-41.991-109.637l-1.209-4.923c-19.515-66.485-30.742-142.865-30.742-221.868 0-11.554 0.24-23.051 0.716-34.488l-0.054 1.635c0.64-9.6 0.64-13.44 0-14.080-2.24-2.88-25.6-7.36-27.2-5.44-1.542 18.541-2.421 40.129-2.421 61.923 0 45.258 3.79 89.631 11.070 132.818l-0.649-4.661c10.56 63.68 28.16 125.76 52.16 182.080 7.040 17.28 12.8 28.16 13.76 28.16l8.96-3.52zM129.92 776c15.040-3.84 30.4-10.24 40.32-16.64 7.040-4.48 13.76-9.92 13.76-11.52l-3.84-8c-1.92-3.84-7.36-13.12-11.2-21.12-4.16-8-7.68-14.4-8.32-14.4s-1.6 1.6-3.2 3.2c-2.443 4.231-6.065 7.544-10.417 9.541l-0.143 0.059c-10.24 4.8-18.24 3.84-24.64-2.88-2.924-2.724-4.76-6.584-4.8-10.873l-0-0.007c0-8.64 7.68-16.64 14.72-15.36 3.52 0.64 7.68 4.48 7.36 6.4-0.32 2.56-2.24 2.88-4.8 0.64-1.6-1.28-2.88-1.6-4.16-1.28-5.76 1.28-8 9.6-3.84 15.040 6.72 8.96 23.68 3.2 27.2-9.28 2.56-8.96-1.92-18.24-10.88-23.040-3.52-1.92-4.48-2.24-11.2-2.24-6.4 0-7.36 0-11.2 2.24-5.12 2.56-11.52 8.64-13.76 13.12-6.72 13.12-5.76 34.88 2.56 60.8 4.16 11.84 8.96 24 10.88 26.56 0.96 1.28 2.24 0.96 9.6-0.96zM527.68 771.2c3.84-8.32 9.92-26.88 12.16-37.12 3.2-14.080 3.52-28.16 1.28-37.44-2.363-8.892-8.301-16.085-16.142-20.078l-0.178-0.082c-2.868-1.624-6.299-2.581-9.953-2.581-0.326 0-0.651 0.008-0.973 0.023l0.046-0.002c-5.44 0-6.4 0-9.6 1.6-4.796 2.18-8.713 5.583-11.457 9.816l-0.063 0.104c-1.6 3.2-1.92 4.16-1.92 8.96 0 6.080 0.64 8 4.8 12.48 2.56 3.2 9.6 6.4 13.12 6.4 1.6 0 4.16-0.64 5.76-1.28 7.36-3.84 8.32-14.72 1.28-17.92-1.6-0.96-2.24-0.96-4.16 0l-2.56 1.92c0 0.32-0.64 0.64-1.6 0.64-2.24-0.32-2.24-3.52 0-5.76 4.16-4.16 10.88-3.84 15.68 0.96 4.8 5.12 5.76 11.52 3.2 17.6-2.796 6.243-8.954 10.513-16.11 10.513-1.092 0-2.161-0.099-3.198-0.29l0.108 0.016c-8.282-1.303-15.296-5.9-19.776-12.382l-0.064-0.098c-0.96-1.6-2.24-2.88-2.88-2.88s-3.2 4.8-6.4 11.2c-7.141 14.923-12.689 25.515-18.491 35.946l1.851-3.626c0 3.2 12.16 11.52 24.64 17.6 8.64 4.16 16.64 7.36 27.2 10.24 11.2 3.2 10.56 3.2 14.4-4.48zM96 710.4c0-8.96 1.6-16 5.12-23.36 5.12-11.2 14.4-17.6 26.88-19.2 5.12-0.96 7.040-0.64 16.32 1.6 1.28 0.32 1.6 0 1.6-0.64l-4.48-14.72c-15.532-45.643-25.344-98.318-27.176-153.014l-0.024-0.906-0.64-15.040-2.24-3.2c-2.705-4.516-6.648-8.047-11.361-10.176l-0.159-0.064c-4.299-2.115-9.357-3.353-14.704-3.353-1.132 0-2.252 0.055-3.356 0.164l0.14-0.011c-15.040 0.96-26.88 8.32-33.28 21.44-3.2 6.4-3.2 8-1.28 26.24 6.72 67.2 20.48 129.28 42.24 189.76 5.12 13.76 6.4 14.72 6.4 4.16zM82.56 648l-1.92-5.76 1.28-3.2c2.241-4.561 5.915-8.132 10.426-10.185l0.134-0.055c6.4-3.2 11.52-4.16 18.56-3.84 8 0.64 8.64 0.96 11.52 8.32l2.56 6.72-3.2-2.24c-3.2-3.84-6.4-4.48-14.72-3.84-5.926 0.169-11.35 2.186-15.751 5.491l0.071-0.051c-4.8 3.52-6.4 5.76-6.4 10.56l-0.64 4.16-1.92-6.080zM72 604.16c-0.442-1.722-0.695-3.698-0.695-5.734 0-0.572 0.020-1.139 0.059-1.701l-0.004 0.076c1.28-4.48 8.64-10.88 15.36-12.8 1.6-0.64 6.4-0.96 10.56-0.96 6.4 0 8.64 0 10.88 1.28 2.56 1.28 2.88 1.92 4.8 7.68l2.24 7.040c0 0.64-1.28-0.32-3.2-2.56-2.56-3.2-3.2-3.52-7.040-4.16-6.4-1.6-15.040-0.64-20.16 1.92-7.36 3.52-10.24 7.040-10.24 11.84 0 1.92 0 3.2-0.64 3.2s-1.28-2.24-1.92-5.12zM64 565.76l-0.96-7.040-0.64-4.8 4.48-4.16c3.2-3.2 5.76-4.8 8.96-6.080 8.32-3.2 25.28-1.92 28.16 1.6 0.96 0.96 3.84 13.76 3.2 14.080l-2.24-2.88c-2.88-4.16-5.44-5.12-13.76-5.76-0.965-0.117-2.081-0.184-3.214-0.184-5.573 0-10.767 1.619-15.139 4.412l0.113-0.068c-4.48 3.2-6.4 5.44-7.36 9.6l-1.28 3.52-0.64-2.24zM59.2 524.16l-0.96-7.040-0.32-4.16 3.2-3.52c6.080-7.040 16-9.92 26.88-8.64 6.4 0.96 10.88 2.56 12.48 4.16 1.28 1.28 4.16 14.72 3.2 14.72l-2.56-3.2c-3.2-5.12-6.4-6.4-17.6-6.4-8.32 0-8.96 0-13.12 2.24-4.8 2.24-8.96 6.080-8.96 8l-0.96 3.84-0.96 2.56-0.32-2.56zM552.64 712.96c22.366-59.811 38.551-129.269 45.498-201.428l0.262-3.372c0.96-11.2 0.96-12.8-2.24-19.52-7.36-14.72-26.24-23.040-43.52-19.52-8.216 1.785-15.015 6.805-19.126 13.628l-0.074 0.132c-1.92 3.2-2.24 4.48-2.24 10.56-1.565 60.354-12.338 117.678-30.96 171.332l1.2-3.972c-2.56 7.040-2.56 9.28-0.32 8.64l6.080-1.6c9.6-2.24 22.4 1.6 30.4 9.6 7.36 7.36 10.88 16.96 11.52 30.4 0.64 9.6 1.28 10.56 3.84 5.12zM560.32 649.6v-4.16l-3.84-4.16c-4.608-4.54-10.935-7.348-17.918-7.36l-0.002-0c-8.96-0.64-11.52 0-15.040 3.84-0.911 1.004-1.966 1.856-3.138 2.527l-0.062 0.033s4.16-11.52 5.44-12.8c3.2-3.84 19.2-3.2 27.2 0.64 4.16 2.24 8.96 7.040 10.56 10.56l1.6 3.2-1.6 5.76c-2.56 7.040-3.2 7.36-3.2 1.92zM571.2 608c-0.204-1.094-0.321-2.354-0.321-3.64 0-0.070 0-0.141 0.001-0.211l-0 0.011c0-2.56-2.56-5.44-6.72-8.32-4.777-2.729-10.499-4.338-16.597-4.338-2.624 0-5.178 0.298-7.631 0.862l0.228-0.044c-3.2 0.64-4.16 1.28-7.040 4.48l-3.2 3.2 1.28-4.16c2.88-9.6 3.2-10.24 6.4-11.52 6.4-2.56 17.92-2.24 25.6 0.96 3.2 1.6 8.64 6.4 10.56 9.6 1.28 3.2 1.28 3.2 0 8.64l-1.92 6.080-0.64-1.6zM580.16 565.12c-0.314-1.58-0.757-2.973-1.332-4.294l0.052 0.134c-2.452-3.338-5.691-5.961-9.451-7.621l-0.149-0.059c-4.16-2.24-4.48-2.24-12.8-2.24-11.2 0-13.76 1.28-17.6 8-1.28 2.24-0.96 0 0.32-6.4 1.28-4.48 2.24-7.040 3.2-7.68 4.48-3.52 19.2-4.16 27.2-1.28 5.12 1.92 9.6 5.76 11.84 9.28 1.6 2.88 1.6 3.2 0.96 8.64-0.32 3.2-0.96 5.76-1.28 6.080s-0.64-0.96-0.96-2.56zM586.24 526.72l-1.92-5.12c-1.28-4.16-1.6-4.8-5.76-7.36-5.44-3.52-9.92-4.8-18.88-4.16-9.6 0.64-12.8 1.92-15.68 6.4-1.28 1.92-2.24 3.2-2.24 2.56 0-2.24 2.24-12.8 2.88-13.76 0.96-1.28 8-3.52 12.8-4.48 6.4-0.96 13.76 0 19.2 2.88 4.8 1.92 9.6 6.72 10.56 9.6 0.018 0.57 0.029 1.241 0.029 1.914 0 3.96-0.36 7.837-1.048 11.598l0.060-0.392zM51.84 475.2c16-15.68 41.6-17.92 57.28-5.12 3.84 3.2 4.8 3.2 4.8-3.2 0-7.040 1.28-22.4 2.88-35.2 0.64-6.4 1.28-11.52 0.96-11.84l-8.32-1.28c-21.592-2.535-41.275-8.176-59.47-16.504l1.23 0.504c-5.12-2.88-6.4-2.56-7.040 0.64s-0.64 72.64 0 74.88c0.32 1.28 0.96 1.92 1.6 1.92s3.2-2.24 6.080-4.8zM600.64 475.52c0.64-5.12 0.64-63.36 0-69.76-0.32-4.8-0.64-4.8-2.24-4.8-0.96 0-5.76 1.92-10.56 3.84-15.36 6.4-32.96 11.2-51.2 13.76l-9.28 0.96v3.2l1.28 12.48 2.24 23.36c0.64 10.88 0.96 14.080 1.6 14.080s2.24-1.28 3.84-2.56c6.72-5.44 15.040-8 24.32-8 12.8 0 23.68 4.16 32.64 12.8 3.2 2.88 5.76 5.12 6.4 5.12s0.64-2.24 0.96-4.48zM119.040 415.040l2.56-12.16c6.386-36.295 20.079-68.545 39.556-96.461l-0.516 0.781c6.4-8.32 17.28-19.52 24-24.96 2.56-1.92 4.8-4.16 4.8-4.8s-3.2-3.2-9.28-6.72c-30.427-17.366-55.108-41.636-72.462-70.777l-0.498-0.903c-2.56 0-13.44 16.96-22.72 36.16-23.026 46.938-37.143 101.958-38.709 160.109l-0.011 0.531c0.64 1.6 9.92 6.080 21.12 9.92 20.48 7.68 50.24 12.8 52.16 9.6zM538.88 415.36c20.046-2.861 38.156-8.237 55.026-15.873l-1.266 0.513 7.36-3.52-0.32-7.040c-4.16-62.080-21.44-125.12-46.4-168.32-4.293-8.418-9.299-15.672-15.126-22.177l0.086 0.097c-17.609 29.551-41.97 53.399-71.045 69.901l-0.955 0.499-10.88 7.68c34.356 29.343 58.376 69.896 66.391 115.944l0.169 1.176 3.2 15.68c1.28 7.36 0.64 7.36 13.44 5.44zM39.040 385.92l2.24-15.040c5.249-68.635 27.196-131.222 61.747-184.933l-0.947 1.573c0.96-3.2-18.88-19.52-23.68-19.52-2.56 0-15.040 20.16-24.96 40.96-7.36 15.68-11.84 26.56-17.92 45.12-11.96 35.777-20.481 77.362-23.882 120.388l-0.118 1.852-0.32 4.48 8 1.28c4.48 0.64 10.24 1.92 13.12 2.88 6.4 1.92 6.080 1.92 6.72 0.96zM625.6 381.76l7.68-0.96 0.32-2.88c-3.415-53.549-14.859-103.451-33.16-149.901l1.16 3.341c-7.36-18.56-20.16-43.52-30.080-58.56-2.56-3.52-3.84-4.8-5.12-4.8-3.84 0-23.36 15.36-23.36 18.88l3.2 6.4c12.8 18.56 25.92 45.12 35.2 71.040 11.2 33.6 19.2 71.040 23.040 110.4 0.32 6.080 1.28 10.88 1.6 11.2s3.2 0 6.4-1.28l12.8-2.88zM462.4 268.8c28.16-17.28 51.2-38.4 64.64-58.56 2.24-3.84 5.44-8.96 6.4-11.52l2.24-4.48-3.2-3.84c-4.48-6.4-17.92-19.84-24.96-25.6-17.551-14.853-39.754-24.718-64.146-27.16l-0.494-0.040c-9.6-0.96-17.6-0.32-24.32 1.92-9.6 3.2-16 8.64-20.8 18.56-8 16-6.080 43.52 4.8 59.84 6.4 10.24 13.76 15.040 22.4 14.4 11.52-0.96 19.2-16 19.2-37.44 0-14.72-4.16-25.6-11.84-30.72-5.44-3.52-12.8-0.96-16.32 5.76-3.2 5.44-3.84 16.64-1.28 24.96 1.6 4.8 5.44 9.28 8.64 9.28 1.6 0 2.56-0.64 3.52-2.24 1.28-1.92 1.28-3.2 1.28-8.32 0-4.8-0.64-6.4-1.92-8-1.92-2.88-1.6-4.8 0.32-5.12 4.48-0.32 7.68 7.68 7.040 17.28-0.96 17.28-8.64 24-16.96 15.040-7.040-7.68-10.56-24-8.32-37.76 1.92-11.2 6.4-17.92 12.8-21.12 4.48-2.56 8.64-2.56 12.8 0 16.32 9.6 21.44 48.96 9.6 73.6-3.2 6.4-6.4 10.56-10.88 12.8-3.2 1.6-3.84 1.6-20.8 1.6-11.2 0-19.2-0.32-22.4-0.96-17.564-2.027-32.973-9.966-44.465-21.745l-0.015-0.015c-4.556-5.888-8.078-12.835-10.143-20.385l-0.097-0.415c-1.112-4.229-1.75-9.085-1.75-14.089 0-1.461 0.054-2.909 0.161-4.342l-0.011 0.191c-0.012-0.576-0.019-1.256-0.019-1.937 0-22.090 7.083-42.526 19.103-59.16l-0.204 0.297c5.12-7.040 16-17.28 22.4-21.44s6.72-5.44 1.92-7.68c-1.967-1.040-4.299-1.651-6.774-1.651-0.432 0-0.859 0.019-1.281 0.055l0.055-0.004c-6.483 0.221-12.37 2.601-17.007 6.438l0.047-0.038c-9.6 6.4-22.4 22.4-25.92 31.68-1.92 5.12-3.2 5.12-5.44-0.32-5.12-12.8-20.48-29.12-32.96-35.2-3.191-1.536-6.938-2.434-10.895-2.434-1.807 0-3.57 0.187-5.271 0.543l0.167-0.029c-2.88 0.64-6.4 3.2-6.4 4.16l6.4 4.48c7.68 5.12 18.56 16 23.68 24 16 23.68 22.080 57.6 14.4 80.32-3.2 8.96-5.44 13.12-12.48 19.84-6.4 6.4-11.84 9.92-20.16 13.12-13.44 5.44-26.24 7.36-46.080 6.72-12.8 0-14.72-0.32-17.28-1.6-16.96-7.68-24-49.6-12.16-73.92 2.465-5.448 6.305-9.905 11.085-13.049l0.115-0.071c7.36-3.52 16 0.64 20.8 9.92 9.28 17.92 2.24 51.2-10.88 53.76-1.92 0.32-2.56 0-4.8-2.24-7.040-7.040-8-27.2-1.6-32.96 3.2-3.2 5.44 0.64 2.56 4.48-1.28 1.6-1.6 2.88-1.6 7.68 0 7.040 1.6 10.24 4.8 10.24s5.76-2.24 8-6.72c1.6-3.2 1.92-5.12 2.24-11.52 0.32-12.16-2.24-18.56-8.32-21.76-4.16-1.92-7.36-1.92-10.56 0-8 5.44-11.84 15.68-11.84 31.36 0 10.88 1.6 18.24 4.8 24.96 4.16 8.32 8.96 12.16 16 12.16 12.8 0 24.64-14.72 28.8-35.2 1.92-8 1.92-23.68 0-30.080-2.47-11.222-9.501-20.454-19.005-25.819l-0.195-0.101c-5.76-3.2-10.88-4.16-21.12-3.84-28.16 0-54.4 10.88-79.040 32.96-8.32 7.36-21.44 22.4-21.44 24.32s4.16 9.6 8.96 16.96c10.88 16 26.88 31.68 47.68 46.4 9.6 6.72 25.6 16.64 26.88 16.64l10.24-4.48c19.52-9.6 36.48-13.44 57.28-12.8 13.44 0.32 19.2 1.28 40.64 6.72 21.12 5.44 21.44 5.44 41.6 0l22.4-4.8c9.6-1.92 27.2-2.56 36.16-1.28 14.4 1.6 31.68 7.040 44.16 14.080 3.2 1.6 6.080 2.88 6.4 2.56l10.24-5.76zM256.96 229.44c15.268-1.117 28.734-8.028 38.362-18.518l0.038-0.042c7.040-9.6 9.6-17.92 9.6-32 0.64-34.56-19.2-66.88-48.96-81.28-12.508-5.576-27.103-8.823-42.456-8.823-3.643 0-7.242 0.183-10.791 0.54l0.447-0.036c-42.334 3.557-79.435 23.441-105.441 53.254l-0.159 0.186c-8 8.96-16.32 19.52-16.32 21.12 0 0.64 1.92 2.24 5.12 4.48 3.2 1.92 8 6.080 11.52 8.96s6.4 5.76 7.040 5.76c0.64 0 2.24-1.6 3.84-3.52 19.494-25.753 47.13-44.44 79.032-52.279l0.968-0.201c9.92-1.92 26.88-2.56 33.6-0.96 13.76 3.2 24.32 11.52 30.72 24.96 7.68 15.68 8.64 34.24 2.88 53.12-2.24 6.4-5.76 13.76-9.28 18.56-2.56 3.84-2.88 5.76-0.96 6.72 1.6 0.96 3.84 0.96 11.52 0zM399.040 229.76c2.56-0.64 2.56-2.56-0.64-7.040-17.92-26.56-16.64-64.96 2.88-84.48 5.44-5.44 10.56-8.64 18.56-11.52 5.44-1.92 25.92-1.92 35.2 0 18.24 3.52 36.16 11.84 52.16 24 12.262 9.719 23.068 20.322 32.668 31.956l0.292 0.364c0.64 0 3.2-2.24 6.4-5.12 4.8-4.16 10.56-8.64 16.96-12.48 1.92-0.96 0.96-2.56-6.4-11.84-21.236-27.552-50.179-48.219-83.592-58.868l-1.208-0.332c-11.554-3.434-24.829-5.41-38.566-5.41-8.763 0-17.339 0.804-25.657 2.343l0.863-0.133c-39.583 8.429-68.844 43.096-68.844 84.598 0 0.971 0.016 1.939 0.048 2.903l-0.004-0.14c0 11.2 0 12.16 1.92 17.6 0.96 3.2 2.56 7.040 3.84 8.96 4.8 8.32 14.4 16 24.64 20.16 8.96 3.2 23.68 5.76 28.48 4.48zM327.040 111.040c13.44-23.36 32-35.84 48.64-33.28 5.76 0.96 12.48 3.84 16 7.040l2.88 2.56 4.16-1.28 12.16-2.56c3.33-0.426 6.354-1.326 9.146-2.639l-0.186 0.079c1.6-1.6-2.24-8-8.64-14.4-4.8-4.8-6.72-6.4-12.8-9.28-6.673-3.617-14.571-5.84-22.966-6.078l-0.074-0.002c-11.84-0.64-21.76 1.92-31.040 8-8.32 5.76-15.36 14.4-19.2 24l-2.56 4.48-1.92-3.2c-2.996-7.010-6.869-13.037-11.576-18.304l0.056 0.064c-6.4-6.4-14.080-11.2-22.72-13.44-6.72-1.92-21.44-1.92-28.8 0s-16 6.4-21.12 10.88c-4.8 4.16-10.88 12.16-11.52 15.68-0.32 2.24-0.32 2.24 6.72 3.2l11.84 2.88 7.36 1.92 3.2-2.56c5.372-4.443 12.33-7.138 19.919-7.138 0.873 0 1.738 0.036 2.593 0.106l-0.112-0.007c5.44 0.32 11.84 2.88 17.28 5.76 7.68 4.8 17.6 16 24.64 27.84 3.52 6.4 4.8 6.4 8.64-0.32zM325.76 72.64c5.12-8.64 12.16-15.36 21.76-20.48 6.4-3.2 6.4-4.16 1.92-6.72-2.88-1.6-4.16-1.6-8.96-1.6-7.040 0-11.2 1.6-15.36 5.76l-2.56 2.88-3.2-3.2c-3.795-3.47-8.833-5.636-14.375-5.76l-0.025-0c-6.4 0-13.76 3.2-12.8 5.44 0 0.64 3.2 2.24 6.080 3.84 6.72 3.2 15.040 10.88 19.52 17.92 4.16 6.4 5.44 6.4 8 1.92zM288 43.84c4.876-5.34 11.867-8.678 19.638-8.678 3.896 0 7.596 0.839 10.929 2.346l-0.167-0.068c4.16 1.6 4.48 1.6 7.040 0.32 10.88-4.8 22.4-2.88 30.72 5.44l3.52 3.84 4.8-0.96c1.885-0.166 3.622-0.621 5.227-1.322l-0.107 0.042c1.6-1.6-5.76-16-11.84-23.040-8.936-9.378-21.521-15.209-35.468-15.209-7.823 0-15.217 1.835-21.777 5.097l0.285-0.128c-10.24 5.12-21.12 17.92-24.64 28.8-1.28 4.48-0.96 4.8 3.2 5.76 5.12 0.96 5.76 0.96 8.64-2.24z"
261
+ "M1026.803 19.195l81.437-147.195c-19.359 18.143-28.799 23.839-47.039 36.159-98.461 67.582-219.641 83.677-341.365 183.802-82.557 67.966-120.732 166.459-120.732 166.459s110.845-124.796 278.487-186.618c67.614-25.055 114.78-38.815 149.211-52.222z",
262
+ "M983.349 98.297c-88.253 28.159-193.338 54.91-301.015 127.58-83.837 56.638-132.572 153.179-132.572 153.179s118.268-118.268 290.167-158.651l87.997-20.543 55.486-101.565zM885.112 281.459c-42.239 3.84-130.492 11.712-233.689 69.182-67.902 37.759-121.436 89.501-121.436 89.501l-0.16 0.32-0.096-0.064c-20.159 37.823-48.062 100.701-75.422 168.315l-136.092-248.408h-178.458l57.022 57.086v420.339l-57.022 56.958h195.194l-57.982-57.022v-326.39l127.452 228.153-40.223 132.316 41.055-47.999s33.279-158.555 164.539-314.23v332.566l-57.054 53.886h226.041l-49.15-57.086v-444.146c118.844-94.205 195.674-113.276 195.194-113.276z"
254
263
  ],
255
264
  "attrs": [
265
+ {
266
+ "fill": "rgb(108, 117, 125)"
267
+ },
256
268
  {
257
269
  "fill": "rgb(108, 117, 125)"
258
270
  }
259
271
  ],
260
- "width": 640,
261
272
  "grid": 0,
262
273
  "tags": [
263
- "wisconsin"
274
+ "george-mason"
264
275
  ],
265
276
  "colorPermutations": {
266
277
  "110811712512052052051255255255177186109189791": [
278
+ {
279
+ "f": 2
280
+ },
267
281
  {
268
282
  "f": 2
269
283
  }
270
284
  ]
271
285
  }
272
286
  },
287
+ {
288
+ "paths": [
289
+ "M842.667 1024h-408.889l-145.778-144v-108.444h-144l-144-144v-483.556l144-144h483.556l144 144v108.444h288v266.667h-71.111v360.889l-145.778 144zM442.667 1000.889h391.111l131.556-129.778v-373.333h71.111v-222.222h-288v-122.667l-129.778-129.778h-465.778l-129.778 129.778v464l131.556 129.778h156.444v124.444l131.556 129.778zM782.222 312.889v504.889h-288v-108.444h108.444l108.444-108.444v-144h-144v106.667h-71.111v-250.667h-218.667v144h71.111v106.667h-144v-359.111h360.889v108.444h145.778v-144l-108.444-108.444h-433.778l-108.444 108.444v432l108.444 108.444h179.556v144l110.222 108.444h359.111l110.222-108.444v-394.667h71.111v-144c-1.778-1.778-216.889-1.778-216.889-1.778z"
290
+ ],
291
+ "width": 1060,
292
+ "attrs": [
293
+ {
294
+ "fill": "rgb(108, 117, 125)"
295
+ }
296
+ ],
297
+ "colorPermutations": {
298
+ "110811712512052052051255255255177186109189791": [
299
+ {
300
+ "f": 2
301
+ }
302
+ ]
303
+ },
304
+ "tags": [
305
+ "university-of-colorado-boulder"
306
+ ],
307
+ "grid": 0
308
+ },
273
309
  {
274
310
  "paths": [
275
311
  "M804.571 530.286v182.857c0 90.89-73.681 164.571-164.571 164.571v0h-475.429c-90.89 0-164.571-73.681-164.571-164.571v0-475.429c0-90.89 73.681-164.571 164.571-164.571v0h402.286c10.24 0 18.286 8.046 18.286 18.286v36.571c0 10.099-8.187 18.286-18.286 18.286v0h-402.286c-50.495 0-91.429 40.934-91.429 91.429v0 475.429c0 50.495 40.934 91.429 91.429 91.429v0h475.429c50.495 0 91.429-40.934 91.429-91.429v0-182.857c0-10.24 8.046-18.286 18.286-18.286h36.571c10.24 0 18.286 8.046 18.286 18.286zM1024 36.571v292.571c0 20.198-16.374 36.571-36.571 36.571v0c-10.047-0.104-19.097-4.285-25.592-10.963l-0.008-0.008-100.571-100.571-372.663 372.663c-3.657 3.657-8.411 5.851-13.166 5.851s-9.509-2.56-13.166-5.851l-65.097-65.097c-3.657-3.657-5.486-8.411-5.486-13.166s2.194-9.874 5.486-13.166l372.663-372.663-100.571-100.571c-6.654-6.524-10.824-15.561-10.971-25.572l-0-0.028c0-20.198 16.374-36.571 36.571-36.571v0h292.571c20.198 0 36.571 16.374 36.571 36.571v0z"
@@ -2076,4 +2112,4 @@
2076
2112
  "historySize": 50
2077
2113
  },
2078
2114
  "IcoMoonType": "icon-set"
2079
- }
2115
+ }
@@ -0,0 +1,4 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
2
+ <path fill="#6c757d" d="M32.088 0.6l2.545-4.6c-0.605 0.567-0.9 0.745-1.47 1.13-3.077 2.112-6.864 2.615-10.668 5.744-2.58 2.124-3.773 5.202-3.773 5.202s3.464-3.9 8.703-5.832c2.113-0.783 3.587-1.213 4.663-1.632z"></path>
3
+ <path fill="#6c757d" d="M30.73 3.072c-2.758 0.88-6.042 1.716-9.407 3.987-2.62 1.77-4.143 4.787-4.143 4.787s3.696-3.696 9.068-4.958l2.75-0.642 1.734-3.174zM27.66 8.796c-1.32 0.12-4.078 0.366-7.303 2.162-2.122 1.18-3.795 2.797-3.795 2.797l-0.005 0.010-0.003-0.002c-0.63 1.182-1.502 3.147-2.357 5.26l-4.253-7.763h-5.577l1.782 1.784v13.136l-1.782 1.78h6.1l-1.812-1.782v-10.2l3.983 7.13-1.257 4.135 1.283-1.5s1.040-4.955 5.142-9.82v10.393l-1.783 1.684h7.064l-1.536-1.784v-13.88c3.714-2.944 6.115-3.54 6.1-3.54z"></path>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 152 152">
2
+ <path d="M89.818,3.455v38h10.364V76L53.545,3.455H3.455v38H13.818v69.091H3.455v38H62.182v-38H51.818V76l46.636,72.545h50.091v-38H138.182V41.455h10.364v-38ZM58.727,114v31.091H6.909V114H17.273V38H6.909V6.909H51.818l51.818,79.455V38H93.273V6.909h51.818V38H134.727v76h10.364v31.091H100.182L48.364,65.636V114Z" fill="#6c757d"></path>
3
+ <path d="M147.008,0H86.364V44.909H96.727V65.636L55.273,0H0V44.909H10.364v62.182H0V152H65.636V107.091H55.273V86.364L96.727,152H152V107.091H141.636V44.909H152V0Zm1.537,41.455H138.182v69.091h10.364v38H98.455L51.818,76v34.545H62.182v38H3.455v-38H13.818V41.455H3.455v-38H53.545L100.182,76V41.455H89.818v-38h58.727ZM103.636,86.364,51.818,6.909H6.909V38H17.273v76H6.909v31.091H58.727V114H48.364V65.636l51.818,79.455h44.909V114H134.727V38h10.364V6.909H93.273V38h10.364Z" fill="#6c757d"></path>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 246.005 217.375">
2
+ <path fill="#6c757d" d="m223.76,176.25l-39.62-60.16c28.72-11.67,43.32-29.88,43.32-54.14,0-17.61-6.99-31.95-21.43-43.84C191.2,6.08,171.06,0,146.13,0H0v41.14h16.35v135.11H0v41.13h107.09v-41.13h-16.9v-51.74h25.93l32.59,51.74h-17.74v41.13h115.03v-41.13h-22.24Zm16.57,35.45h-103.71v-29.8h22.29l-39.71-63.09h-34.71v63.09h16.94v29.8H5.67v-29.8h16.35V35.47H5.67V5.61h140.43c23.59,0,42.54,5.66,56.32,16.84,13.01,10.72,19.33,23.62,19.33,39.44,0,22.86-13.98,39.25-42.73,50.08l-3.47,1.3,45.17,68.63h19.61v29.8Z"/>
3
+ <path fill="#6c757d" d="m220.72,181.9l-45.17-68.63,3.47-1.3c28.75-10.83,42.73-27.22,42.73-50.08,0-15.82-6.32-28.72-19.33-39.44-13.78-11.18-32.73-16.84-56.32-16.84H5.67v29.86h16.35v146.43H5.67v29.8h95.76v-29.8h-16.94v-63.09h34.71l39.71,63.09h-22.29v29.8h103.71v-29.8h-19.61Zm-72.53-100.13l-.07.06c-7.4,5.78-18.3,8.71-32.43,8.71h-31.2v-55.07h38.5c12.04,0,21.34,3.36,27.68,9.94,2.28,2.24,4.09,4.93,5.29,7.9,1.21,2.97,1.79,6.16,1.71,9.36-.01,7.39-3.2,13.82-9.48,19.1Z"/>
4
+ <path fill="#6c757d" d="m155.96,53.31c-1.2-2.97-3.01-5.66-5.29-7.9-6.34-6.58-15.64-9.94-27.68-9.94h-38.5v55.07h31.2c14.13,0,25.03-2.93,32.43-8.71l.07-.06c6.28-5.28,9.47-11.71,9.48-19.1.08-3.2-.5-6.39-1.71-9.36Zm-11.32,24.07c-6.36,4.98-16.09,7.51-28.87,7.51h-25.58v-43.75h32.8c10.39,0,18.35,2.77,23.63,8.22l.08.08c1.76,1.72,3.13,3.79,4.05,6.06.91,2.28,1.35,4.73,1.27,7.18-.03,5.68-2.44,10.48-7.38,14.7Z"/>
5
+ </svg>
@@ -116,6 +116,8 @@ en:
116
116
  content: A Web Map Service displays a geospatial dataset as map images.
117
117
  blacklight:
118
118
  icon:
119
+ american-geographical-society-library-uwm-libraries: American Geographical Society Library - UWM Libraries
120
+ arizona: The University of Arizona
119
121
  arrow-circle-down: Arrow within a circle, pointing down
120
122
  baruch-cuny: Baruch College
121
123
  berkeley: University of California, Berkeley
@@ -125,6 +127,7 @@ en:
125
127
  cornell: Cornell University
126
128
  dvd-rom: DVD-Rom
127
129
  esri-globe: Esri Global
130
+ george-mason: George Mason University
128
131
  harvard: Harvard University
129
132
  illinois: University of Illinois
130
133
  indiana: Indiana University
@@ -139,6 +142,7 @@ en:
139
142
  multilinestring: Multi-line string
140
143
  multipoint: Multi-point
141
144
  multipolygon: Multi-polygon
145
+ nebraska: University of Nebraska
142
146
  nyu: New York University
143
147
  ohio-state: The Ohio State University
144
148
  penn-state: Penn State University
@@ -146,6 +150,7 @@ en:
146
150
  public: Public content
147
151
  purdue: Purdue University
148
152
  restricted: Restricted content
153
+ rutgers: Rutgers University
149
154
  sms: SMS
150
155
  stanford: Stanford University
151
156
  texas: The University of Texas at Austin
@@ -22,11 +22,10 @@ Gem::Specification.new do |spec|
22
22
  spec.add_dependency 'rails', '>= 5.2.4', '< 7.1'
23
23
  spec.add_dependency 'blacklight', '~> 7.8'
24
24
  spec.add_dependency 'config'
25
- spec.add_dependency 'faraday', '~> 1.0'
26
- spec.add_dependency 'faraday_middleware', '~> 1.0.0.rc1'
25
+ spec.add_dependency 'faraday', '>= 1.0'
27
26
  spec.add_dependency 'coderay'
28
27
  spec.add_dependency 'deprecation'
29
- spec.add_dependency 'geo_combine', '~> 0.4'
28
+ spec.add_dependency 'geo_combine', '~> 0.8'
30
29
  spec.add_dependency 'mime-types'
31
30
  spec.add_dependency 'handlebars_assets'
32
31
  spec.add_dependency 'rgeo-geojson'
@@ -3,7 +3,6 @@ require 'blacklight'
3
3
  require 'coderay'
4
4
  require 'config'
5
5
  require 'faraday'
6
- require 'faraday_middleware'
7
6
  require 'geoblacklight/version'
8
7
  require 'nokogiri'
9
8
  require 'mime/types'
@@ -0,0 +1,176 @@
1
+ # frozen_string_literal: true
2
+ # :nocov:
3
+ require 'faraday'
4
+ require 'set'
5
+
6
+ module Geoblacklight
7
+ # NOTE: We copied this class from faraday_middleware in order to support
8
+ # both Faraday 1 & 2. If this middleware is ever extracted from
9
+ # faraday_middleware into its own gem we should remove this and use that
10
+ # instead.
11
+ module FaradayMiddleware
12
+ # Exception thrown when the maximum amount of requests is
13
+ # exceeded.
14
+ class RedirectLimitReached < ::Faraday::ClientError
15
+ attr_reader :response
16
+
17
+ def initialize(response)
18
+ super "too many redirects; last one to: #{response['location']}"
19
+ @response = response
20
+ end
21
+ end
22
+
23
+ # Public: Follow HTTP 301, 302, 303, 307, and 308 redirects.
24
+ #
25
+ # For HTTP 301, 302, and 303, the original GET, POST, PUT, DELETE, or PATCH
26
+ # request gets converted into a GET. With `:standards_compliant => true`,
27
+ # however, the HTTP method after 301/302 remains unchanged. This allows you
28
+ # to opt into HTTP/1.1 compliance and act unlike the major web browsers.
29
+ #
30
+ # This middleware currently only works with synchronous requests; i.e. it
31
+ # doesn't support parallelism.
32
+ #
33
+ # If you wish to persist cookies across redirects, you could use
34
+ # the faraday-cookie_jar gem:
35
+ #
36
+ # Faraday.new(:url => url) do |faraday|
37
+ # faraday.use FaradayMiddleware::FollowRedirects
38
+ # faraday.use :cookie_jar
39
+ # faraday.adapter Faraday.default_adapter
40
+ # end
41
+ #
42
+ class FollowRedirects < ::Faraday::Middleware
43
+ # HTTP methods for which 30x redirects can be followed
44
+ ALLOWED_METHODS = Set.new [:head, :options, :get, :post, :put, :patch, :delete]
45
+ # HTTP redirect status codes that this middleware implements
46
+ REDIRECT_CODES = Set.new [301, 302, 303, 307, 308]
47
+ # Keys in env hash which will get cleared between requests
48
+ ENV_TO_CLEAR = Set.new [:status, :response, :response_headers]
49
+
50
+ # Default value for max redirects followed
51
+ FOLLOW_LIMIT = 3
52
+
53
+ # Regex that matches characters that need to be escaped in URLs, sans
54
+ # the "%" character which we assume already represents an escaped sequence.
55
+ URI_UNSAFE = %r{[^\-_.!~*'()a-zA-Z\d;/?:@&=+$,\[\]%]}.freeze
56
+
57
+ AUTH_HEADER = 'Authorization'
58
+
59
+ # Public: Initialize the middleware.
60
+ #
61
+ # options - An options Hash (default: {}):
62
+ # :limit - A Numeric redirect limit (default: 3)
63
+ # :standards_compliant - A Boolean indicating whether to respect
64
+ # the HTTP spec when following 301/302
65
+ # (default: false)
66
+ # :callback - A callable used on redirects
67
+ # with the old and new envs
68
+ # :cookies - An Array of Strings (e.g.
69
+ # ['cookie1', 'cookie2']) to choose
70
+ # cookies to be kept, or :all to keep
71
+ # all cookies (default: []).
72
+ # :clear_authorization_header - A Boolean indicating whether the request
73
+ # Authorization header should be cleared on
74
+ # redirects (default: true)
75
+ def initialize(app, options = {})
76
+ super(app)
77
+ @options = options
78
+
79
+ @convert_to_get = Set.new [303]
80
+ @convert_to_get << 301 << 302 unless standards_compliant?
81
+ end
82
+
83
+ def call(env)
84
+ perform_with_redirection(env, follow_limit)
85
+ end
86
+
87
+ private
88
+
89
+ def convert_to_get?(response)
90
+ [:head, :options].exclude?(response.env[:method]) &&
91
+ @convert_to_get.include?(response.status)
92
+ end
93
+
94
+ def perform_with_redirection(env, follows)
95
+ request_body = env[:body]
96
+ response = @app.call(env)
97
+
98
+ response.on_complete do |response_env|
99
+ if follow_redirect?(response_env, response)
100
+ fail RedirectLimitReached, response if follows.zero?
101
+
102
+ new_request_env = update_env(response_env.dup, request_body, response)
103
+ callback&.call(response_env, new_request_env)
104
+ response = perform_with_redirection(new_request_env, follows - 1)
105
+ end
106
+ end
107
+ response
108
+ end
109
+
110
+ def update_env(env, request_body, response)
111
+ redirect_from_url = env[:url].to_s
112
+ redirect_to_url = safe_escape(response['location'] || '')
113
+ env[:url] += redirect_to_url
114
+
115
+ ENV_TO_CLEAR.each { |key| env.delete key }
116
+
117
+ if convert_to_get?(response)
118
+ env[:method] = :get
119
+ env[:body] = nil
120
+ else
121
+ env[:body] = request_body
122
+ end
123
+
124
+ clear_authorization_header(env, redirect_from_url, redirect_to_url)
125
+
126
+ env
127
+ end
128
+
129
+ def follow_redirect?(env, response)
130
+ ALLOWED_METHODS.include?(env[:method]) &&
131
+ REDIRECT_CODES.include?(response.status)
132
+ end
133
+
134
+ def follow_limit
135
+ @options.fetch(:limit, FOLLOW_LIMIT)
136
+ end
137
+
138
+ def standards_compliant?
139
+ @options.fetch(:standards_compliant, false)
140
+ end
141
+
142
+ def callback
143
+ @options[:callback]
144
+ end
145
+
146
+ # Internal: escapes unsafe characters from an URL which might be a path
147
+ # component only or a fully qualified URI so that it can be joined onto an
148
+ # URI:HTTP using the `+` operator. Doesn't escape "%" characters so to not
149
+ # risk double-escaping.
150
+ def safe_escape(uri)
151
+ uri = uri.split('#')[0] # we want to remove the fragment if present
152
+ uri.to_s.gsub(URI_UNSAFE) do |match|
153
+ "%#{match.unpack('H2' * match.bytesize).join('%').upcase}"
154
+ end
155
+ end
156
+
157
+ def clear_authorization_header(env, from_url, to_url)
158
+ return env if redirect_to_same_host?(from_url, to_url)
159
+ return env unless @options.fetch(:clear_authorization_header, true)
160
+
161
+ env[:request_headers].delete(AUTH_HEADER)
162
+ end
163
+
164
+ def redirect_to_same_host?(from_url, to_url)
165
+ return true if to_url.start_with?('/')
166
+
167
+ from_uri = URI.parse(from_url)
168
+ to_uri = URI.parse(to_url)
169
+
170
+ [from_uri.scheme, from_uri.host, from_uri.port] ==
171
+ [to_uri.scheme, to_uri.host, to_uri.port]
172
+ end
173
+ end
174
+ end
175
+ end
176
+ # :nocov:
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require 'geoblacklight/faraday_middleware/follow_redirects'
2
3
  module Geoblacklight
3
4
  module Metadata
4
5
  ##
@@ -47,7 +48,7 @@ module Geoblacklight
47
48
  # connection error
48
49
  def retrieve_metadata
49
50
  connection = Faraday.new(url: @reference.endpoint) do |conn|
50
- conn.use FaradayMiddleware::FollowRedirects
51
+ conn.use Geoblacklight::FaradayMiddleware::FollowRedirects
51
52
  conn.adapter Faraday.default_adapter
52
53
  end
53
54
  begin
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Geoblacklight
3
- VERSION = '3.7.0'
3
+ VERSION = '3.8.0'
4
4
  end
@@ -27,6 +27,24 @@ describe Geoblacklight::Metadata::Base do
27
27
  end
28
28
  end
29
29
 
30
+ context "when there's a redirect" do
31
+ before do
32
+ allow(Faraday).to receive(:new).and_call_original
33
+ WebMock.disable_net_connect!(allow_localhost: true, allow: 'chromedriver.storage.googleapis.com')
34
+ stub_request(:get, 'http://purl.stanford.edu/cg357zz0321.mods').to_return(status: 301, headers: { location: 'https://purl.stanford.edu/cg357zz0321.mods' })
35
+ stub_request(:get, 'https://purl.stanford.edu/cg357zz0321.mods').to_return(status: 200, headers: { 'content-type' => 'application/xml' }, body: '<test>data</test>')
36
+ end
37
+
38
+ after do
39
+ WebMock.allow_net_connect!(net_http_connect_on_start: true)
40
+ end
41
+
42
+ it 'follows the redirect' do
43
+ expect(metadata.document).to be_a Nokogiri::XML::Document
44
+ expect(metadata.document.text).to eq 'data'
45
+ end
46
+ end
47
+
30
48
  context 'when attempts to connect to an endpoint URL fail' do
31
49
  subject { metadata.document }
32
50
 
data/spec/spec_helper.rb CHANGED
@@ -16,6 +16,7 @@ SimpleCov.start 'rails' do
16
16
  add_filter 'lib/tasks/geoblacklight.rake'
17
17
  add_filter '/spec'
18
18
  add_filter '.internal_test_app/'
19
+ minimum_coverage 100
19
20
  end
20
21
 
21
22
  require 'factory_bot'
@@ -1,2 +1,3 @@
1
1
  gem 'sprockets', '< 4'
2
2
  gem 'view_component', '!= 2.26.0'
3
+ gem 'faraday', ENV["FARADAY_VERSION"].to_s != "" ? ENV["FARADAY_VERSION"] : '>= 1.0'
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: 3.7.0
4
+ version: 3.8.0
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-06-23 00:00:00.000000000 Z
14
+ date: 2023-04-07 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -65,30 +65,16 @@ dependencies:
65
65
  name: faraday
66
66
  requirement: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - "~>"
68
+ - - ">="
69
69
  - !ruby/object:Gem::Version
70
70
  version: '1.0'
71
71
  type: :runtime
72
72
  prerelease: false
73
73
  version_requirements: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - "~>"
75
+ - - ">="
76
76
  - !ruby/object:Gem::Version
77
77
  version: '1.0'
78
- - !ruby/object:Gem::Dependency
79
- name: faraday_middleware
80
- requirement: !ruby/object:Gem::Requirement
81
- requirements:
82
- - - "~>"
83
- - !ruby/object:Gem::Version
84
- version: 1.0.0.rc1
85
- type: :runtime
86
- prerelease: false
87
- version_requirements: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: 1.0.0.rc1
92
78
  - !ruby/object:Gem::Dependency
93
79
  name: coderay
94
80
  requirement: !ruby/object:Gem::Requirement
@@ -123,14 +109,14 @@ dependencies:
123
109
  requirements:
124
110
  - - "~>"
125
111
  - !ruby/object:Gem::Version
126
- version: '0.4'
112
+ version: '0.8'
127
113
  type: :runtime
128
114
  prerelease: false
129
115
  version_requirements: !ruby/object:Gem::Requirement
130
116
  requirements:
131
117
  - - "~>"
132
118
  - !ruby/object:Gem::Version
133
- version: '0.4'
119
+ version: '0.8'
134
120
  - !ruby/object:Gem::Dependency
135
121
  name: mime-types
136
122
  requirement: !ruby/object:Gem::Requirement
@@ -378,8 +364,7 @@ email:
378
364
  - drh@stanford.edu
379
365
  - eliotj@princeton.edu
380
366
  - pjreed@stanford.edu
381
- executables:
382
- - coverage.rb
367
+ executables: []
383
368
  extensions: []
384
369
  extra_rdoc_files: []
385
370
  files:
@@ -399,6 +384,8 @@ files:
399
384
  - LICENSE.txt
400
385
  - README.md
401
386
  - Rakefile
387
+ - app/assets/images/blacklight/american-geographical-society-library-uwm-libraries.svg
388
+ - app/assets/images/blacklight/arizona.svg
402
389
  - app/assets/images/blacklight/arrow-circle-down.svg
403
390
  - app/assets/images/blacklight/baruch-cuny.svg
404
391
  - app/assets/images/blacklight/berkeley.svg
@@ -414,6 +401,7 @@ files:
414
401
  - app/assets/images/blacklight/email.svg
415
402
  - app/assets/images/blacklight/esri-globe.svg
416
403
  - app/assets/images/blacklight/geoblacklight-icons.json
404
+ - app/assets/images/blacklight/george-mason.svg
417
405
  - app/assets/images/blacklight/globe.svg
418
406
  - app/assets/images/blacklight/harvard.svg
419
407
  - app/assets/images/blacklight/home.svg
@@ -439,6 +427,7 @@ files:
439
427
  - app/assets/images/blacklight/multilinestring.svg
440
428
  - app/assets/images/blacklight/multipoint.svg
441
429
  - app/assets/images/blacklight/multipolygon.svg
430
+ - app/assets/images/blacklight/nebraska.svg
442
431
  - app/assets/images/blacklight/nyu.svg
443
432
  - app/assets/images/blacklight/ohio-state.svg
444
433
  - app/assets/images/blacklight/pagelines-brands.svg
@@ -454,6 +443,7 @@ files:
454
443
  - app/assets/images/blacklight/purdue.svg
455
444
  - app/assets/images/blacklight/raster.svg
456
445
  - app/assets/images/blacklight/restricted.svg
446
+ - app/assets/images/blacklight/rutgers.svg
457
447
  - app/assets/images/blacklight/sms.svg
458
448
  - app/assets/images/blacklight/stanford.svg
459
449
  - app/assets/images/blacklight/table.svg
@@ -594,7 +584,6 @@ files:
594
584
  - app/views/relation/index.json.jbuilder
595
585
  - app/views/shared/_header_navbar.html.erb
596
586
  - babel.config.json
597
- - bin/coverage.rb
598
587
  - config/initializers/new_gbl_settings_defaults_3_3.yml
599
588
  - config/initializers/new_gbl_settings_defaults_3_4.yml
600
589
  - config/initializers/rails_config.rb
@@ -626,6 +615,7 @@ files:
626
615
  - lib/geoblacklight/download/shapefile_download.rb
627
616
  - lib/geoblacklight/engine.rb
628
617
  - lib/geoblacklight/exceptions.rb
618
+ - lib/geoblacklight/faraday_middleware/follow_redirects.rb
629
619
  - lib/geoblacklight/geometry.rb
630
620
  - lib/geoblacklight/item_viewer.rb
631
621
  - lib/geoblacklight/metadata.rb
@@ -865,7 +855,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
865
855
  - !ruby/object:Gem::Version
866
856
  version: 2.5.2
867
857
  requirements: []
868
- rubygems_version: 3.2.32
858
+ rubygems_version: 3.2.22
869
859
  signing_key:
870
860
  specification_version: 4
871
861
  summary: A discovery platform for geospatial holdings
data/bin/coverage.rb DELETED
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
- # Borrowed from https://github.com/pulibrary/figgy/blob/master/scripts/combine_coverage.rb
3
- require 'active_support/inflector'
4
- require 'simplecov'
5
-
6
- class SimpleCovHelper
7
- def self.report_coverage(base_dir: './coverage_results')
8
- min_cov = ENV['MINIMUM_COVERAGE'] || 100
9
- SimpleCov.configure do
10
- minimum_coverage(min_cov.to_i)
11
- end
12
- new(base_dir: base_dir).merge_results
13
- end
14
-
15
- attr_reader :base_dir
16
-
17
- def initialize(base_dir:)
18
- @base_dir = base_dir
19
- end
20
-
21
- def all_results
22
- Dir["#{base_dir}/.resultset*.json"]
23
- end
24
-
25
- def merge_results
26
- results = all_results.map { |file| SimpleCov::Result.from_hash(JSON.parse(File.read(file))) }
27
- results = SimpleCov::ResultMerger.merge_results(*results)
28
- results.format!
29
- covered_percent = results.covered_percent.round(2)
30
- return unless covered_percent < SimpleCov.minimum_coverage
31
- $stderr.printf("Coverage (%.2f%%) is below the expected minimum coverage (%.2f%%).\n", covered_percent, SimpleCov.minimum_coverage)
32
- Kernel.exit SimpleCov::ExitCodes::MINIMUM_COVERAGE
33
- end
34
- end
35
-
36
- SimpleCovHelper.report_coverage