orcid_client 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +7 -0
  2. data/.env.example +10 -0
  3. data/.gitignore +42 -0
  4. data/.travis.yml +17 -0
  5. data/CHANGELOG.md +0 -0
  6. data/Gemfile +4 -0
  7. data/Gemfile.lock +115 -0
  8. data/LICENSE.md +21 -0
  9. data/README.md +45 -0
  10. data/Rakefile +5 -0
  11. data/lib/orcid_client.rb +3 -0
  12. data/lib/orcid_client/api.rb +75 -0
  13. data/lib/orcid_client/author.rb +56 -0
  14. data/lib/orcid_client/base.rb +21 -0
  15. data/lib/orcid_client/date.rb +61 -0
  16. data/lib/orcid_client/metadata.rb +128 -0
  17. data/lib/orcid_client/notification.rb +125 -0
  18. data/lib/orcid_client/version.rb +3 -0
  19. data/lib/orcid_client/work.rb +200 -0
  20. data/lib/orcid_client/work_type.rb +68 -0
  21. data/orcid_client.gemspec +37 -0
  22. data/resources/common_2.0_rc3/common-2.0_rc3.xsd +1624 -0
  23. data/resources/common_2.0_rc3/samples/common-2.0_rc3.xml +8 -0
  24. data/resources/notification_2.0_rc3/notification-custom-2.0_rc3.xsd +32 -0
  25. data/resources/notification_2.0_rc3/notification-permission-2.0_rc3.xsd +128 -0
  26. data/resources/notification_2.0_rc3/samples/notification-custom-2.0_rc3.xml +45 -0
  27. data/resources/notification_2.0_rc3/samples/notification-permission-2.0_rc3.xml +58 -0
  28. data/resources/record_2.0_rc3/activities-2.0_rc3.xsd +187 -0
  29. data/resources/record_2.0_rc3/address-2.0_rc3.xsd +73 -0
  30. data/resources/record_2.0_rc3/bulk-2.0_rc3.xsd +57 -0
  31. data/resources/record_2.0_rc3/deprecated-2.0_rc3.xsd +80 -0
  32. data/resources/record_2.0_rc3/education-2.0_rc3.xsd +96 -0
  33. data/resources/record_2.0_rc3/email-2.0_rc3.xsd +74 -0
  34. data/resources/record_2.0_rc3/employment-2.0_rc3.xsd +96 -0
  35. data/resources/record_2.0_rc3/error-2.0_rc3.xsd +84 -0
  36. data/resources/record_2.0_rc3/funding-2.0_rc3.xsd +257 -0
  37. data/resources/record_2.0_rc3/history-2.0_rc3.xsd +203 -0
  38. data/resources/record_2.0_rc3/internal-2.0_rc3.xsd +199 -0
  39. data/resources/record_2.0_rc3/keyword-2.0_rc3.xsd +72 -0
  40. data/resources/record_2.0_rc3/other-name-2.0_rc3.xsd +88 -0
  41. data/resources/record_2.0_rc3/peer-review-2.0_rc3.xsd +246 -0
  42. data/resources/record_2.0_rc3/person-2.0_rc3.xsd +98 -0
  43. data/resources/record_2.0_rc3/person-external-identifier-2.0_rc3.xsd +63 -0
  44. data/resources/record_2.0_rc3/personal-details-2.0_rc3.xsd +186 -0
  45. data/resources/record_2.0_rc3/preferences-2.0_rc3.xsd +50 -0
  46. data/resources/record_2.0_rc3/record-2.0_rc3.xsd +105 -0
  47. data/resources/record_2.0_rc3/researcher-url-2.0_rc3.xsd +90 -0
  48. data/resources/record_2.0_rc3/samples/activities-2.0_rc3.xml +236 -0
  49. data/resources/record_2.0_rc3/samples/address-2.0_rc3.xml +16 -0
  50. data/resources/record_2.0_rc3/samples/addresses-2.0_rc3.xml +32 -0
  51. data/resources/record_2.0_rc3/samples/biography-2.0_rc3.xml +10 -0
  52. data/resources/record_2.0_rc3/samples/bulk-work-2.0_rc3.json +56 -0
  53. data/resources/record_2.0_rc3/samples/bulk-work-2.0_rc3.xml +62 -0
  54. data/resources/record_2.0_rc3/samples/credit-name-2.0_rc3.xml +5 -0
  55. data/resources/record_2.0_rc3/samples/deprecated-2.0_rc3.xml +13 -0
  56. data/resources/record_2.0_rc3/samples/education-2.0_rc3.xml +30 -0
  57. data/resources/record_2.0_rc3/samples/education-full-2.0_rc3.xml +40 -0
  58. data/resources/record_2.0_rc3/samples/email-2.0_rc3.xml +16 -0
  59. data/resources/record_2.0_rc3/samples/emails-2.0_rc3.xml +31 -0
  60. data/resources/record_2.0_rc3/samples/employment-2.0_rc3.xml +30 -0
  61. data/resources/record_2.0_rc3/samples/employment-full-2.0_rc3.xml +40 -0
  62. data/resources/record_2.0_rc3/samples/error-2.0_rc3.xml +8 -0
  63. data/resources/record_2.0_rc3/samples/external-identifier-2.0_rc3.xml +20 -0
  64. data/resources/record_2.0_rc3/samples/external-identifiers-2.0_rc3.xml +36 -0
  65. data/resources/record_2.0_rc3/samples/funding-2.0_rc3.xml +65 -0
  66. data/resources/record_2.0_rc3/samples/funding-full-2.0_rc3.xml +75 -0
  67. data/resources/record_2.0_rc3/samples/history-2.0_rc3.xml +22 -0
  68. data/resources/record_2.0_rc3/samples/keyword-2.0_rc3.xml +18 -0
  69. data/resources/record_2.0_rc3/samples/keywords-2.0_rc3.xml +34 -0
  70. data/resources/record_2.0_rc3/samples/name-2.0_rc3.xml +12 -0
  71. data/resources/record_2.0_rc3/samples/other-name-2.0_rc3.xml +16 -0
  72. data/resources/record_2.0_rc3/samples/other-names-2.0_rc3.xml +31 -0
  73. data/resources/record_2.0_rc3/samples/peer-review-2.0_rc3.xml +49 -0
  74. data/resources/record_2.0_rc3/samples/peer-review-full-2.0_rc3.xml +59 -0
  75. data/resources/record_2.0_rc3/samples/person-2.0_rc3.xml +122 -0
  76. data/resources/record_2.0_rc3/samples/personal-details-2.0_rc3.xml +47 -0
  77. data/resources/record_2.0_rc3/samples/preferences-2.0_rc3.xml +4 -0
  78. data/resources/record_2.0_rc3/samples/record-2.0_rc3.xml +420 -0
  79. data/resources/record_2.0_rc3/samples/researcher-url-2.0_rc3.xml +19 -0
  80. data/resources/record_2.0_rc3/samples/researcher-urls-2.0_rc3.xml +21 -0
  81. data/resources/record_2.0_rc3/samples/search-2.0_rc3.xml +368 -0
  82. data/resources/record_2.0_rc3/samples/work-2.0_rc3.xml +49 -0
  83. data/resources/record_2.0_rc3/samples/work-full-2.0_rc3.xml +59 -0
  84. data/resources/record_2.0_rc3/search-2.0_rc3.xsd +82 -0
  85. data/resources/record_2.0_rc3/work-2.0_rc3.xsd +445 -0
  86. data/spec/api_spec.rb +59 -0
  87. data/spec/fixtures/vcr_cassettes/OrcidClient/get/should_get_works.yml +646 -0
  88. data/spec/fixtures/vcr_cassettes/OrcidClient/notifications/post/should_create_notification.yml +104 -0
  89. data/spec/fixtures/vcr_cassettes/OrcidClient/works/delete/should_delete_work.yml +38 -0
  90. data/spec/fixtures/vcr_cassettes/OrcidClient/works/get/should_get_works.yml +646 -0
  91. data/spec/fixtures/vcr_cassettes/OrcidClient/works/post/should_create_work.yml +116 -0
  92. data/spec/fixtures/vcr_cassettes/OrcidClient/works/put/should_update_work.yml +155 -0
  93. data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/data.yml +44 -0
  94. data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_data.yml +44 -0
  95. data/spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_item_type_work.yml +41 -0
  96. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/citation.yml +50 -0
  97. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/literal.yml +47 -0
  98. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/multiple_titles.yml +47 -0
  99. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/valid.yml +50 -0
  100. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/with_ORCID_IDs.yml +157 -0
  101. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/data.yml +50 -0
  102. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/publication_date.yml +50 -0
  103. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_ORCID_IDs_for_contributors.yml +157 -0
  104. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_data.yml +50 -0
  105. data/spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_work_type_data-set.yml +47 -0
  106. data/spec/fixtures/work.xml +33 -0
  107. data/spec/notification_spec.rb +42 -0
  108. data/spec/spec_helper.rb +32 -0
  109. data/spec/work_spec.rb +100 -0
  110. metadata +392 -0
