orcid_client 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []