orcid_client 0.2.3 → 0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +120 -43
- data/lib/orcid_client/api.rb +1 -1
- data/lib/orcid_client/author.rb +2 -49
- data/lib/orcid_client/date.rb +3 -3
- data/lib/orcid_client/external_identifier.rb +1 -1
- data/lib/orcid_client/notification.rb +3 -5
- data/lib/orcid_client/version.rb +1 -1
- data/lib/orcid_client/work.rb +23 -28
- data/lib/orcid_client.rb +2 -0
- data/orcid_client.gemspec +5 -4
- data/resources/{common_2.0_rc3/common-2.0_rc3.xsd → common_2.0/common-2.0.xsd} +68 -49
- data/resources/{common_2.0_rc3/samples/common-2.0_rc3.xml → common_2.0/samples/common-2.0.xml} +1 -1
- data/resources/notification_2.0/README.md +123 -0
- data/resources/notification_2.0/notification-custom-2.0.xsd +38 -0
- data/resources/notification_2.0/notification-permission-2.0.xsd +134 -0
- data/resources/{notification_2.0_rc3/samples/notification-custom-2.0_rc3.xml → notification_2.0/samples/notification-custom-2.0.xml} +3 -3
- data/resources/{notification_2.0_rc3/samples/notification-permission-2.0_rc3.xml → notification_2.0/samples/notification-permission-2.0.xml} +2 -2
- data/resources/record_2.0/README.md +304 -0
- data/resources/{record_2.0_rc3/activities-2.0_rc3.xsd → record_2.0/activities-2.0.xsd} +79 -46
- data/resources/{record_2.0_rc3/address-2.0_rc3.xsd → record_2.0/address-2.0.xsd} +1 -1
- data/resources/{record_2.0_rc3/bulk-2.0_rc3.xsd → record_2.0/bulk-2.0.xsd} +12 -12
- data/resources/{record_2.0_rc3/education-2.0_rc3.xsd → record_2.0/education-2.0.xsd} +5 -5
- data/resources/{record_2.0_rc3/email-2.0_rc3.xsd → record_2.0/email-2.0.xsd} +3 -1
- data/resources/{record_2.0_rc3/employment-2.0_rc3.xsd → record_2.0/employment-2.0.xsd} +5 -5
- data/resources/{record_2.0_rc3/error-2.0_rc3.xsd → record_2.0/error-2.0.xsd} +0 -0
- data/resources/{record_2.0_rc3/funding-2.0_rc3.xsd → record_2.0/funding-2.0.xsd} +5 -49
- data/resources/{record_2.0_rc3/history-2.0_rc3.xsd → record_2.0/history-2.0.xsd} +1 -1
- data/resources/{record_2.0_rc3/keyword-2.0_rc3.xsd → record_2.0/keyword-2.0.xsd} +2 -2
- data/resources/{record_2.0_rc3/other-name-2.0_rc3.xsd → record_2.0/other-name-2.0.xsd} +2 -2
- data/resources/{record_2.0_rc3/peer-review-2.0_rc3.xsd → record_2.0/peer-review-2.0.xsd} +4 -4
- data/resources/record_2.0/peer-review-guide-v2.0.md +131 -0
- data/resources/{record_2.0_rc3/person-2.0_rc3.xsd → record_2.0/person-2.0.xsd} +8 -21
- data/resources/{record_2.0_rc3/person-external-identifier-2.0_rc3.xsd → record_2.0/person-external-identifier-2.0.xsd} +1 -1
- data/resources/{record_2.0_rc3/personal-details-2.0_rc3.xsd → record_2.0/personal-details-2.0.xsd} +5 -7
- data/resources/{record_2.0_rc3/preferences-2.0_rc3.xsd → record_2.0/preferences-2.0.xsd} +1 -1
- data/resources/{record_2.0_rc3/record-2.0_rc3.xsd → record_2.0/record-2.0.xsd} +16 -23
- data/resources/{record_2.0_rc3/researcher-url-2.0_rc3.xsd → record_2.0/researcher-url-2.0.xsd} +2 -2
- data/resources/{record_2.0_rc3/samples/activities-2.0_rc3.xml → record_2.0/samples/read_samples/activities-2.0.xml} +24 -12
- data/resources/{record_2.0_rc3/samples/address-2.0_rc3.xml → record_2.0/samples/read_samples/address-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/addresses-2.0_rc3.xml → record_2.0/samples/read_samples/addresses-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/biography-2.0_rc3.xml → record_2.0/samples/read_samples/biography-2.0.xml} +2 -2
- data/resources/record_2.0/samples/read_samples/bulk-work-error.xml +45 -0
- data/resources/{record_2.0_rc3/samples/credit-name-2.0_rc3.xml → record_2.0/samples/read_samples/credit-name-2.0.xml} +2 -2
- data/resources/{record_2.0_rc3/samples/education-full-2.0_rc3.xml → record_2.0/samples/read_samples/education-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/education-2.0_rc3.xml → record_2.0/samples/read_samples/education-full-2.0.xml} +12 -2
- data/resources/record_2.0/samples/read_samples/educations-2.0.xml +52 -0
- data/resources/{record_2.0_rc3/samples/email-2.0_rc3.xml → record_2.0/samples/read_samples/email-2.0.xml} +2 -2
- data/resources/{record_2.0_rc3/samples/emails-2.0_rc3.xml → record_2.0/samples/read_samples/emails-2.0.xml} +3 -3
- data/resources/{record_2.0_rc3/samples/employment-full-2.0_rc3.xml → record_2.0/samples/read_samples/employment-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/employment-2.0_rc3.xml → record_2.0/samples/read_samples/employment-full-2.0.xml} +14 -4
- data/resources/record_2.0/samples/read_samples/employments-2.0.xml +52 -0
- data/resources/{record_2.0_rc3/samples/error-2.0_rc3.xml → record_2.0/samples/read_samples/error-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/external-identifier-2.0_rc3.xml → record_2.0/samples/read_samples/external-identifier-2.0.xml} +3 -2
- data/resources/{record_2.0_rc3/samples/external-identifiers-2.0_rc3.xml → record_2.0/samples/read_samples/external-identifiers-2.0.xml} +5 -3
- data/resources/{record_2.0_rc3/samples/funding-full-2.0_rc3.xml → record_2.0/samples/read_samples/funding-2.0.xml} +2 -2
- data/resources/{record_2.0_rc3/samples/funding-2.0_rc3.xml → record_2.0/samples/read_samples/funding-full-2.0.xml} +13 -3
- data/resources/record_2.0/samples/read_samples/fundings-2.0.xml +138 -0
- data/resources/{record_2.0_rc3/samples/history-2.0_rc3.xml → record_2.0/samples/read_samples/history-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/keyword-2.0_rc3.xml → record_2.0/samples/read_samples/keyword-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/keywords-2.0_rc3.xml → record_2.0/samples/read_samples/keywords-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/name-2.0_rc3.xml → record_2.0/samples/read_samples/name-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/other-name-2.0_rc3.xml → record_2.0/samples/read_samples/other-name-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/other-names-2.0_rc3.xml → record_2.0/samples/read_samples/other-names-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/peer-review-full-2.0_rc3.xml → record_2.0/samples/read_samples/peer-review-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/peer-review-2.0_rc3.xml → record_2.0/samples/read_samples/peer-review-full-2.0.xml} +18 -8
- data/resources/record_2.0/samples/read_samples/peer-reviews-2.0.xml +73 -0
- data/resources/{record_2.0_rc3/samples/person-2.0_rc3.xml → record_2.0/samples/read_samples/person-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/personal-details-2.0_rc3.xml → record_2.0/samples/read_samples/personal-details-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/preferences-2.0_rc3.xml → record_2.0/samples/read_samples/preferences-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/record-2.0_rc3.xml → record_2.0/samples/read_samples/record-2.0.xml} +73 -85
- data/resources/{record_2.0_rc3/samples/researcher-url-2.0_rc3.xml → record_2.0/samples/read_samples/researcher-url-2.0.xml} +1 -1
- data/resources/{record_2.0_rc3/samples/researcher-urls-2.0_rc3.xml → record_2.0/samples/read_samples/researcher-urls-2.0.xml} +1 -1
- data/resources/record_2.0/samples/read_samples/search-2.0.xml +14 -0
- data/resources/{record_2.0_rc3/samples/work-full-2.0_rc3.xml → record_2.0/samples/read_samples/work-2.0.xml} +5 -5
- data/resources/{record_2.0_rc3/samples/work-2.0_rc3.xml → record_2.0/samples/read_samples/work-full-2.0.xml} +14 -4
- data/resources/record_2.0/samples/read_samples/works-2.0.xml +146 -0
- data/resources/record_2.0/samples/write_sample/address-2.0.xml +6 -0
- data/resources/{record_2.0_rc3/samples/bulk-work-2.0_rc3.json → record_2.0/samples/write_sample/bulk-work-2.0.json} +55 -55
- data/resources/{record_2.0_rc3/samples/bulk-work-2.0_rc3.xml → record_2.0/samples/write_sample/bulk-work-2.0.xml} +18 -11
- data/resources/record_2.0/samples/write_sample/education-2.0.xml +30 -0
- data/resources/record_2.0/samples/write_sample/employment-2.0.xml +30 -0
- data/resources/record_2.0/samples/write_sample/external-identifier-2.0.xml +11 -0
- data/resources/record_2.0/samples/write_sample/funding-2.0.xml +44 -0
- data/resources/record_2.0/samples/write_sample/keyword-2.0.xml +7 -0
- data/resources/record_2.0/samples/write_sample/other-name-2.0.xml +6 -0
- data/resources/record_2.0/samples/write_sample/peer-review-full-2.0.xml +48 -0
- data/resources/record_2.0/samples/write_sample/peer-review-simple-2.0.xml +32 -0
- data/resources/record_2.0/samples/write_sample/researcher-url-2.0.xml +7 -0
- data/resources/record_2.0/samples/write_sample/work-full-2.0.xml +54 -0
- data/resources/record_2.0/samples/write_sample/work-simple-2.0.xml +18 -0
- data/resources/{record_2.0_rc3/search-2.0_rc3.xsd → record_2.0/search-2.0.xsd} +6 -26
- data/resources/{record_2.0_rc3/work-2.0_rc3.xsd → record_2.0/work-2.0.xsd} +8 -129
- data/spec/api_spec.rb +3 -3
- data/spec/external_identifier_spec.rb +2 -2
- data/spec/fixtures/external_identifier.xml +1 -1
- data/spec/fixtures/vcr_cassettes/OrcidClient/external_identifier/delete/should_delete_external_identifier.yml +17 -5
- data/spec/fixtures/vcr_cassettes/OrcidClient/external_identifier/post/should_create_external_identifier.yml +19 -7
- data/spec/fixtures/vcr_cassettes/OrcidClient/notifications/delete/should_delete_notification.yml +19 -6
- data/spec/fixtures/vcr_cassettes/OrcidClient/notifications/get/should_get_notification.yml +20 -6
- data/spec/fixtures/vcr_cassettes/OrcidClient/notifications/post/should_create_notification.yml +90 -25
- data/spec/fixtures/vcr_cassettes/OrcidClient/works/delete/should_delete_work.yml +17 -5
- data/spec/fixtures/vcr_cassettes/OrcidClient/works/get/should_get_works.yml +554 -543
- data/spec/fixtures/vcr_cassettes/OrcidClient/works/post/should_create_work.yml +90 -25
- data/spec/fixtures/vcr_cassettes/OrcidClient/works/put/should_update_work.yml +99 -28
- data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/data.yml +72 -17
- data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_data.yml +70 -17
- data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_item_type_work.yml +72 -14
- data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/literal.yml +72 -20
- data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/multiple_titles.yml +72 -20
- data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/valid.yml +72 -23
- data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/with_ORCID_IDs.yml +75 -133
- data/spec/fixtures/vcr_cassettes/OrcidClient_Work/data.yml +72 -23
- data/spec/fixtures/vcr_cassettes/OrcidClient_Work/publication_date.yml +72 -23
- data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_ORCID_IDs_for_contributors.yml +75 -133
- data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_data.yml +72 -23
- data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_work_type_data-set.yml +72 -20
- data/spec/fixtures/work.xml +4 -2
- data/spec/notification_spec.rb +4 -4
- data/spec/work_spec.rb +6 -6
- metadata +122 -80
- data/lib/orcid_client/metadata.rb +0 -128
- data/resources/notification_2.0_rc3/notification-custom-2.0_rc3.xsd +0 -32
- data/resources/notification_2.0_rc3/notification-permission-2.0_rc3.xsd +0 -128
- data/resources/record_2.0_rc3/deprecated-2.0_rc3.xsd +0 -80
- data/resources/record_2.0_rc3/internal-2.0_rc3.xsd +0 -199
- data/resources/record_2.0_rc3/samples/deprecated-2.0_rc3.xml +0 -13
- data/resources/record_2.0_rc3/samples/search-2.0_rc3.xml +0 -368
- data/spec/fixtures/vcr_cassettes/OrcidClient_Work/citation.yml +0 -50
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: orcid_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.3'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Fenner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: maremma
|
@@ -16,19 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '3.
|
19
|
+
version: '3.5'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.5.7
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - "~>"
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: '3.
|
29
|
+
version: '3.5'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.5.7
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: bolognese
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: 0.9.26
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - "~>"
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 0.9.26
|
27
47
|
- !ruby/object:Gem::Dependency
|
28
48
|
name: nokogiri
|
29
49
|
requirement: !ruby/object:Gem::Requirement
|
30
50
|
requirements:
|
31
51
|
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.6'
|
54
|
+
- - ">="
|
32
55
|
- !ruby/object:Gem::Version
|
33
56
|
version: 1.6.8
|
34
57
|
type: :runtime
|
@@ -36,6 +59,9 @@ dependencies:
|
|
36
59
|
version_requirements: !ruby/object:Gem::Requirement
|
37
60
|
requirements:
|
38
61
|
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '1.6'
|
64
|
+
- - ">="
|
39
65
|
- !ruby/object:Gem::Version
|
40
66
|
version: 1.6.8
|
41
67
|
- !ruby/object:Gem::Dependency
|
@@ -76,22 +102,22 @@ dependencies:
|
|
76
102
|
name: activesupport
|
77
103
|
requirement: !ruby/object:Gem::Requirement
|
78
104
|
requirements:
|
79
|
-
- - "~>"
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '4.2'
|
82
105
|
- - ">="
|
83
106
|
- !ruby/object:Gem::Version
|
84
107
|
version: 4.2.5
|
108
|
+
- - "<"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '6'
|
85
111
|
type: :runtime
|
86
112
|
prerelease: false
|
87
113
|
version_requirements: !ruby/object:Gem::Requirement
|
88
114
|
requirements:
|
89
|
-
- - "~>"
|
90
|
-
- !ruby/object:Gem::Version
|
91
|
-
version: '4.2'
|
92
115
|
- - ">="
|
93
116
|
- !ruby/object:Gem::Version
|
94
117
|
version: 4.2.5
|
118
|
+
- - "<"
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '6'
|
95
121
|
- !ruby/object:Gem::Dependency
|
96
122
|
name: sanitize
|
97
123
|
requirement: !ruby/object:Gem::Requirement
|
@@ -208,20 +234,20 @@ dependencies:
|
|
208
234
|
requirements:
|
209
235
|
- - "~>"
|
210
236
|
- !ruby/object:Gem::Version
|
211
|
-
version: '
|
237
|
+
version: '3.0'
|
212
238
|
- - ">="
|
213
239
|
- !ruby/object:Gem::Version
|
214
|
-
version:
|
240
|
+
version: 3.0.1
|
215
241
|
type: :development
|
216
242
|
prerelease: false
|
217
243
|
version_requirements: !ruby/object:Gem::Requirement
|
218
244
|
requirements:
|
219
245
|
- - "~>"
|
220
246
|
- !ruby/object:Gem::Version
|
221
|
-
version: '
|
247
|
+
version: '3.0'
|
222
248
|
- - ">="
|
223
249
|
- !ruby/object:Gem::Version
|
224
|
-
version:
|
250
|
+
version: 3.0.1
|
225
251
|
- !ruby/object:Gem::Dependency
|
226
252
|
name: codeclimate-test-reporter
|
227
253
|
requirement: !ruby/object:Gem::Requirement
|
@@ -272,76 +298,93 @@ files:
|
|
272
298
|
- lib/orcid_client/base.rb
|
273
299
|
- lib/orcid_client/date.rb
|
274
300
|
- lib/orcid_client/external_identifier.rb
|
275
|
-
- lib/orcid_client/metadata.rb
|
276
301
|
- lib/orcid_client/notification.rb
|
277
302
|
- lib/orcid_client/version.rb
|
278
303
|
- lib/orcid_client/work.rb
|
279
304
|
- lib/orcid_client/work_type.rb
|
280
305
|
- orcid_client.gemspec
|
281
|
-
- resources/common_2.
|
282
|
-
- resources/common_2.
|
283
|
-
- resources/notification_2.
|
284
|
-
- resources/notification_2.
|
285
|
-
- resources/notification_2.
|
286
|
-
- resources/notification_2.
|
287
|
-
- resources/
|
288
|
-
- resources/record_2.
|
289
|
-
- resources/record_2.
|
290
|
-
- resources/record_2.
|
291
|
-
- resources/record_2.
|
292
|
-
- resources/record_2.
|
293
|
-
- resources/record_2.
|
294
|
-
- resources/record_2.
|
295
|
-
- resources/record_2.
|
296
|
-
- resources/record_2.
|
297
|
-
- resources/record_2.
|
298
|
-
- resources/record_2.
|
299
|
-
- resources/record_2.
|
300
|
-
- resources/record_2.
|
301
|
-
- resources/record_2.
|
302
|
-
- resources/record_2.
|
303
|
-
- resources/record_2.
|
304
|
-
- resources/record_2.
|
305
|
-
- resources/record_2.
|
306
|
-
- resources/record_2.
|
307
|
-
- resources/record_2.
|
308
|
-
- resources/record_2.
|
309
|
-
- resources/record_2.
|
310
|
-
- resources/record_2.
|
311
|
-
- resources/record_2.
|
312
|
-
- resources/record_2.
|
313
|
-
- resources/record_2.
|
314
|
-
- resources/record_2.
|
315
|
-
- resources/record_2.
|
316
|
-
- resources/record_2.
|
317
|
-
- resources/record_2.
|
318
|
-
- resources/record_2.
|
319
|
-
- resources/record_2.
|
320
|
-
- resources/record_2.
|
321
|
-
- resources/record_2.
|
322
|
-
- resources/record_2.
|
323
|
-
- resources/record_2.
|
324
|
-
- resources/record_2.
|
325
|
-
- resources/record_2.
|
326
|
-
- resources/record_2.
|
327
|
-
- resources/record_2.
|
328
|
-
- resources/record_2.
|
329
|
-
- resources/record_2.
|
330
|
-
- resources/record_2.
|
331
|
-
- resources/record_2.
|
332
|
-
- resources/record_2.
|
333
|
-
- resources/record_2.
|
334
|
-
- resources/record_2.
|
335
|
-
- resources/record_2.
|
336
|
-
- resources/record_2.
|
337
|
-
- resources/record_2.
|
338
|
-
- resources/record_2.
|
339
|
-
- resources/record_2.
|
340
|
-
- resources/record_2.
|
341
|
-
- resources/record_2.
|
342
|
-
- resources/record_2.
|
343
|
-
- resources/record_2.
|
344
|
-
- resources/record_2.
|
306
|
+
- resources/common_2.0/common-2.0.xsd
|
307
|
+
- resources/common_2.0/samples/common-2.0.xml
|
308
|
+
- resources/notification_2.0/README.md
|
309
|
+
- resources/notification_2.0/notification-custom-2.0.xsd
|
310
|
+
- resources/notification_2.0/notification-permission-2.0.xsd
|
311
|
+
- resources/notification_2.0/samples/notification-custom-2.0.xml
|
312
|
+
- resources/notification_2.0/samples/notification-permission-2.0.xml
|
313
|
+
- resources/record_2.0/README.md
|
314
|
+
- resources/record_2.0/activities-2.0.xsd
|
315
|
+
- resources/record_2.0/address-2.0.xsd
|
316
|
+
- resources/record_2.0/bulk-2.0.xsd
|
317
|
+
- resources/record_2.0/education-2.0.xsd
|
318
|
+
- resources/record_2.0/email-2.0.xsd
|
319
|
+
- resources/record_2.0/employment-2.0.xsd
|
320
|
+
- resources/record_2.0/error-2.0.xsd
|
321
|
+
- resources/record_2.0/funding-2.0.xsd
|
322
|
+
- resources/record_2.0/history-2.0.xsd
|
323
|
+
- resources/record_2.0/keyword-2.0.xsd
|
324
|
+
- resources/record_2.0/other-name-2.0.xsd
|
325
|
+
- resources/record_2.0/peer-review-2.0.xsd
|
326
|
+
- resources/record_2.0/peer-review-guide-v2.0.md
|
327
|
+
- resources/record_2.0/person-2.0.xsd
|
328
|
+
- resources/record_2.0/person-external-identifier-2.0.xsd
|
329
|
+
- resources/record_2.0/personal-details-2.0.xsd
|
330
|
+
- resources/record_2.0/preferences-2.0.xsd
|
331
|
+
- resources/record_2.0/record-2.0.xsd
|
332
|
+
- resources/record_2.0/researcher-url-2.0.xsd
|
333
|
+
- resources/record_2.0/samples/read_samples/activities-2.0.xml
|
334
|
+
- resources/record_2.0/samples/read_samples/address-2.0.xml
|
335
|
+
- resources/record_2.0/samples/read_samples/addresses-2.0.xml
|
336
|
+
- resources/record_2.0/samples/read_samples/biography-2.0.xml
|
337
|
+
- resources/record_2.0/samples/read_samples/bulk-work-error.xml
|
338
|
+
- resources/record_2.0/samples/read_samples/credit-name-2.0.xml
|
339
|
+
- resources/record_2.0/samples/read_samples/education-2.0.xml
|
340
|
+
- resources/record_2.0/samples/read_samples/education-full-2.0.xml
|
341
|
+
- resources/record_2.0/samples/read_samples/educations-2.0.xml
|
342
|
+
- resources/record_2.0/samples/read_samples/email-2.0.xml
|
343
|
+
- resources/record_2.0/samples/read_samples/emails-2.0.xml
|
344
|
+
- resources/record_2.0/samples/read_samples/employment-2.0.xml
|
345
|
+
- resources/record_2.0/samples/read_samples/employment-full-2.0.xml
|
346
|
+
- resources/record_2.0/samples/read_samples/employments-2.0.xml
|
347
|
+
- resources/record_2.0/samples/read_samples/error-2.0.xml
|
348
|
+
- resources/record_2.0/samples/read_samples/external-identifier-2.0.xml
|
349
|
+
- resources/record_2.0/samples/read_samples/external-identifiers-2.0.xml
|
350
|
+
- resources/record_2.0/samples/read_samples/funding-2.0.xml
|
351
|
+
- resources/record_2.0/samples/read_samples/funding-full-2.0.xml
|
352
|
+
- resources/record_2.0/samples/read_samples/fundings-2.0.xml
|
353
|
+
- resources/record_2.0/samples/read_samples/history-2.0.xml
|
354
|
+
- resources/record_2.0/samples/read_samples/keyword-2.0.xml
|
355
|
+
- resources/record_2.0/samples/read_samples/keywords-2.0.xml
|
356
|
+
- resources/record_2.0/samples/read_samples/name-2.0.xml
|
357
|
+
- resources/record_2.0/samples/read_samples/other-name-2.0.xml
|
358
|
+
- resources/record_2.0/samples/read_samples/other-names-2.0.xml
|
359
|
+
- resources/record_2.0/samples/read_samples/peer-review-2.0.xml
|
360
|
+
- resources/record_2.0/samples/read_samples/peer-review-full-2.0.xml
|
361
|
+
- resources/record_2.0/samples/read_samples/peer-reviews-2.0.xml
|
362
|
+
- resources/record_2.0/samples/read_samples/person-2.0.xml
|
363
|
+
- resources/record_2.0/samples/read_samples/personal-details-2.0.xml
|
364
|
+
- resources/record_2.0/samples/read_samples/preferences-2.0.xml
|
365
|
+
- resources/record_2.0/samples/read_samples/record-2.0.xml
|
366
|
+
- resources/record_2.0/samples/read_samples/researcher-url-2.0.xml
|
367
|
+
- resources/record_2.0/samples/read_samples/researcher-urls-2.0.xml
|
368
|
+
- resources/record_2.0/samples/read_samples/search-2.0.xml
|
369
|
+
- resources/record_2.0/samples/read_samples/work-2.0.xml
|
370
|
+
- resources/record_2.0/samples/read_samples/work-full-2.0.xml
|
371
|
+
- resources/record_2.0/samples/read_samples/works-2.0.xml
|
372
|
+
- resources/record_2.0/samples/write_sample/address-2.0.xml
|
373
|
+
- resources/record_2.0/samples/write_sample/bulk-work-2.0.json
|
374
|
+
- resources/record_2.0/samples/write_sample/bulk-work-2.0.xml
|
375
|
+
- resources/record_2.0/samples/write_sample/education-2.0.xml
|
376
|
+
- resources/record_2.0/samples/write_sample/employment-2.0.xml
|
377
|
+
- resources/record_2.0/samples/write_sample/external-identifier-2.0.xml
|
378
|
+
- resources/record_2.0/samples/write_sample/funding-2.0.xml
|
379
|
+
- resources/record_2.0/samples/write_sample/keyword-2.0.xml
|
380
|
+
- resources/record_2.0/samples/write_sample/other-name-2.0.xml
|
381
|
+
- resources/record_2.0/samples/write_sample/peer-review-full-2.0.xml
|
382
|
+
- resources/record_2.0/samples/write_sample/peer-review-simple-2.0.xml
|
383
|
+
- resources/record_2.0/samples/write_sample/researcher-url-2.0.xml
|
384
|
+
- resources/record_2.0/samples/write_sample/work-full-2.0.xml
|
385
|
+
- resources/record_2.0/samples/write_sample/work-simple-2.0.xml
|
386
|
+
- resources/record_2.0/search-2.0.xsd
|
387
|
+
- resources/record_2.0/work-2.0.xsd
|
345
388
|
- spec/api_spec.rb
|
346
389
|
- spec/author_spec.rb
|
347
390
|
- spec/external_identifier_spec.rb
|
@@ -358,7 +401,6 @@ files:
|
|
358
401
|
- spec/fixtures/vcr_cassettes/OrcidClient_Notification/data.yml
|
359
402
|
- spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_data.yml
|
360
403
|
- spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_item_type_work.yml
|
361
|
-
- spec/fixtures/vcr_cassettes/OrcidClient_Work/citation.yml
|
362
404
|
- spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/literal.yml
|
363
405
|
- spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/multiple_titles.yml
|
364
406
|
- spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/valid.yml
|
@@ -1,128 +0,0 @@
|
|
1
|
-
module OrcidClient
|
2
|
-
module Metadata
|
3
|
-
def get_metadata(id, service, options = {})
|
4
|
-
case service
|
5
|
-
when "crossref" then get_crossref_metadata(id, options = {})
|
6
|
-
when "datacite" then get_datacite_metadata(id, options = {})
|
7
|
-
when "orcid" then get_orcid_metadata(id, options = {})
|
8
|
-
else
|
9
|
-
{ "errors" => [{ "title" => 'Not found.', "status" => 404 }] }
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def get_crossref_metadata(doi, options = {})
|
14
|
-
return {} if doi.blank?
|
15
|
-
|
16
|
-
url = "http://api.crossref.org/works/" + PostRank::URI.escape(doi)
|
17
|
-
response = Maremma.get(url, options.merge(host: true))
|
18
|
-
return response if response.body["errors"]
|
19
|
-
|
20
|
-
metadata = response.body.fetch("data", {}).fetch("message", {})
|
21
|
-
return { "errors" => [{ "title" => "Not found.", "status" => 404 }] } if metadata.blank?
|
22
|
-
|
23
|
-
date_parts = metadata.fetch("issued", {}).fetch("date-parts", []).first
|
24
|
-
year, month, day = date_parts[0], date_parts[1], date_parts[2]
|
25
|
-
|
26
|
-
# use date indexed if date issued is in the future
|
27
|
-
if year.nil? || Date.new(*date_parts) > Time.zone.now.to_date
|
28
|
-
date_parts = metadata.fetch("indexed", {}).fetch("date-parts", []).first
|
29
|
-
year, month, day = date_parts[0], date_parts[1], date_parts[2]
|
30
|
-
end
|
31
|
-
metadata["issued"] = { "date-parts" => [date_parts] }
|
32
|
-
|
33
|
-
metadata["title"] = case metadata["title"].length
|
34
|
-
when 0 then nil
|
35
|
-
when 1 then metadata["title"][0]
|
36
|
-
else metadata["title"][0].presence || metadata["title"][1]
|
37
|
-
end
|
38
|
-
|
39
|
-
if metadata["title"].blank? && !TYPES_WITH_TITLE.include?(metadata["type"])
|
40
|
-
metadata["title"] = metadata["container-title"][0].presence || "No title"
|
41
|
-
end
|
42
|
-
|
43
|
-
metadata["container-title"] = metadata.fetch("container-title", [])[0]
|
44
|
-
metadata["type"] = CROSSREF_TYPE_TRANSLATIONS[metadata["type"]] if metadata["type"]
|
45
|
-
metadata["author"] = metadata["author"].map { |author| author.except("affiliation") }
|
46
|
-
|
47
|
-
metadata
|
48
|
-
end
|
49
|
-
|
50
|
-
def get_datacite_metadata(doi, options = {})
|
51
|
-
return {} if doi.blank?
|
52
|
-
|
53
|
-
params = { q: "doi:" + doi,
|
54
|
-
rows: 1,
|
55
|
-
fl: "doi,creator,title,publisher,publicationYear,resourceTypeGeneral,description,datacentre,datacentre_symbol,prefix,relatedIdentifier,xml,minted,updated",
|
56
|
-
wt: "json" }
|
57
|
-
url = "http://search.datacite.org/api?" + URI.encode_www_form(params)
|
58
|
-
response = Maremma.get(url, options)
|
59
|
-
return response if response.body["errors"]
|
60
|
-
|
61
|
-
metadata = response.body.fetch("data", {}).fetch("response", {}).fetch("docs", []).first
|
62
|
-
return { "errors" => [{ "title" => "Not found.", "status" => 404 }] } if metadata.blank?
|
63
|
-
|
64
|
-
doi = metadata.fetch("doi", nil)
|
65
|
-
doi = doi.upcase if doi.present?
|
66
|
-
title = metadata.fetch("title", []).first
|
67
|
-
title = title.chomp(".") if title.present?
|
68
|
-
|
69
|
-
xml = Base64.decode64(metadata.fetch('xml', "PGhzaD48L2hzaD4=\n"))
|
70
|
-
xml = Hash.from_xml(xml).fetch("resource", {})
|
71
|
-
authors = xml.fetch("creators", {}).fetch("creator", [])
|
72
|
-
authors = [authors] if authors.is_a?(Hash)
|
73
|
-
|
74
|
-
{ "author" => get_hashed_authors(authors),
|
75
|
-
"title" => title,
|
76
|
-
"container-title" => metadata.fetch("publisher", nil),
|
77
|
-
"description" => metadata.fetch("description", nil),
|
78
|
-
"published" => metadata.fetch("publicationYear", nil),
|
79
|
-
"issued" => metadata.fetch("minted", nil),
|
80
|
-
"DOI" => doi,
|
81
|
-
"type" => metadata.fetch("resourceTypeGeneral", nil),
|
82
|
-
"subtype" => metadata.fetch("resourceType", nil),
|
83
|
-
"publisher_id" => metadata.fetch("datacentre_symbol", nil) }
|
84
|
-
end
|
85
|
-
|
86
|
-
def get_orcid_metadata(orcid, options = {})
|
87
|
-
return {} if orcid.blank?
|
88
|
-
|
89
|
-
url = "http://pub.orcid.org/v1.2/#{orcid}/orcid-bio"
|
90
|
-
response = Maremma.get(url, options)
|
91
|
-
return response if response.body["errors"]
|
92
|
-
|
93
|
-
metadata = response.body.fetch("data", {}).fetch("orcid_message", {}).fetch("orcid_profile", nil)
|
94
|
-
metadata.extend Hashie::Extensions::DeepFetch
|
95
|
-
|
96
|
-
personal_details = metadata.deep_fetch("orcid_bio", "personal_details") { {} }
|
97
|
-
personal_details.extend Hashie::Extensions::DeepFetch
|
98
|
-
|
99
|
-
author = { "family" => personal_details.fetch("family_name", nil),
|
100
|
-
"given" => personal_details.fetch("given_names", nil) }
|
101
|
-
url = metadata.deep_fetch("orcid_identifier", "uri") { nil }
|
102
|
-
timestamp = Time.zone.now.utc.iso8601
|
103
|
-
|
104
|
-
{ "author" => [author],
|
105
|
-
"title" => "ORCID record for #{author.fetch('given', '')} #{author.fetch('family', '')}",
|
106
|
-
"container-title" => "ORCID Registry",
|
107
|
-
"issued" => get_date_parts(timestamp),
|
108
|
-
"timestamp" => timestamp,
|
109
|
-
"URL" => url,
|
110
|
-
"type" => 'entry' }
|
111
|
-
end
|
112
|
-
|
113
|
-
def get_doi_ra(doi, options = {})
|
114
|
-
return {} if doi.blank?
|
115
|
-
|
116
|
-
url = "http://doi.crossref.org/doiRA/" + CGI.unescape(doi)
|
117
|
-
response = Maremma.get(url, options.merge(host: true))
|
118
|
-
return response if response.body["errors"]
|
119
|
-
|
120
|
-
ra = response.body.fetch("data", {}).first.fetch("RA", nil)
|
121
|
-
if ra.present?
|
122
|
-
ra.delete(' ').downcase
|
123
|
-
else
|
124
|
-
{ "errors" => [{ "title" => "An error occured", "status" => 400 }] }
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
|
3
|
-
targetNamespace="http://www.orcid.org/ns/notification" xmlns:notification="http://www.orcid.org/ns/notification"
|
4
|
-
xmlns:common="http://www.orcid.org/ns/common"
|
5
|
-
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
6
|
-
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1">
|
7
|
-
<xs:import namespace="http://www.orcid.org/ns/common" schemaLocation="../common_2.0_rc3/common-2.0_rc3.xsd" />
|
8
|
-
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="../xml.xsd"/>
|
9
|
-
<xs:element name="notification">
|
10
|
-
<xs:complexType>
|
11
|
-
<xs:sequence>
|
12
|
-
<xs:element name="notification-type">
|
13
|
-
<xs:simpleType>
|
14
|
-
<xs:restriction base="xs:string">
|
15
|
-
<xs:enumeration value="custom"/>
|
16
|
-
</xs:restriction>
|
17
|
-
</xs:simpleType>
|
18
|
-
</xs:element>
|
19
|
-
<xs:element type="xs:string" name="subject"/>
|
20
|
-
<xs:element type="xs:string" name="body-text"/>
|
21
|
-
<xs:element type="xs:string" name="body-html"/>
|
22
|
-
<xs:element ref="common:created-date" minOccurs="0"/>
|
23
|
-
<xs:element ref="common:sent-date"/>
|
24
|
-
<xs:element ref="common:read-date" minOccurs="0"/>
|
25
|
-
<xs:element ref="common:archived-date" minOccurs="0"/>
|
26
|
-
<xs:element ref="common:source" minOccurs="0"/>
|
27
|
-
</xs:sequence>
|
28
|
-
<xs:attribute name="put-code" type="common:put-code" use="optional" />
|
29
|
-
<xs:attribute ref="xml:lang" use="optional" />
|
30
|
-
</xs:complexType>
|
31
|
-
</xs:element>
|
32
|
-
</xs:schema>
|
@@ -1,128 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<xs:schema attributeFormDefault="unqualified"
|
3
|
-
elementFormDefault="qualified" targetNamespace="http://www.orcid.org/ns/notification"
|
4
|
-
xmlns:notification="http://www.orcid.org/ns/notification" xmlns:common="http://www.orcid.org/ns/common"
|
5
|
-
xmlns:activities="http://www.orcid.org/ns/activities" xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
6
|
-
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1">
|
7
|
-
<xs:import namespace="http://www.orcid.org/ns/common"
|
8
|
-
schemaLocation="../common_2.0_rc3/common-2.0_rc3.xsd" />
|
9
|
-
<xs:import namespace="http://www.orcid.org/ns/activities"
|
10
|
-
schemaLocation="../record_2.0_rc3/activities-2.0_rc3.xsd" />
|
11
|
-
|
12
|
-
<xs:element name="notifications">
|
13
|
-
<xs:annotation>
|
14
|
-
<xs:documentation>Notification container</xs:documentation>
|
15
|
-
</xs:annotation>
|
16
|
-
<xs:complexType>
|
17
|
-
<xs:sequence>
|
18
|
-
<xs:element name="notification" type="notification:notification"
|
19
|
-
minOccurs="0" maxOccurs="unbounded" />
|
20
|
-
</xs:sequence>
|
21
|
-
</xs:complexType>
|
22
|
-
</xs:element>
|
23
|
-
|
24
|
-
<xs:element name="notification">
|
25
|
-
<xs:annotation>
|
26
|
-
<xs:documentation>Notification element
|
27
|
-
</xs:documentation>
|
28
|
-
</xs:annotation>
|
29
|
-
<xs:complexType>
|
30
|
-
<xs:complexContent>
|
31
|
-
<xs:extension base="notification:notification"></xs:extension>
|
32
|
-
</xs:complexContent>
|
33
|
-
</xs:complexType>
|
34
|
-
</xs:element>
|
35
|
-
|
36
|
-
<xs:complexType name="notification">
|
37
|
-
<xs:sequence>
|
38
|
-
<xs:element name="notification-type" type="notification:notification-type" />
|
39
|
-
<xs:element name="authorization-url" type="notification:authorization-url" />
|
40
|
-
<xs:element ref="notification:notification-subject" />
|
41
|
-
<xs:element ref="notification:notification-intro" />
|
42
|
-
<xs:element name="items" type="notification:items" />
|
43
|
-
<xs:element ref="common:created-date" minOccurs="0" />
|
44
|
-
<xs:element ref="common:sent-date" minOccurs="0" />
|
45
|
-
<xs:element ref="common:read-date" minOccurs="0" />
|
46
|
-
<xs:element name="actioned-date" type="notification:actioned-date"
|
47
|
-
minOccurs="0" />
|
48
|
-
<xs:element ref="common:archived-date" minOccurs="0" />
|
49
|
-
<xs:element ref="common:source" minOccurs="0" />
|
50
|
-
</xs:sequence>
|
51
|
-
<xs:attribute name="put-code" type="common:put-code"
|
52
|
-
use="optional" />
|
53
|
-
</xs:complexType>
|
54
|
-
|
55
|
-
<xs:simpleType name="notification-type">
|
56
|
-
<xs:restriction base="xs:string">
|
57
|
-
<xs:enumeration value="permission" />
|
58
|
-
</xs:restriction>
|
59
|
-
</xs:simpleType>
|
60
|
-
|
61
|
-
<xs:complexType name="authorization-url">
|
62
|
-
<xs:sequence>
|
63
|
-
<xs:choice>
|
64
|
-
<xs:sequence>
|
65
|
-
<xs:element name="uri" type="xs:anyURI" />
|
66
|
-
<xs:element name="path" type="xs:string" minOccurs="0" />
|
67
|
-
</xs:sequence>
|
68
|
-
<xs:element name="path" type="xs:string" />
|
69
|
-
</xs:choice>
|
70
|
-
<xs:element name="host" type="xs:string" minOccurs="0" />
|
71
|
-
</xs:sequence>
|
72
|
-
</xs:complexType>
|
73
|
-
|
74
|
-
<xs:element name="notification-subject">
|
75
|
-
<xs:annotation>
|
76
|
-
<xs:documentation>The subject line for the message (displayed to the
|
77
|
-
end user)
|
78
|
-
</xs:documentation>
|
79
|
-
</xs:annotation>
|
80
|
-
<xs:simpleType>
|
81
|
-
<xs:restriction base="xs:string" />
|
82
|
-
</xs:simpleType>
|
83
|
-
</xs:element>
|
84
|
-
<xs:element name="notification-intro">
|
85
|
-
<xs:annotation>
|
86
|
-
<xs:documentation>A text-only introductory message to be displayed to
|
87
|
-
the end user, and displayed before the example list of items.
|
88
|
-
</xs:documentation>
|
89
|
-
</xs:annotation>
|
90
|
-
<xs:simpleType>
|
91
|
-
<xs:restriction base="xs:string">
|
92
|
-
<xs:maxLength value="1000" />
|
93
|
-
</xs:restriction>
|
94
|
-
</xs:simpleType>
|
95
|
-
</xs:element>
|
96
|
-
<xs:complexType name="items">
|
97
|
-
<xs:sequence>
|
98
|
-
<xs:element name="item" type="notification:item"
|
99
|
-
maxOccurs="unbounded" />
|
100
|
-
</xs:sequence>
|
101
|
-
</xs:complexType>
|
102
|
-
<xs:complexType name="item">
|
103
|
-
<xs:sequence>
|
104
|
-
<xs:element name="item-type" type="notification:activity-type" />
|
105
|
-
<xs:element name="item-name" type="xs:string" />
|
106
|
-
<xs:element ref="common:external-id" minOccurs="0" />
|
107
|
-
</xs:sequence>
|
108
|
-
</xs:complexType>
|
109
|
-
<xs:simpleType name="activity-type">
|
110
|
-
<xs:restriction base="xs:string">
|
111
|
-
<xs:enumeration value="education"></xs:enumeration>
|
112
|
-
<xs:enumeration value="employment"></xs:enumeration>
|
113
|
-
<xs:enumeration value="funding"></xs:enumeration>
|
114
|
-
<xs:enumeration value="work"></xs:enumeration>
|
115
|
-
<xs:enumeration value="peer-review"></xs:enumeration>
|
116
|
-
</xs:restriction>
|
117
|
-
</xs:simpleType>
|
118
|
-
<xs:complexType name="actioned-date">
|
119
|
-
<xs:annotation>
|
120
|
-
<xs:documentation>The date time when the user took action on the
|
121
|
-
notification.
|
122
|
-
</xs:documentation>
|
123
|
-
</xs:annotation>
|
124
|
-
<xs:simpleContent>
|
125
|
-
<xs:extension base="xs:dateTime" />
|
126
|
-
</xs:simpleContent>
|
127
|
-
</xs:complexType>
|
128
|
-
</xs:schema>
|