@@ -0,0 +1,50 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://search.datacite.org/api?fl=doi,creator,title,publisher,publicationYear,resourceTypeGeneral,description,datacentre,datacentre_symbol,prefix,relatedIdentifier,xml,minted,updated&q=doi:10.5281/zenodo.59983&rows=1&wt=json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Maremma - https://github.com/datacite/maremma
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Server:
20
+ - openresty/1.11.2.1
21
+ Date:
22
+ - Sun, 06 Nov 2016 17:39:31 GMT
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Access-Control-Allow-Origin:
26
+ - "*"
27
+ Access-Control-Allow-Methods:
28
+ - GET, POST, OPTIONS
29
+ X-Cache:
30
+ - MISS from IMP-cache
31
+ X-Cache-Lookup:
32
+ - MISS from IMP-cache:3128
33
+ Via:
34
+ - 1.0 IMP-cache (squid/3.1.20)
35
+ Connection:
36
+ - close
37
+ body:
38
+ encoding: UTF-8
39
+ string: '{"responseHeader":{"status":0,"QTime":0},"response":{"numFound":1,"start":0,"docs":[{"minted":"2016-08-11T04:47:51Z","datacentre_symbol":"CERN.ZENODO","xml":"PHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMyBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC0zL21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTI4MS96ZW5vZG8uNTk5ODM8L2lkZW50aWZpZXI+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5NYXJ0aW4gRmVubmVyPC9jcmVhdG9yTmFtZT4KICAgICAgPGFmZmlsaWF0aW9uPkRhdGFDaXRlPC9hZmZpbGlhdGlvbj4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+R3VkbXVuZHVyIEEuIFRob3Jpc3NvbjwvY3JlYXRvck5hbWU+CiAgICA8L2NyZWF0b3I+CiAgICA8Y3JlYXRvcj4KICAgICAgPGNyZWF0b3JOYW1lPkVsZWFub3IgS2llZmVsIEhhZ2dlcnR5PC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+QW51c2hhIFJhbmdhbmF0aGFuPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICA8L2NyZWF0b3JzPgogIDx0aXRsZXM+CiAgICA8dGl0bGU+b21uaWF1dGgtb3JjaWQ6IHYuMS4xLjU8L3RpdGxlPgogIDwvdGl0bGVzPgogIDxwdWJsaXNoZXI+WmVub2RvPC9wdWJsaXNoZXI+CiAgPHB1YmxpY2F0aW9uWWVhcj4yMDE2PC9wdWJsaWNhdGlvblllYXI+CiAgPGNvbnRyaWJ1dG9ycy8+CiAgPGRhdGVzPgogICAgPGRhdGUgZGF0ZVR5cGU9Iklzc3VlZCI+MjAxNi0wOC0xMTwvZGF0ZT4KICA8L2RhdGVzPgogIDxyZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlR2VuZXJhbD0iU29mdHdhcmUiLz4KICA8YWx0ZXJuYXRlSWRlbnRpZmllcnM+CiAgICA8YWx0ZXJuYXRlSWRlbnRpZmllciBhbHRlcm5hdGVJZGVudGlmaWVyVHlwZT0iVVJMIj5odHRwOi8vemVub2RvLm9yZy9yZWNvcmQvNTk5ODM8L2FsdGVybmF0ZUlkZW50aWZpZXI+CiAgPC9hbHRlcm5hdGVJZGVudGlmaWVycz4KICA8cmVsYXRlZElkZW50aWZpZXJzPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0aW9uVHlwZT0iSXNTdXBwbGVtZW50VG8iIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iVVJMIj5odHRwczovL2dpdGh1Yi5jb20vZGF0YWNpdGUvb21uaWF1dGgtb3JjaWQvdHJlZS92LjEuMS41PC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGlvblR5cGU9Ikhhc1BhcnQiIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iVVJMIj5odHRwczovL3plbm9kby5vcmcvcmVjb3JkLzU5OTgzL2ZpbGVzL29tbmlhdXRoLW9yY2lkLXYuMS4xLjUuemlwPC9yZWxhdGVkSWRlbnRpZmllcj4KICA8L3JlbGF0ZWRJZGVudGlmaWVycz4KICA8cmlnaHRzTGlzdD4KICAgIDxyaWdodHMgcmlnaHRzVVJJPSJpbmZvOmV1LXJlcG8vc2VtYW50aWNzL29wZW5BY2Nlc3MiPk9wZW4gQWNjZXNzPC9yaWdodHM+CiAgICA8cmlnaHRzIHJpZ2h0c1VSST0iIj5PdGhlciAoT3Blbik8L3JpZ2h0cz4KICA8L3JpZ2h0c0xpc3Q+CiAgPGRlc2NyaXB0aW9ucz4KICAgIDxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9IkFic3RyYWN0Ij4mbHQ7cCZndDsmbHQ7YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vZGF0YWNpdGUvb21uaWF1dGgtb3JjaWQvcmVsZWFzZXMvdGFnL3YuMS4xLjUiJmd0O29ubWlhdXRoLW9yY2lkIDEuMS41Jmx0Oy9hJmd0OyB3YXMgcmVsZWFzZWQgb24gQXVndXN0IDExLCAyMDE2IHdpdGggdGhlIGZvbGxvd2luZyBjaGFuZ2VzOiZsdDsvcCZndDsKCiZsdDt1bCZndDsKJmx0O2xpJmd0O2NvbXBhdGliaWxpdHkgd2l0aCBvbW5pYXV0aC1vYXV0aDIgMS40LjAuIFRoYW5rcyB0byBwdWxsIHJlcXVlc3QgJmx0O2EgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2RhdGFjaXRlL29tbmlhdXRoLW9yY2lkL3B1bGwvNyImZ3Q7IzcmbHQ7L2EmZ3Q7IGJ5ICZsdDthIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9lbGVhbm9yYWtoIiZndDtlbGVhbm9yYWtoJmx0Oy9hJmd0Oy4mbHQ7L2xpJmd0OwombHQ7L3VsJmd0OzwvZGVzY3JpcHRpb24+CiAgPC9kZXNjcmlwdGlvbnM+CjwvcmVzb3VyY2U+Cg==","datacentre":"CERN.ZENODO
40
+ - ZENODO - Research. Shared.","updated":"2016-08-11T04:47:51Z","prefix":"10.5281","doi":"10.5281/ZENODO.59983","relatedIdentifier":["IsSupplementTo:URL:https://github.com/datacite/omniauth-orcid/tree/v.1.1.5","HasPart:URL:https://zenodo.org/record/59983/files/omniauth-orcid-v.1.1.5.zip"],"creator":["Martin
41
+ Fenner","Gudmundur A. Thorisson","Eleanor Kiefel Haggerty","Anusha Ranganathan"],"publisher":"Zenodo","title":["omniauth-orcid:
42
+ v.1.1.5"],"description":["<p><a href=\"https://github.com/datacite/omniauth-orcid/releases/tag/v.1.1.5\">onmiauth-orcid
43
+ 1.1.5</a> was released on August 11, 2016 with the following changes:</p>\n\n<ul>\n<li>compatibility
44
+ with omniauth-oauth2 1.4.0. Thanks to pull request <a href=\"https://github.com/datacite/omniauth-orcid/pull/7\">#7</a>
45
+ by <a href=\"https://github.com/eleanorakh\">eleanorakh</a>.</li>\n</ul>"],"publicationYear":"2016","resourceTypeGeneral":"Software"}]}}
46
+
47
+ '
48
+ http_version:
49
+ recorded_at: Sun, 06 Nov 2016 17:39:41 GMT
50
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,47 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://search.datacite.org/api?fl=doi,creator,title,publisher,publicationYear,resourceTypeGeneral,description,datacentre,datacentre_symbol,prefix,relatedIdentifier,xml,minted,updated&q=doi:10.5061/DRYAD.781PV&rows=1&wt=json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Maremma - https://github.com/datacite/maremma
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Server:
20
+ - openresty/1.11.2.1
21
+ Date:
22
+ - Sun, 06 Nov 2016 17:39:32 GMT
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Access-Control-Allow-Origin:
26
+ - "*"
27
+ Access-Control-Allow-Methods:
28
+ - GET, POST, OPTIONS
29
+ X-Cache:
30
+ - MISS from IMP-cache
31
+ X-Cache-Lookup:
32
+ - MISS from IMP-cache:3128
33
+ Via:
34
+ - 1.0 IMP-cache (squid/3.1.20)
35
+ Connection:
36
+ - close
37
+ body:
38
+ encoding: UTF-8
39
+ string: '{"responseHeader":{"status":0,"QTime":6},"response":{"numFound":1,"start":0,"docs":[{"minted":"2013-09-20T17:29:35Z","datacentre_symbol":"CDL.DRYAD","xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMi4yIiB4bWxuczpkcnlhZD0iaHR0cDovL3B1cmwub3JnL2RyeWFkL3Rlcm1zLyIgeG1sbnM6ZGltPSJodHRwOi8vd3d3LmRzcGFjZS5vcmcveG1sbnMvZHNwYWNlL2RpbSIgeG1sbnM6ZHNwYWNlPSJodHRwOi8vd3d3LmRzcGFjZS5vcmcveG1sbnMvZHNwYWNlL2RpbSIgeG1sbnM6bWV0cz0iaHR0cDovL3d3dy5sb2MuZ292L01FVFMvIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiBtZXRhZGF0YVZlcnNpb25OdW1iZXI9IjEiIGxhc3RNZXRhZGF0YVVwZGF0ZT0iMjAwNi0wNS0wNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMi4yIGh0dHA6Ly9zY2hlbWEuZGF0YWNpdGUub3JnL21ldGEva2VybmVsLTIuMi9tZXRhZGF0YS54c2QiPgogIDxpZGVudGlmaWVyIGlkZW50aWZpZXJUeXBlPSJET0kiPjEwLjUwNjEvRFJZQUQuNzgxUFY8L2lkZW50aWZpZXI+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5QaXdvd2FyLCBIZWF0aGVyIEEuPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWU+VmlzaW9uLCBUb2RkIEouPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICA8L2NyZWF0b3JzPgogIDx0aXRsZXM+CiAgICA8dGl0bGU+RGF0YSBmcm9tOiBEYXRhIHJldXNlIGFuZCB0aGUgb3BlbiBkYXRhIGNpdGF0aW9uIGFkdmFudGFnZTwvdGl0bGU+CiAgPC90aXRsZXM+CiAgPHB1Ymxpc2hlcj5EcnlhZCBEaWdpdGFsIFJlcG9zaXRvcnk8L3B1Ymxpc2hlcj4KICA8cHVibGljYXRpb25ZZWFyPjIwMTM8L3B1YmxpY2F0aW9uWWVhcj4KICA8c3ViamVjdHM+CiAgICA8c3ViamVjdD5CaW9pbmZvcm1hdGljczwvc3ViamVjdD4KICAgIDxzdWJqZWN0PlNjaWVuY2UgUG9saWN5PC9zdWJqZWN0PgogICAgPHN1YmplY3Q+RGF0YSByZXVzZTwvc3ViamVjdD4KICAgIDxzdWJqZWN0PkRhdGEgcmVwb3NpdG9yaWVzPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+R2VuZSBleHByZXNzaW9uIG1pY3JvYXJyYXk8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5JbmNlbnRpdmVzPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+RGF0YSBhcmNoaXZpbmc8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5PcGVuIGRhdGE8L3N1YmplY3Q+CiAgICA8c3ViamVjdD5CaWJsaW9tZXRyaWNzPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+SW5mb3JtYXRpb24gc2NpZW5jZTwvc3ViamVjdD4KICA8L3N1YmplY3RzPgogIDxyZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlR2VuZXJhbD0iRGF0YXNldCI+RGF0YVBhY2thZ2U8L3Jlc291cmNlVHlwZT4KICA8YWx0ZXJuYXRlSWRlbnRpZmllcnM+CiAgICA8YWx0ZXJuYXRlSWRlbnRpZmllciBhbHRlcm5hdGVJZGVudGlmaWVyVHlwZT0iY2l0YXRpb24iPlBpd293YXIgSEEsIFZpc2lvbiBUSiAoMjAxMykgRGF0YSByZXVzZSBhbmQgdGhlIG9wZW4gZGF0YSBjaXRhdGlvbiBhZHZhbnRhZ2UuIFBlZXJKIDE6IGUxNzUuPC9hbHRlcm5hdGVJZGVudGlmaWVyPgogIDwvYWx0ZXJuYXRlSWRlbnRpZmllcnM+CiAgPHJlbGF0ZWRJZGVudGlmaWVycz4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGlvblR5cGU9Ikhhc1BhcnQiIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIj4xMC41MDYxL0RSWUFELjc4MVBWLzE8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0aW9uVHlwZT0iSGFzUGFydCIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiPjEwLjUwNjEvRFJZQUQuNzgxUFYvMjwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRpb25UeXBlPSJIYXNQYXJ0IiByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTA2MS9EUllBRC43ODFQVi8zPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGlvblR5cGU9Ikhhc1BhcnQiIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIj4xMC41MDYxL0RSWUFELjc4MVBWLzQ8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0aW9uVHlwZT0iSGFzUGFydCIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiPjEwLjUwNjEvRFJZQUQuNzgxUFYvNTwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRpb25UeXBlPSJIYXNQYXJ0IiByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTA2MS9EUllBRC43ODFQVi82PC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGlvblR5cGU9Ikhhc1BhcnQiIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIj4xMC41MDYxL0RSWUFELjc4MVBWLzc8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0aW9uVHlwZT0iSGFzUGFydCIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiPjEwLjUwNjEvRFJZQUQuNzgxUFYvODwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRpb25UeXBlPSJIYXNQYXJ0IiByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTA2MS9EUllBRC43ODFQVi85PC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGlvblR5cGU9Ikhhc1BhcnQiIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIj4xMC41MDYxL0RSWUFELjc4MVBWLzEwPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGlvblR5cGU9Ikhhc1BhcnQiIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIj4xMC41MDYxL0RSWUFELjc4MVBWLzExPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGlvblR5cGU9Ikhhc1BhcnQiIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIj4xMC41MDYxL0RSWUFELjc4MVBWLzEyPC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGlvblR5cGU9IklzUmVmZXJlbmNlZEJ5IiByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNzcxNy9QRUVSSi4xNzU8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0aW9uVHlwZT0iSXNSZWZlcmVuY2VkQnkiIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iRE9JIi8+CiAgPC9yZWxhdGVkSWRlbnRpZmllcnM+CiAgPHJpZ2h0cz5odHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9wdWJsaWNkb21haW4vemVyby8xLjAvPC9yaWdodHM+CjwvcmVzb3VyY2U+","datacentre":"CDL.DRYAD
40
+ - Dryad","updated":"2014-05-30T05:11:55Z","prefix":"10.5061","doi":"10.5061/DRYAD.781PV","relatedIdentifier":["HasPart:DOI:10.5061/DRYAD.781PV/1","HasPart:DOI:10.5061/DRYAD.781PV/2","HasPart:DOI:10.5061/DRYAD.781PV/3","HasPart:DOI:10.5061/DRYAD.781PV/4","HasPart:DOI:10.5061/DRYAD.781PV/5","HasPart:DOI:10.5061/DRYAD.781PV/6","HasPart:DOI:10.5061/DRYAD.781PV/7","HasPart:DOI:10.5061/DRYAD.781PV/8","HasPart:DOI:10.5061/DRYAD.781PV/9","HasPart:DOI:10.5061/DRYAD.781PV/10","HasPart:DOI:10.5061/DRYAD.781PV/11","HasPart:DOI:10.5061/DRYAD.781PV/12","IsReferencedBy:DOI:10.7717/PEERJ.175","IsReferencedBy:DOI:"],"creator":["Piwowar,
41
+ Heather A.","Vision, Todd J."],"publisher":"Dryad Digital Repository","title":["Data
42
+ from: Data reuse and the open data citation advantage"],"publicationYear":"2013","resourceTypeGeneral":"Dataset"}]}}
43
+
44
+ '
45
+ http_version:
46
+ recorded_at: Sun, 06 Nov 2016 17:39:42 GMT
47
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,33 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <work:work xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:common="http://www.orcid.org/ns/common" xmlns:work="http://www.orcid.org/ns/work" visibility="public" xsi:schemaLocation="http://www.orcid.org/ns/work ../work-2.0_rc3.xsd">
3
+ <work:title>
4
+ <common:title>omniauth-orcid: v.1.1.5</common:title>
5
+ </work:title>
6
+ <work:journal-title>Zenodo</work:journal-title>
7
+ <work:short-description>onmiauth-orcid 1.1.5 was released on August 11, 2016 with the following changes: compatibility with omniauth-oauth2 1.4.0. Thanks to pull request #7 by eleanorakh.</work:short-description>
8
+ <work:type>other</work:type>
9
+ <common:publication-date>
10
+ <common:year>2016</common:year>
11
+ </common:publication-date>
12
+ <common:external-ids>
13
+ <common:external-id>
14
+ <common:external-id-type>doi</common:external-id-type>
15
+ <common:external-id-value>10.5281/zenodo.59983</common:external-id-value>
16
+ <common:external-id-relationship>self</common:external-id-relationship>
17
+ </common:external-id>
18
+ </common:external-ids>
19
+ <work:contributors>
20
+ <work:contributor>
21
+ <work:credit-name>Martin Fenner</work:credit-name>
22
+ </work:contributor>
23
+ <work:contributor>
24
+ <work:credit-name>Gudmundur A. Thorisson</work:credit-name>
25
+ </work:contributor>
26
+ <work:contributor>
27
+ <work:credit-name>Eleanor Kiefel Haggerty</work:credit-name>
28
+ </work:contributor>
29
+ <work:contributor>
30
+ <work:credit-name>Anusha Ranganathan</work:credit-name>
31
+ </work:contributor>
32
+ </work:contributors>
33
+ </work:work>
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ describe OrcidClient::Notification, vcr: true do
4
+ let(:doi) { "10.5281/zenodo.59983"}
5
+ let(:orcid) { "0000-0001-6528-2027" }
6
+ let(:notification_access_token) { ENV['NOTIFICATION_ACCESS_TOKEN'] }
7
+ let(:fixture_path) { "spec/fixtures/" }
8
+ let(:samples_path) { "resources/notification_2.0_rc3/samples/" }
9
+
10
+ subject { OrcidClient::Notification.new(doi: doi, orcid: orcid, notification_access_token: notification_access_token) }
11
+
12
+ describe 'schema' do
13
+ it 'validates sample' do
14
+ validation_errors = subject.schema.validate(samples_path + 'notification-permission-2.0_rc3.xml').map { |error| error.to_s }
15
+ expect(validation_errors).to be_empty
16
+ end
17
+
18
+ it 'exists' do
19
+ expect(subject.schema.errors).to be_empty
20
+ end
21
+
22
+ it 'validates data' do
23
+ expect(subject.validation_errors).to be_empty
24
+ end
25
+
26
+ it 'validates item type work' do
27
+ subject = OrcidClient::Notification.new(doi: "10.5061/DRYAD.781PV", orcid: "0000-0003-1613-5981", notification_access_token: notification_access_token)
28
+ expect(subject.item_type).to eq("work")
29
+ expect(subject.validation_errors).to be_empty
30
+ end
31
+
32
+ it 'validates data with errors' do
33
+ allow(subject).to receive(:metadata) { {} }
34
+ expect(subject.validation_errors).to eq(["The document has no document element."])
35
+ end
36
+ end
37
+
38
+ it 'data' do
39
+ doc = Nokogiri::XML(subject.data)
40
+ expect(doc.at_xpath('//notification:item-name').children.first.text).to eq("omniauth-orcid: v.1.1.5")
41
+ end
42
+ end
@@ -0,0 +1,32 @@
1
+ require 'bundler/setup'
2
+ Bundler.setup
3
+
4
+ require 'simplecov'
5
+ SimpleCov.start
6
+
7
+ require 'orcid_client'
8
+ require 'maremma'
9
+ require 'rspec'
10
+ require 'rack/test'
11
+ require 'webmock/rspec'
12
+ require 'vcr'
13
+
14
+ RSpec.configure do |config|
15
+ config.include WebMock::API
16
+ config.include Rack::Test::Methods
17
+ config.expect_with :rspec do |c|
18
+ c.syntax = :expect
19
+ end
20
+ end
21
+
22
+ VCR.configure do |c|
23
+ c.cassette_library_dir = "spec/fixtures/vcr_cassettes"
24
+ c.hook_into :webmock
25
+ c.ignore_localhost = true
26
+ c.ignore_hosts 'codeclimate.com'
27
+ c.filter_sensitive_data("<ORCID_CLIENT_ID>") { ENV["ORCID_CLIENT_ID"] }
28
+ c.filter_sensitive_data("<ORCID_CLIENT_SECRET>") { ENV["ORCID_CLIENT_SECRET"] }
29
+ c.filter_sensitive_data("<ACCESS_TOKEN>") { ENV["ACCESS_TOKEN"] }
30
+ c.filter_sensitive_data("<NOTIFICATION_ACCESS_TOKEN>") { ENV["NOTIFICATION_ACCESS_TOKEN"] }
31
+ c.configure_rspec_metadata!
32
+ end
data/spec/work_spec.rb ADDED
@@ -0,0 +1,100 @@
1
+ require 'spec_helper'
2
+
3
+ describe OrcidClient::Work, vcr: true do
4
+ let(:doi) { "10.5281/zenodo.59983"}
5
+ let(:orcid) { "0000-0001-6528-2027" }
6
+ let(:access_token) { ENV['ACCESS_TOKEN'] }
7
+ let(:fixture_path) { "spec/fixtures/" }
8
+ let(:samples_path) { "resources/record_2.0_rc3/samples/" }
9
+
10
+ subject { OrcidClient::Work.new(doi: doi, orcid: orcid, access_token: access_token) }
11
+
12
+ describe 'schema' do
13
+ it 'validates sample' do
14
+ validation_errors = subject.schema.validate(samples_path + 'work-full-2.0_rc3.xml').map { |error| error.to_s }
15
+ expect(validation_errors).to be_empty
16
+ end
17
+
18
+ it 'exists' do
19
+ expect(subject.schema.errors).to be_empty
20
+ end
21
+
22
+ it 'validates data' do
23
+ expect(subject.validation_errors).to be_empty
24
+ end
25
+
26
+ it 'validates work type data-set' do
27
+ subject = OrcidClient::Work.new(doi: "10.5061/DRYAD.781PV", orcid: "0000-0003-1613-5981", access_token: access_token)
28
+ expect(subject.type).to eq("data-set")
29
+ expect(subject.validation_errors).to be_empty
30
+ end
31
+
32
+ it 'validates ORCID IDs for contributors' do
33
+ subject = OrcidClient::Work.new(doi: "10.2314/COSCV1", orcid: "0000-0001-6528-2027", access_token: access_token)
34
+ expect(subject.validation_errors).to be_empty
35
+ end
36
+
37
+ it 'validates data with errors' do
38
+ allow(subject).to receive(:metadata) { {} }
39
+ expect(subject.validation_errors).to eq(["The document has no document element."])
40
+ end
41
+ end
42
+
43
+ describe 'contributors' do
44
+ it 'valid' do
45
+ expect(subject.contributors).to eq([{:credit_name=>"Martin Fenner"},
46
+ {:credit_name=>"Gudmundur A. Thorisson"},
47
+ {:credit_name=>"Eleanor Kiefel Haggerty"},
48
+ {:credit_name=>"Anusha Ranganathan"}])
49
+ end
50
+
51
+ it 'literal' do
52
+ subject = OrcidClient::Work.new(doi: "10.1594/PANGAEA.745083", orcid: "0000-0003-3235-5933", access_token: access_token)
53
+ expect(subject.contributors).to eq([{:credit_name=>"EPOCA Arctic experiment 2009 team"}])
54
+ end
55
+
56
+ it 'with ORCID IDs' do
57
+ subject = OrcidClient::Work.new(doi: "10.2314/COSCV1", orcid: "0000-0001-6528-2027", access_token: access_token)
58
+ expect(subject.contributors).to eq([{:orcid=>"http://orcid.org/0000-0003-0232-7085",
59
+ :credit_name=>"Lambert Heller"},
60
+ {:orcid=>"http://orcid.org/0000-0002-3075-7640",
61
+ :credit_name=>"Ina Blümel"},
62
+ {:credit_name=>"Stefan Dietze"},
63
+ {:orcid=>"http://orcid.org/0000-0003-1419-2405",
64
+ :credit_name=>"Martin Fenner"},
65
+ {:orcid=>"http://orcid.org/0000-0002-9314-5633",
66
+ :credit_name=>"Sascha Friesike"},
67
+ {:orcid=>"http://orcid.org/0000-0003-2499-7741",
68
+ :credit_name=>"Christian Hauschke"},
69
+ {:credit_name=>"Christian Heise"},
70
+ {:orcid=>"http://orcid.org/0000-0003-3271-9653",
71
+ :credit_name=>"Robert Jäschke"},
72
+ {:orcid=>"http://orcid.org/0000-0002-9813-9208",
73
+ :credit_name=>"Ulrich Kleinwechter"},
74
+ {:orcid=>"http://orcid.org/0000-0002-8189-8574",
75
+ :credit_name=>"Mareike König"},
76
+ {:orcid=>"http://orcid.org/0000-0002-7177-9045",
77
+ :credit_name=>"Martin Mehlberg"},
78
+ {:orcid=>"http://orcid.org/0000-0002-0161-1888",
79
+ :credit_name=>"Janna Neumann"},
80
+ {:orcid=>"http://orcid.org/0000-0003-3334-2771",
81
+ :credit_name=>"Heinz Pampel"},
82
+ {:orcid=>"http://orcid.org/0000-0002-5111-2788",
83
+ :credit_name=>"Marco Tullney"}])
84
+ end
85
+
86
+ it 'multiple titles' do
87
+ subject = OrcidClient::Work.new(doi: "10.6084/M9.FIGSHARE.1537331.V1", orcid: "0000-0003-0811-2536", access_token: access_token)
88
+ expect(subject.contributors).to eq([{:credit_name=>"Iosr journals"}, {:credit_name=>"Dr. Rohit Arora, MDS"}, {:credit_name=>"Shalya Raj*.MDS"}])
89
+ end
90
+ end
91
+
92
+ it 'publication_date' do
93
+ expect(subject.publication_date).to eq("year" => 2016)
94
+ end
95
+
96
+ it 'data' do
97
+ xml = File.read(fixture_path + 'work.xml')
98
+ expect(subject.data).to eq(xml)
99
+ end
100
+ end
metadata ADDED
@@ -0,0 +1,392 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: orcid_client
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ platform: ruby
6
+ authors:
7
+ - Martin Fenner
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-11-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: maremma
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: nokogiri
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 1.6.8
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.6.8
41
+ - !ruby/object:Gem::Dependency
42
+ name: builder
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.2'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 3.2.2
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '3.2'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 3.2.2
61
+ - !ruby/object:Gem::Dependency
62
+ name: namae
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 0.10.1
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 0.10.1
75
+ - !ruby/object:Gem::Dependency
76
+ name: activesupport
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '4.2'
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: 4.2.5
85
+ type: :runtime
86
+ prerelease: false
87
+ version_requirements: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - "~>"
90
+ - !ruby/object:Gem::Version
91
+ version: '4.2'
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: 4.2.5
95
+ - !ruby/object:Gem::Dependency
96
+ name: sanitize
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '4.0'
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 4.0.1
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '4.0'
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: 4.0.1
115
+ - !ruby/object:Gem::Dependency
116
+ name: dotenv
117
+ requirement: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - "~>"
120
+ - !ruby/object:Gem::Version
121
+ version: '2.1'
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: 2.1.1
125
+ type: :runtime
126
+ prerelease: false
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '2.1'
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: 2.1.1
135
+ - !ruby/object:Gem::Dependency
136
+ name: bundler
137
+ requirement: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - "~>"
140
+ - !ruby/object:Gem::Version
141
+ version: '1.0'
142
+ type: :development
143
+ prerelease: false
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - "~>"
147
+ - !ruby/object:Gem::Version
148
+ version: '1.0'
149
+ - !ruby/object:Gem::Dependency
150
+ name: rspec
151
+ requirement: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - "~>"
154
+ - !ruby/object:Gem::Version
155
+ version: '3.4'
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: '3.4'
163
+ - !ruby/object:Gem::Dependency
164
+ name: rake
165
+ requirement: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - ">="
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ type: :development
171
+ prerelease: false
172
+ version_requirements: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ - !ruby/object:Gem::Dependency
178
+ name: rack-test
179
+ requirement: !ruby/object:Gem::Requirement
180
+ requirements:
181
+ - - "~>"
182
+ - !ruby/object:Gem::Version
183
+ version: '0'
184
+ type: :development
185
+ prerelease: false
186
+ version_requirements: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - "~>"
189
+ - !ruby/object:Gem::Version
190
+ version: '0'
191
+ - !ruby/object:Gem::Dependency
192
+ name: vcr
193
+ requirement: !ruby/object:Gem::Requirement
194
+ requirements:
195
+ - - ">="
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ - !ruby/object:Gem::Dependency
206
+ name: webmock
207
+ requirement: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - "~>"
210
+ - !ruby/object:Gem::Version
211
+ version: '1.22'
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: 1.22.3
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '1.22'
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ version: 1.22.3
225
+ - !ruby/object:Gem::Dependency
226
+ name: codeclimate-test-reporter
227
+ requirement: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - "~>"
230
+ - !ruby/object:Gem::Version
231
+ version: 1.0.0
232
+ type: :development
233
+ prerelease: false
234
+ version_requirements: !ruby/object:Gem::Requirement
235
+ requirements:
236
+ - - "~>"
237
+ - !ruby/object:Gem::Version
238
+ version: 1.0.0
239
+ - !ruby/object:Gem::Dependency
240
+ name: simplecov
241
+ requirement: !ruby/object:Gem::Requirement
242
+ requirements:
243
+ - - ">="
244
+ - !ruby/object:Gem::Version
245
+ version: '0'
246
+ type: :development
247
+ prerelease: false
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ requirements:
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ version: '0'
253
+ description: Ruby client library for the ORCID API.
254
+ email: mfenner@datacite.org
255
+ executables: []
256
+ extensions: []
257
+ extra_rdoc_files:
258
+ - README.md
259
+ files:
260
+ - ".env.example"
261
+ - ".gitignore"
262
+ - ".travis.yml"
263
+ - CHANGELOG.md
264
+ - Gemfile
265
+ - Gemfile.lock
266
+ - LICENSE.md
267
+ - README.md
268
+ - Rakefile
269
+ - lib/orcid_client.rb
270
+ - lib/orcid_client/api.rb
271
+ - lib/orcid_client/author.rb
272
+ - lib/orcid_client/base.rb
273
+ - lib/orcid_client/date.rb
274
+ - lib/orcid_client/metadata.rb
275
+ - lib/orcid_client/notification.rb
276
+ - lib/orcid_client/version.rb
277
+ - lib/orcid_client/work.rb
278
+ - lib/orcid_client/work_type.rb
279
+ - orcid_client.gemspec
280
+ - resources/common_2.0_rc3/common-2.0_rc3.xsd
281
+ - resources/common_2.0_rc3/samples/common-2.0_rc3.xml
282
+ - resources/notification_2.0_rc3/notification-custom-2.0_rc3.xsd
283
+ - resources/notification_2.0_rc3/notification-permission-2.0_rc3.xsd
284
+ - resources/notification_2.0_rc3/samples/notification-custom-2.0_rc3.xml
285
+ - resources/notification_2.0_rc3/samples/notification-permission-2.0_rc3.xml
286
+ - resources/record_2.0_rc3/activities-2.0_rc3.xsd
287
+ - resources/record_2.0_rc3/address-2.0_rc3.xsd
288
+ - resources/record_2.0_rc3/bulk-2.0_rc3.xsd
289
+ - resources/record_2.0_rc3/deprecated-2.0_rc3.xsd
290
+ - resources/record_2.0_rc3/education-2.0_rc3.xsd
291
+ - resources/record_2.0_rc3/email-2.0_rc3.xsd
292
+ - resources/record_2.0_rc3/employment-2.0_rc3.xsd
293
+ - resources/record_2.0_rc3/error-2.0_rc3.xsd
294
+ - resources/record_2.0_rc3/funding-2.0_rc3.xsd
295
+ - resources/record_2.0_rc3/history-2.0_rc3.xsd
296
+ - resources/record_2.0_rc3/internal-2.0_rc3.xsd
297
+ - resources/record_2.0_rc3/keyword-2.0_rc3.xsd
298
+ - resources/record_2.0_rc3/other-name-2.0_rc3.xsd
299
+ - resources/record_2.0_rc3/peer-review-2.0_rc3.xsd
300
+ - resources/record_2.0_rc3/person-2.0_rc3.xsd
301
+ - resources/record_2.0_rc3/person-external-identifier-2.0_rc3.xsd
302
+ - resources/record_2.0_rc3/personal-details-2.0_rc3.xsd
303
+ - resources/record_2.0_rc3/preferences-2.0_rc3.xsd
304
+ - resources/record_2.0_rc3/record-2.0_rc3.xsd
305
+ - resources/record_2.0_rc3/researcher-url-2.0_rc3.xsd
306
+ - resources/record_2.0_rc3/samples/activities-2.0_rc3.xml
307
+ - resources/record_2.0_rc3/samples/address-2.0_rc3.xml
308
+ - resources/record_2.0_rc3/samples/addresses-2.0_rc3.xml
309
+ - resources/record_2.0_rc3/samples/biography-2.0_rc3.xml
310
+ - resources/record_2.0_rc3/samples/bulk-work-2.0_rc3.json
311
+ - resources/record_2.0_rc3/samples/bulk-work-2.0_rc3.xml
312
+ - resources/record_2.0_rc3/samples/credit-name-2.0_rc3.xml
313
+ - resources/record_2.0_rc3/samples/deprecated-2.0_rc3.xml
314
+ - resources/record_2.0_rc3/samples/education-2.0_rc3.xml
315
+ - resources/record_2.0_rc3/samples/education-full-2.0_rc3.xml
316
+ - resources/record_2.0_rc3/samples/email-2.0_rc3.xml
317
+ - resources/record_2.0_rc3/samples/emails-2.0_rc3.xml
318
+ - resources/record_2.0_rc3/samples/employment-2.0_rc3.xml
319
+ - resources/record_2.0_rc3/samples/employment-full-2.0_rc3.xml
320
+ - resources/record_2.0_rc3/samples/error-2.0_rc3.xml
321
+ - resources/record_2.0_rc3/samples/external-identifier-2.0_rc3.xml
322
+ - resources/record_2.0_rc3/samples/external-identifiers-2.0_rc3.xml
323
+ - resources/record_2.0_rc3/samples/funding-2.0_rc3.xml
324
+ - resources/record_2.0_rc3/samples/funding-full-2.0_rc3.xml
325
+ - resources/record_2.0_rc3/samples/history-2.0_rc3.xml
326
+ - resources/record_2.0_rc3/samples/keyword-2.0_rc3.xml
327
+ - resources/record_2.0_rc3/samples/keywords-2.0_rc3.xml
328
+ - resources/record_2.0_rc3/samples/name-2.0_rc3.xml
329
+ - resources/record_2.0_rc3/samples/other-name-2.0_rc3.xml
330
+ - resources/record_2.0_rc3/samples/other-names-2.0_rc3.xml
331
+ - resources/record_2.0_rc3/samples/peer-review-2.0_rc3.xml
332
+ - resources/record_2.0_rc3/samples/peer-review-full-2.0_rc3.xml
333
+ - resources/record_2.0_rc3/samples/person-2.0_rc3.xml
334
+ - resources/record_2.0_rc3/samples/personal-details-2.0_rc3.xml
335
+ - resources/record_2.0_rc3/samples/preferences-2.0_rc3.xml
336
+ - resources/record_2.0_rc3/samples/record-2.0_rc3.xml
337
+ - resources/record_2.0_rc3/samples/researcher-url-2.0_rc3.xml
338
+ - resources/record_2.0_rc3/samples/researcher-urls-2.0_rc3.xml
339
+ - resources/record_2.0_rc3/samples/search-2.0_rc3.xml
340
+ - resources/record_2.0_rc3/samples/work-2.0_rc3.xml
341
+ - resources/record_2.0_rc3/samples/work-full-2.0_rc3.xml
342
+ - resources/record_2.0_rc3/search-2.0_rc3.xsd
343
+ - resources/record_2.0_rc3/work-2.0_rc3.xsd
344
+ - spec/api_spec.rb
345
+ - spec/fixtures/vcr_cassettes/OrcidClient/get/should_get_works.yml
346
+ - spec/fixtures/vcr_cassettes/OrcidClient/notifications/post/should_create_notification.yml
347
+ - spec/fixtures/vcr_cassettes/OrcidClient/works/delete/should_delete_work.yml
348
+ - spec/fixtures/vcr_cassettes/OrcidClient/works/get/should_get_works.yml
349
+ - spec/fixtures/vcr_cassettes/OrcidClient/works/post/should_create_work.yml
350
+ - spec/fixtures/vcr_cassettes/OrcidClient/works/put/should_update_work.yml
351
+ - spec/fixtures/vcr_cassettes/OrcidClient_Notification/data.yml
352
+ - spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_data.yml
353
+ - spec/fixtures/vcr_cassettes/OrcidClient_Notification/schema/validates_item_type_work.yml
354
+ - spec/fixtures/vcr_cassettes/OrcidClient_Work/citation.yml
355
+ - spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/literal.yml
356
+ - spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/multiple_titles.yml
357
+ - spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/valid.yml
358
+ - spec/fixtures/vcr_cassettes/OrcidClient_Work/contributors/with_ORCID_IDs.yml
359
+ - spec/fixtures/vcr_cassettes/OrcidClient_Work/data.yml
360
+ - spec/fixtures/vcr_cassettes/OrcidClient_Work/publication_date.yml
361
+ - spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_ORCID_IDs_for_contributors.yml
362
+ - spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_data.yml
363
+ - spec/fixtures/vcr_cassettes/OrcidClient_Work/schema/validates_work_type_data-set.yml
364
+ - spec/fixtures/work.xml
365
+ - spec/notification_spec.rb
366
+ - spec/spec_helper.rb
367
+ - spec/work_spec.rb
368
+ homepage: https://github.com/datacite/orcid_client
369
+ licenses:
370
+ - MIT
371
+ metadata: {}
372
+ post_install_message:
373
+ rdoc_options: []
374
+ require_paths:
375
+ - lib
376
+ required_ruby_version: !ruby/object:Gem::Requirement
377
+ requirements:
378
+ - - ">="
379
+ - !ruby/object:Gem::Version
380
+ version: '0'
381
+ required_rubygems_version: !ruby/object:Gem::Requirement
382
+ requirements:
383
+ - - ">="
384
+ - !ruby/object:Gem::Version
385
+ version: '0'
386
+ requirements: []
387
+ rubyforge_project:
388
+ rubygems_version: 2.4.5
389
+ signing_key:
390
+ specification_version: 4
391
+ summary: Ruby client library for the ORCID API
392
+ test_files: []