briard 2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (730) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/build.yml +37 -0
  3. data/.github/workflows/changelog.yml +37 -0
  4. data/.github/workflows/release.yml +47 -0
  5. data/.gitignore +59 -0
  6. data/.rubocop.yml +658 -0
  7. data/CHANGELOG.md +1 -0
  8. data/CITATION +16 -0
  9. data/Gemfile +3 -0
  10. data/Gemfile.lock +226 -0
  11. data/LICENSE.md +21 -0
  12. data/README.md +1030 -0
  13. data/Rakefile +13 -0
  14. data/bin/briard +9 -0
  15. data/bolognese.gemspec +59 -0
  16. data/lib/briard/.env.example +3 -0
  17. data/lib/briard/array.rb +13 -0
  18. data/lib/briard/author_utils.rb +166 -0
  19. data/lib/briard/cli.rb +58 -0
  20. data/lib/briard/crossref_utils.rb +336 -0
  21. data/lib/briard/datacite_utils.rb +395 -0
  22. data/lib/briard/doi_utils.rb +65 -0
  23. data/lib/briard/metadata.rb +285 -0
  24. data/lib/briard/metadata_utils.rb +215 -0
  25. data/lib/briard/pubmed.rb +36 -0
  26. data/lib/briard/readers/bibtex_reader.rb +100 -0
  27. data/lib/briard/readers/citeproc_reader.rb +119 -0
  28. data/lib/briard/readers/codemeta_reader.rb +108 -0
  29. data/lib/briard/readers/crosscite_reader.rb +14 -0
  30. data/lib/briard/readers/crossref_reader.rb +368 -0
  31. data/lib/briard/readers/datacite_json_reader.rb +14 -0
  32. data/lib/briard/readers/datacite_reader.rb +341 -0
  33. data/lib/briard/readers/npm_reader.rb +115 -0
  34. data/lib/briard/readers/ris_reader.rb +114 -0
  35. data/lib/briard/readers/schema_org_reader.rb +263 -0
  36. data/lib/briard/string.rb +7 -0
  37. data/lib/briard/utils.rb +1369 -0
  38. data/lib/briard/version.rb +3 -0
  39. data/lib/briard/whitelist_scrubber.rb +47 -0
  40. data/lib/briard/writers/bibtex_writer.rb +32 -0
  41. data/lib/briard/writers/citation_writer.rb +14 -0
  42. data/lib/briard/writers/citeproc_writer.rb +11 -0
  43. data/lib/briard/writers/codemeta_writer.rb +29 -0
  44. data/lib/briard/writers/crosscite_writer.rb +11 -0
  45. data/lib/briard/writers/crossref_writer.rb +11 -0
  46. data/lib/briard/writers/csv_writer.rb +26 -0
  47. data/lib/briard/writers/datacite_json_writer.rb +11 -0
  48. data/lib/briard/writers/datacite_writer.rb +12 -0
  49. data/lib/briard/writers/jats_writer.rb +134 -0
  50. data/lib/briard/writers/rdf_xml_writer.rb +11 -0
  51. data/lib/briard/writers/ris_writer.rb +29 -0
  52. data/lib/briard/writers/schema_org_writer.rb +51 -0
  53. data/lib/briard/writers/turtle_writer.rb +11 -0
  54. data/lib/briard.rb +31 -0
  55. data/resources/2008/09/xsd.xsl +997 -0
  56. data/resources/crossref/AccessIndicators.xsd +47 -0
  57. data/resources/crossref/JATS-journalpublishing1-3d2-mathml3-elements.xsd +10130 -0
  58. data/resources/crossref/JATS-journalpublishing1-3d2-mathml3.xsd +48 -0
  59. data/resources/crossref/JATS-journalpublishing1-elements.xsd +8705 -0
  60. data/resources/crossref/JATS-journalpublishing1-mathml3-elements.xsd +8608 -0
  61. data/resources/crossref/JATS-journalpublishing1-mathml3.xsd +49 -0
  62. data/resources/crossref/JATS-journalpublishing1.xsd +6176 -0
  63. data/resources/crossref/clinicaltrials.xsd +61 -0
  64. data/resources/crossref/common5.3.1.xsd +1530 -0
  65. data/resources/crossref/crossref5.3.1.xsd +1949 -0
  66. data/resources/crossref/crossref_query_output3.0.xsd +1097 -0
  67. data/resources/crossref/fundref.xsd +49 -0
  68. data/resources/crossref/module-ali.xsd +39 -0
  69. data/resources/crossref/relations.xsd +444 -0
  70. data/resources/datacite-contributorType-v4.xsd +35 -0
  71. data/resources/datacite-dateType-v4.xsd +25 -0
  72. data/resources/datacite-descriptionType-v4.xsd +19 -0
  73. data/resources/datacite-funderIdentifierType-v4.xsd +15 -0
  74. data/resources/datacite-nameType-v4.xsd +10 -0
  75. data/resources/datacite-relatedIdentifierType-v4.xsd +34 -0
  76. data/resources/datacite-relationType-v4.xsd +49 -0
  77. data/resources/datacite-resourceType-v4.xsd +28 -0
  78. data/resources/datacite-titleType-v4.xsd +14 -0
  79. data/resources/kernel-2.1/include/datacite-contributorType-v1.1.xsd +22 -0
  80. data/resources/kernel-2.1/include/datacite-contributorType-v2.xsd +3 -0
  81. data/resources/kernel-2.1/include/datacite-dateType-v1.1.xsd +31 -0
  82. data/resources/kernel-2.1/include/datacite-dateType-v2.xsd +3 -0
  83. data/resources/kernel-2.1/include/datacite-descriptionType-v1.1.xsd +14 -0
  84. data/resources/kernel-2.1/include/datacite-descriptionType-v2.xsd +3 -0
  85. data/resources/kernel-2.1/include/datacite-relatedIdentifierType-v1.1.xsd +24 -0
  86. data/resources/kernel-2.1/include/datacite-relatedIdentifierType-v2.xsd +3 -0
  87. data/resources/kernel-2.1/include/datacite-relationType-v1.1.xsd +29 -0
  88. data/resources/kernel-2.1/include/datacite-relationType-v2.xsd +3 -0
  89. data/resources/kernel-2.1/include/datacite-resourceType-v1.1.xsd +22 -0
  90. data/resources/kernel-2.1/include/datacite-resourceType-v2.xsd +3 -0
  91. data/resources/kernel-2.1/include/datacite-titleType-v1.1.xsd +11 -0
  92. data/resources/kernel-2.1/include/datacite-titleType-v2.xsd +3 -0
  93. data/resources/kernel-2.1/metadata.xsd +315 -0
  94. data/resources/kernel-2.2/include/datacite-contributorType-v2.xsd +29 -0
  95. data/resources/kernel-2.2/include/datacite-dateType-v2.xsd +21 -0
  96. data/resources/kernel-2.2/include/datacite-descriptionType-v2.xsd +15 -0
  97. data/resources/kernel-2.2/include/datacite-relatedIdentifierType-v2.xsd +25 -0
  98. data/resources/kernel-2.2/include/datacite-relationType-v2.xsd +29 -0
  99. data/resources/kernel-2.2/include/datacite-resourceType-v2.xsd +23 -0
  100. data/resources/kernel-2.2/include/datacite-titleType-v2.xsd +10 -0
  101. data/resources/kernel-2.2/metadata.xsd +316 -0
  102. data/resources/kernel-3/include/datacite-contributorType-v3.1.xsd +35 -0
  103. data/resources/kernel-3/include/datacite-dateType-v3.xsd +21 -0
  104. data/resources/kernel-3/include/datacite-descriptionType-v3.xsd +17 -0
  105. data/resources/kernel-3/include/datacite-relatedIdentifierType-v3.1.xsd +30 -0
  106. data/resources/kernel-3/include/datacite-relationType-v3.1.xsd +38 -0
  107. data/resources/kernel-3/include/datacite-resourceType-v3.xsd +26 -0
  108. data/resources/kernel-3/include/datacite-titleType-v3.xsd +12 -0
  109. data/resources/kernel-3/include/xml.xsd +286 -0
  110. data/resources/kernel-3/metadata.xsd +380 -0
  111. data/resources/kernel-3.0/include/datacite-contributorType-v3.xsd +33 -0
  112. data/resources/kernel-3.0/include/datacite-dateType-v3.xsd +21 -0
  113. data/resources/kernel-3.0/include/datacite-descriptionType-v3.xsd +17 -0
  114. data/resources/kernel-3.0/include/datacite-relatedIdentifierType-v3.xsd +27 -0
  115. data/resources/kernel-3.0/include/datacite-relationType-v3.xsd +33 -0
  116. data/resources/kernel-3.0/include/datacite-resourceType-v3.xsd +26 -0
  117. data/resources/kernel-3.0/include/datacite-titleType-v3.xsd +12 -0
  118. data/resources/kernel-3.0/include/xml.xsd +286 -0
  119. data/resources/kernel-3.0/metadata.xsd +377 -0
  120. data/resources/kernel-3.1/include/datacite-contributorType-v3.1.xsd +35 -0
  121. data/resources/kernel-3.1/include/datacite-dateType-v3.xsd +21 -0
  122. data/resources/kernel-3.1/include/datacite-descriptionType-v3.xsd +17 -0
  123. data/resources/kernel-3.1/include/datacite-relatedIdentifierType-v3.1.xsd +30 -0
  124. data/resources/kernel-3.1/include/datacite-relationType-v3.1.xsd +38 -0
  125. data/resources/kernel-3.1/include/datacite-resourceType-v3.xsd +26 -0
  126. data/resources/kernel-3.1/include/datacite-titleType-v3.xsd +12 -0
  127. data/resources/kernel-3.1/include/xml.xsd +286 -0
  128. data/resources/kernel-3.1/metadata.xsd +380 -0
  129. data/resources/kernel-4/include/datacite-contributorType-v4.xsd +35 -0
  130. data/resources/kernel-4/include/datacite-dateType-v4.xsd +25 -0
  131. data/resources/kernel-4/include/datacite-descriptionType-v4.xsd +19 -0
  132. data/resources/kernel-4/include/datacite-funderIdentifierType-v4.xsd +16 -0
  133. data/resources/kernel-4/include/datacite-nameType-v4.xsd +10 -0
  134. data/resources/kernel-4/include/datacite-numberType-v4.xsd +12 -0
  135. data/resources/kernel-4/include/datacite-relatedIdentifierType-v4.xsd +34 -0
  136. data/resources/kernel-4/include/datacite-relationType-v4.xsd +51 -0
  137. data/resources/kernel-4/include/datacite-resourceType-v4.xsd +43 -0
  138. data/resources/kernel-4/include/datacite-titleType-v4.xsd +14 -0
  139. data/resources/kernel-4/include/xml.xsd +286 -0
  140. data/resources/kernel-4/metadata.xsd +707 -0
  141. data/resources/kernel-4.0/include/datacite-contributorType-v4.xsd +35 -0
  142. data/resources/kernel-4.0/include/datacite-dateType-v4.xsd +21 -0
  143. data/resources/kernel-4.0/include/datacite-descriptionType-v4.xsd +19 -0
  144. data/resources/kernel-4.0/include/datacite-funderIdentifierType-v4.xsd +15 -0
  145. data/resources/kernel-4.0/include/datacite-relatedIdentifierType-v4.xsd +32 -0
  146. data/resources/kernel-4.0/include/datacite-relationType-v4.xsd +39 -0
  147. data/resources/kernel-4.0/include/datacite-resourceType-v4.xsd +26 -0
  148. data/resources/kernel-4.0/include/datacite-titleType-v4.xsd +14 -0
  149. data/resources/kernel-4.0/include/xml.xsd +286 -0
  150. data/resources/kernel-4.0/metadata.xsd +470 -0
  151. data/resources/kernel-4.1/include/datacite-contributorType-v4.xsd +35 -0
  152. data/resources/kernel-4.1/include/datacite-dateType-v4.1.xsd +23 -0
  153. data/resources/kernel-4.1/include/datacite-descriptionType-v4.xsd +19 -0
  154. data/resources/kernel-4.1/include/datacite-funderIdentifierType-v4.xsd +15 -0
  155. data/resources/kernel-4.1/include/datacite-nameType-v4.1.xsd +10 -0
  156. data/resources/kernel-4.1/include/datacite-relatedIdentifierType-v4.xsd +32 -0
  157. data/resources/kernel-4.1/include/datacite-relationType-v4.1.xsd +46 -0
  158. data/resources/kernel-4.1/include/datacite-resourceType-v4.1.xsd +28 -0
  159. data/resources/kernel-4.1/include/datacite-titleType-v4.xsd +14 -0
  160. data/resources/kernel-4.1/include/xml.xsd +286 -0
  161. data/resources/kernel-4.1/metadata.xsd +483 -0
  162. data/resources/kernel-4.2/include/datacite-contributorType-v4.xsd +35 -0
  163. data/resources/kernel-4.2/include/datacite-dateType-v4.xsd +25 -0
  164. data/resources/kernel-4.2/include/datacite-descriptionType-v4.xsd +19 -0
  165. data/resources/kernel-4.2/include/datacite-funderIdentifierType-v4.xsd +15 -0
  166. data/resources/kernel-4.2/include/datacite-nameType-v4.xsd +10 -0
  167. data/resources/kernel-4.2/include/datacite-relatedIdentifierType-v4.xsd +34 -0
  168. data/resources/kernel-4.2/include/datacite-relationType-v4.xsd +49 -0
  169. data/resources/kernel-4.2/include/datacite-resourceType-v4.xsd +28 -0
  170. data/resources/kernel-4.2/include/datacite-titleType-v4.xsd +14 -0
  171. data/resources/kernel-4.2/include/xml.xsd +286 -0
  172. data/resources/kernel-4.2/metadata.xsd +479 -0
  173. data/resources/kernel-4.3/include/datacite-contributorType-v4.xsd +35 -0
  174. data/resources/kernel-4.3/include/datacite-dateType-v4.xsd +25 -0
  175. data/resources/kernel-4.3/include/datacite-descriptionType-v4.xsd +19 -0
  176. data/resources/kernel-4.3/include/datacite-funderIdentifierType-v4.xsd +16 -0
  177. data/resources/kernel-4.3/include/datacite-nameType-v4.xsd +10 -0
  178. data/resources/kernel-4.3/include/datacite-relatedIdentifierType-v4.xsd +34 -0
  179. data/resources/kernel-4.3/include/datacite-relationType-v4.xsd +49 -0
  180. data/resources/kernel-4.3/include/datacite-resourceType-v4.xsd +28 -0
  181. data/resources/kernel-4.3/include/datacite-titleType-v4.xsd +14 -0
  182. data/resources/kernel-4.3/include/xml.xsd +286 -0
  183. data/resources/kernel-4.3/metadata.xsd +515 -0
  184. data/resources/kernel-4.4/include/datacite-contributorType-v4.xsd +35 -0
  185. data/resources/kernel-4.4/include/datacite-dateType-v4.xsd +25 -0
  186. data/resources/kernel-4.4/include/datacite-descriptionType-v4.xsd +19 -0
  187. data/resources/kernel-4.4/include/datacite-funderIdentifierType-v4.xsd +16 -0
  188. data/resources/kernel-4.4/include/datacite-nameType-v4.xsd +10 -0
  189. data/resources/kernel-4.4/include/datacite-numberType-v4.xsd +12 -0
  190. data/resources/kernel-4.4/include/datacite-relatedIdentifierType-v4.xsd +34 -0
  191. data/resources/kernel-4.4/include/datacite-relationType-v4.xsd +51 -0
  192. data/resources/kernel-4.4/include/datacite-resourceType-v4.xsd +43 -0
  193. data/resources/kernel-4.4/include/datacite-titleType-v4.xsd +14 -0
  194. data/resources/kernel-4.4/include/xml.xsd +286 -0
  195. data/resources/kernel-4.4/metadata.xsd +707 -0
  196. data/resources/oecd/dfg-mappings.json +1866 -0
  197. data/resources/oecd/for-mappings.json +1099 -0
  198. data/resources/oecd/fos-mappings.json +198 -0
  199. data/resources/schema_org/jsonldcontext.json +7477 -0
  200. data/resources/spdx/licenses.json +5297 -0
  201. data/resources/xml.xsd +286 -0
  202. data/spec/array_spec.rb +22 -0
  203. data/spec/author_utils_spec.rb +193 -0
  204. data/spec/cli_spec.rb +226 -0
  205. data/spec/datacite_utils_spec.rb +178 -0
  206. data/spec/doi_utils_spec.rb +314 -0
  207. data/spec/find_from_format_spec.rb +114 -0
  208. data/spec/fixtures/aida.json +82 -0
  209. data/spec/fixtures/cgimp_package.json +18 -0
  210. data/spec/fixtures/cit_package.json +19 -0
  211. data/spec/fixtures/citeproc-no-author.json +26 -0
  212. data/spec/fixtures/citeproc-no-categories.json +21 -0
  213. data/spec/fixtures/citeproc.json +30 -0
  214. data/spec/fixtures/codemeta.json +86 -0
  215. data/spec/fixtures/codemeta_v2.json +86 -0
  216. data/spec/fixtures/crosscite.json +63 -0
  217. data/spec/fixtures/crossref.bib +14 -0
  218. data/spec/fixtures/crossref.ris +15 -0
  219. data/spec/fixtures/crossref.xml +606 -0
  220. data/spec/fixtures/datacite-empty-sizes.xml +57 -0
  221. data/spec/fixtures/datacite-example-affiliation.xml +114 -0
  222. data/spec/fixtures/datacite-example-ancientdates-v4.3.xml +29 -0
  223. data/spec/fixtures/datacite-example-complicated-tba.xml +56 -0
  224. data/spec/fixtures/datacite-example-complicated-v3.0.xml +48 -0
  225. data/spec/fixtures/datacite-example-complicated-v4.0.xml +54 -0
  226. data/spec/fixtures/datacite-example-complicated-v4.1.xml +57 -0
  227. data/spec/fixtures/datacite-example-dissertation-v4.4.xml +56 -0
  228. data/spec/fixtures/datacite-example-escaped-text.xml +56 -0
  229. data/spec/fixtures/datacite-example-full-v4.4.xml +114 -0
  230. data/spec/fixtures/datacite-example-geolocation-2.xml +141 -0
  231. data/spec/fixtures/datacite-example-geolocation.xml +66 -0
  232. data/spec/fixtures/datacite-example-polygon-v4.1.xml +163 -0
  233. data/spec/fixtures/datacite-example-relateditems.xml +61 -0
  234. data/spec/fixtures/datacite-example-xs-string.xml +28 -0
  235. data/spec/fixtures/datacite-formats-with-xs.xml +22 -0
  236. data/spec/fixtures/datacite-funderIdentifier.xml +78 -0
  237. data/spec/fixtures/datacite-geolocation-empty.xml +159 -0
  238. data/spec/fixtures/datacite-geolocationpolygons-multiple.xml +76 -0
  239. data/spec/fixtures/datacite-metadata-sample-complicated-v2.2.xml +52 -0
  240. data/spec/fixtures/datacite-multiple-language.xml +38 -0
  241. data/spec/fixtures/datacite-multiple-rights.xml +59 -0
  242. data/spec/fixtures/datacite-schema-2.2.xml +80 -0
  243. data/spec/fixtures/datacite-seriesinformation.xml +41 -0
  244. data/spec/fixtures/datacite-space-in-sizes.xml +52 -0
  245. data/spec/fixtures/datacite-xml-lang.xml +51 -0
  246. data/spec/fixtures/datacite.json +83 -0
  247. data/spec/fixtures/datacite.xml +40 -0
  248. data/spec/fixtures/datacite_dataset.xml +58 -0
  249. data/spec/fixtures/datacite_malformed_creator.xml +52 -0
  250. data/spec/fixtures/datacite_missing_creator.xml +33 -0
  251. data/spec/fixtures/datacite_schema_3.xml +58 -0
  252. data/spec/fixtures/datacite_software.json +21 -0
  253. data/spec/fixtures/datacite_software_missing_comma.json +18 -0
  254. data/spec/fixtures/datacite_software_overlapping_keys.json +18 -0
  255. data/spec/fixtures/datacite_software_version.json +74 -0
  256. data/spec/fixtures/edam_package.json +12 -0
  257. data/spec/fixtures/funding_reference.xml +53 -0
  258. data/spec/fixtures/gtex.xml +71 -0
  259. data/spec/fixtures/maremma/codemeta.json +36 -0
  260. data/spec/fixtures/nist.xml +35 -0
  261. data/spec/fixtures/ns0.xml +2 -0
  262. data/spec/fixtures/pure.bib +14 -0
  263. data/spec/fixtures/pure.ris +15 -0
  264. data/spec/fixtures/pure.xml +188 -0
  265. data/spec/fixtures/ris_bug.ris +9 -0
  266. data/spec/fixtures/schema_4.0.xml +140 -0
  267. data/spec/fixtures/schema_org.json +49 -0
  268. data/spec/fixtures/schema_org_front-matter.json +32 -0
  269. data/spec/fixtures/schema_org_geolocation.json +82 -0
  270. data/spec/fixtures/schema_org_geoshape.json +550 -0
  271. data/spec/fixtures/schema_org_gtex.json +75 -0
  272. data/spec/fixtures/schema_org_list.json +12623 -0
  273. data/spec/fixtures/schema_org_tdl_iodp_invalid_authors.json +25 -0
  274. data/spec/fixtures/schema_org_topmed.json +53 -0
  275. data/spec/fixtures/schema_org_type_as_array.json +41 -0
  276. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/default.yml +121 -0
  277. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_bibtex.yml +121 -0
  278. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_citation.yml +121 -0
  279. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_crossref.yml +121 -0
  280. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_datacite.yml +121 -0
  281. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_jats.yml +121 -0
  282. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_schema_org.yml +121 -0
  283. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/default.yml +110 -0
  284. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_bibtex.yml +110 -0
  285. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_citation.yml +110 -0
  286. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_datacite.yml +110 -0
  287. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_datacite_json.yml +110 -0
  288. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_jats.yml +110 -0
  289. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_schema_org.yml +110 -0
  290. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/default.yml +117 -0
  291. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/to_datacite.yml +117 -0
  292. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/to_schema_org.yml +117 -0
  293. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/crossref.yml +52 -0
  294. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/datacite.yml +52 -0
  295. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/jalc.yml +52 -0
  296. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/kisti.yml +52 -0
  297. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/medra.yml +52 -0
  298. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/op.yml +52 -0
  299. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/author.yml +65 -0
  300. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/no_author.yml +65 -0
  301. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/single_author.yml +65 -0
  302. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/with_organization.yml +65 -0
  303. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_datacite_metadata/change_state.yml +110 -0
  304. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_datacite_metadata/change_title.yml +110 -0
  305. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_description.yml +72 -0
  306. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_identifiers.yml +72 -0
  307. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_license.yml +72 -0
  308. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_license_name.yml +72 -0
  309. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_license_url.yml +72 -0
  310. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_state.yml +72 -0
  311. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/validates_against_schema.yml +72 -0
  312. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +72 -0
  313. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/doi.yml +65 -0
  314. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/doi_with_protocol.yml +65 -0
  315. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/dx_doi_org_url.yml +65 -0
  316. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/force_test_resolver.yml +65 -0
  317. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/https_url.yml +65 -0
  318. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/test_resolver.yml +65 -0
  319. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_api_url/test_resolver_http.yml +65 -0
  320. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/doi.yml +65 -0
  321. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/doi_with_special_characters.yml +65 -0
  322. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/not_a_doi.yml +65 -0
  323. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/sandbox_url.yml +65 -0
  324. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/url.yml +65 -0
  325. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/crossref.yml +114 -0
  326. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/datacite.yml +114 -0
  327. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/jalc.yml +114 -0
  328. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/kisti.yml +114 -0
  329. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/medra.yml +114 -0
  330. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/not_a_valid_prefix.yml +65 -0
  331. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/not_found.yml +114 -0
  332. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/op.yml +114 -0
  333. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/doi.yml +65 -0
  334. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/doi_with_protocol.yml +65 -0
  335. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/dx_doi_org_url.yml +65 -0
  336. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/force_stage_resolver.yml +65 -0
  337. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/https_url.yml +65 -0
  338. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/stage_resolver.yml +65 -0
  339. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/stage_resolver_http.yml +65 -0
  340. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/crossref.yml +159 -0
  341. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +159 -0
  342. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/datacite.yml +159 -0
  343. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/datacite_doi_http.yml +159 -0
  344. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/github.yml +110 -0
  345. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/orcid.yml +110 -0
  346. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/schema_org.yml +110 -0
  347. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +159 -0
  348. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/bibtex.yml +110 -0
  349. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/citeproc.yml +110 -0
  350. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/codemeta.yml +110 -0
  351. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/crosscite.yml +110 -0
  352. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/crossref.yml +110 -0
  353. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/datacite.yml +110 -0
  354. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/datacite_json.yml +110 -0
  355. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/ris.yml +110 -0
  356. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/schema_org.yml +110 -0
  357. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_string/crosscite.yml +110 -0
  358. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_for_match.yml +65 -0
  359. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_for_with_schemeUri_in_hash.yml +65 -0
  360. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_match.yml +65 -0
  361. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_no_match.yml +65 -0
  362. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_for_match.yml +65 -0
  363. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_match.yml +65 -0
  364. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_no_match.yml +65 -0
  365. data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org/with_id.yml +65 -0
  366. data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org_creators/with_affiliation.yml +65 -0
  367. data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org_creators/without_affiliation.yml +65 -0
  368. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/maremma.yml +75 -0
  369. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/metadata_reports.yml +75 -0
  370. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +118 -0
  371. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +117 -0
  372. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +121 -0
  373. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/JaLC.yml +114 -0
  374. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/KISTI.yml +114 -0
  375. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/OP.yml +115 -0
  376. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/affiliation_is_space.yml +116 -0
  377. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/another_book.yml +113 -0
  378. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/another_book_chapter.yml +115 -0
  379. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/article_id_as_page_number.yml +116 -0
  380. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/author_literal.yml +123 -0
  381. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book.yml +114 -0
  382. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_chapter.yml +114 -0
  383. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_chapter_with_RDF_for_container.yml +114 -0
  384. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_oup.yml +113 -0
  385. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/component.yml +113 -0
  386. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dataset.yml +113 -0
  387. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dataset_usda.yml +115 -0
  388. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/date_in_future.yml +116 -0
  389. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dissertation.yml +114 -0
  390. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/empty_given_name.yml +116 -0
  391. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/invalid_date.yml +116 -0
  392. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article.yml +115 -0
  393. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +114 -0
  394. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with.yml +119 -0
  395. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +114 -0
  396. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with_funding.yml +115 -0
  397. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_issue.yml +113 -0
  398. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/mEDRA.yml +113 -0
  399. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/markup.yml +120 -0
  400. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/missing_creator.yml +117 -0
  401. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_issn.yml +114 -0
  402. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_titles.yml +113 -0
  403. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_titles_with_missing.yml +117 -0
  404. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/not_found_error.yml +108 -0
  405. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/peer_review.yml +118 -0
  406. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/posted_content.yml +114 -0
  407. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/posted_content_copernicus.yml +117 -0
  408. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/report_osti.yml +113 -0
  409. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/vor_with_url.yml +117 -0
  410. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/yet_another_book.yml +114 -0
  411. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +114 -0
  412. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_json_metadata/metadata_from_api.yml +110 -0
  413. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/BlogPosting.yml +110 -0
  414. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/DOI_in_staging_system.yml +110 -0
  415. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/DOI_in_staging_system_schema_3.yml +110 -0
  416. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/DOI_in_with_related_id_system.yml +110 -0
  417. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/DOI_not_found.yml +106 -0
  418. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Dataset.yml +110 -0
  419. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Funding.yml +110 -0
  420. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Funding_empty_awardTitle.yml +110 -0
  421. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Funding_schema_version_4.yml +110 -0
  422. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Referee_report_in_staging_system.yml +110 -0
  423. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Schema_org_type.yml +110 -0
  424. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/author_only_full_name.yml +110 -0
  425. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/author_with_scheme.yml +110 -0
  426. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/author_with_wrong_orcid_scheme.yml +110 -0
  427. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/cc-by_3_0_us.yml +110 -0
  428. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/content_url.yml +110 -0
  429. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/date.yml +110 -0
  430. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/dissertation.yml +110 -0
  431. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/doi_with_sign.yml +110 -0
  432. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/empty_subject.yml +110 -0
  433. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/even_more_subject_scheme_FOR.yml +110 -0
  434. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/funding_references.yml +110 -0
  435. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/funding_schema_version_3.yml +110 -0
  436. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/is_identical_to.yml +110 -0
  437. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/keywords_with_attributes.yml +110 -0
  438. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/leading_and_trailing_whitespace.yml +110 -0
  439. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/more_subject_scheme_FOR.yml +110 -0
  440. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorsName.yml +110 -0
  441. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/multiple_licenses.yml +110 -0
  442. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/series-information.yml +110 -0
  443. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/subject_scheme.yml +110 -0
  444. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/subject_scheme_FOR.yml +110 -0
  445. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date/publication_date.yml +65 -0
  446. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/date.yml +65 -0
  447. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/year-month.yml +65 -0
  448. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/year.yml +65 -0
  449. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/date.yml +65 -0
  450. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/year-month.yml +65 -0
  451. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/year.yml +65 -0
  452. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/date.yml +65 -0
  453. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/year-month.yml +65 -0
  454. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/year.yml +65 -0
  455. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/future.yml +65 -0
  456. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/invalid.yml +65 -0
  457. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/nil.yml +65 -0
  458. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/past.yml +65 -0
  459. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/present.yml +65 -0
  460. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_familyName.yml +61 -0
  461. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_Thai.yml +61 -0
  462. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_display-order.yml +61 -0
  463. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +61 -0
  464. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_sort-order.yml +61 -0
  465. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/hyper-authorship.yml +61 -0
  466. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/is_organization.yml +65 -0
  467. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/multiple_author_names_in_one_field.yml +61 -0
  468. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/multiple_name_identifier.yml +61 -0
  469. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_affiliation.yml +61 -0
  470. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_affiliation_and_country.yml +66 -0
  471. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_role.yml +61 -0
  472. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/only_familyName_and_givenName.yml +57 -0
  473. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/BlogPosting.yml +117 -0
  474. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +117 -0
  475. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/get_schema_org_metadata_front_matter/BlogPosting.yml +55 -0
  476. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/harvard_dataverse.yml +40 -0
  477. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/pangaea.yml +57 -0
  478. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/zenodo.yml +62 -0
  479. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/only_title.yml +65 -0
  480. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_and_pages.yml +65 -0
  481. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_volume_and_pages.yml +65 -0
  482. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_volume_issue_and_pages.yml +65 -0
  483. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_as_codemeta_url.yml +65 -0
  484. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url.yml +65 -0
  485. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url_file.yml +65 -0
  486. data/spec/fixtures/vcr_cassettes/Briard_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +52 -0
  487. data/spec/fixtures/vcr_cassettes/Briard_Metadata/handle_input/unknown_DOI_prefix.yml +52 -0
  488. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_contributors/none.yml +61 -0
  489. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_creators/insert.yml +61 -0
  490. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_dates/insert.yml +61 -0
  491. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_descriptions/insert.yml +61 -0
  492. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_identifier/doi.yml +61 -0
  493. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_language/insert.yml +61 -0
  494. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_person/creator_only_name.yml +61 -0
  495. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_publication_year/insert.yml +61 -0
  496. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_publisher/insert.yml +61 -0
  497. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_related_identifiers/insert.yml +61 -0
  498. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_related_identifiers/related_identifier.yml +61 -0
  499. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_resource_type/insert.yml +61 -0
  500. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_rights_list/insert.yml +61 -0
  501. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_sizes/insert.yml +61 -0
  502. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_subjects/insert.yml +61 -0
  503. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_titles/insert.yml +61 -0
  504. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_version/insert.yml +61 -0
  505. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_comma.yml +65 -0
  506. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_family_name.yml +65 -0
  507. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_id.yml +65 -0
  508. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_known_given_name.yml +65 -0
  509. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_no_info.yml +65 -0
  510. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_orcid_id.yml +65 -0
  511. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_type_organization.yml +65 -0
  512. data/spec/fixtures/vcr_cassettes/Briard_Metadata/jsonlint/missing_comma.yml +110 -0
  513. data/spec/fixtures/vcr_cassettes/Briard_Metadata/jsonlint/nil.yml +110 -0
  514. data/spec/fixtures/vcr_cassettes/Briard_Metadata/jsonlint/overlapping_keys.yml +110 -0
  515. data/spec/fixtures/vcr_cassettes/Briard_Metadata/jsonlint/valid.yml +110 -0
  516. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/not_found.yml +65 -0
  517. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/with_trailing_slash.yml +65 -0
  518. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +65 -0
  519. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/SICI_doi.yml +65 -0
  520. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi.yml +65 -0
  521. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_force_datacite_sandbox.yml +65 -0
  522. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_from_datacite_sandbox.yml +65 -0
  523. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_from_url_without_doi_proxy.yml +65 -0
  524. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_prefix_too_long.yml +65 -0
  525. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_prefix_with_string.yml +65 -0
  526. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_with_protocol.yml +65 -0
  527. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/dx_doi_org_url.yml +65 -0
  528. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/https_url.yml +65 -0
  529. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/not_valid_doi_prefix.yml +65 -0
  530. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/url_with_one_slash.yml +65 -0
  531. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/doi.yml +65 -0
  532. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/doi_as_url.yml +65 -0
  533. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/ftp.yml +65 -0
  534. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/invalid_url.yml +65 -0
  535. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/sandbox_via_options.yml +65 -0
  536. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/sandbox_via_url.yml +65 -0
  537. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/string.yml +65 -0
  538. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/url.yml +65 -0
  539. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/url_with_utf-8.yml +65 -0
  540. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_ids/doi.yml +65 -0
  541. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_ids/url.yml +65 -0
  542. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_array.yml +65 -0
  543. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_empty_array.yml +65 -0
  544. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_hash.yml +65 -0
  545. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_string.yml +65 -0
  546. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/uri.yml +65 -0
  547. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/with_trailing_slash.yml +65 -0
  548. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +65 -0
  549. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/array.yml +65 -0
  550. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/array_of_strings.yml +65 -0
  551. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/first.yml +65 -0
  552. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/hash.yml +65 -0
  553. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/nil.yml +65 -0
  554. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/string.yml +65 -0
  555. data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/should_only_keep_specific_tags.yml +65 -0
  556. data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/should_remove_a_tags.yml +65 -0
  557. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_id.yml +65 -0
  558. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_not_found.yml +65 -0
  559. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_url.yml +65 -0
  560. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/name_to_spdx_exists.yml +65 -0
  561. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/name_to_spdx_id.yml +65 -0
  562. data/spec/fixtures/vcr_cassettes/Briard_Metadata/to_schema_org/with_id.yml +65 -0
  563. data/spec/fixtures/vcr_cassettes/Briard_Metadata/to_schema_org_identifiers/with_identifiers.yml +65 -0
  564. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_doi/doi.yml +65 -0
  565. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_10.yml +65 -0
  566. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_11.yml +65 -0
  567. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_12.yml +65 -0
  568. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_13.yml +65 -0
  569. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_14.yml +65 -0
  570. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_4.yml +65 -0
  571. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_5.yml +65 -0
  572. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_6.yml +65 -0
  573. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_7.yml +65 -0
  574. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_8.yml +65 -0
  575. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_9.yml +65 -0
  576. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/funder_doi.yml +65 -0
  577. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/funder_doi_without_prefix.yml +65 -0
  578. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/non-funder_doi.yml +65 -0
  579. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid.yml +65 -0
  580. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_https.yml +65 -0
  581. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_id.yml +65 -0
  582. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_sandbox.yml +65 -0
  583. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_sandbox_https.yml +65 -0
  584. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_with_spaces.yml +65 -0
  585. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_wrong_id.yml +65 -0
  586. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_www.yml +65 -0
  587. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +65 -0
  588. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +65 -0
  589. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +65 -0
  590. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +65 -0
  591. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_prefix/doi.yml +65 -0
  592. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_prefix/doi_as_url.yml +65 -0
  593. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_prefix/doi_with_protocol.yml +65 -0
  594. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_prefix/only_prefix.yml +65 -0
  595. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/DOI.yml +65 -0
  596. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/ISSN.yml +65 -0
  597. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/URL.yml +65 -0
  598. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/string.yml +65 -0
  599. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/BlogPosting.yml +61 -0
  600. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/Dataset.yml +61 -0
  601. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +66 -0
  602. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/climate_data.yml +61 -0
  603. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/from_schema_org.yml +117 -0
  604. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +61 -0
  605. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/maremma.yml +75 -0
  606. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/text.yml +61 -0
  607. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_data_citation.yml +72 -0
  608. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_pages.yml +69 -0
  609. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Dataset.yml +61 -0
  610. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article.yml +72 -0
  611. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +72 -0
  612. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Missing_author.yml +68 -0
  613. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/interactive_resource_without_dates.yml +61 -0
  614. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/software_w/version.yml +61 -0
  615. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/Another_dataset.yml +61 -0
  616. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/BlogPosting.yml +61 -0
  617. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/BlogPosting_schema_org.yml +117 -0
  618. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/Dataset.yml +61 -0
  619. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/container_title.yml +61 -0
  620. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/interactive_resource_without_dates.yml +61 -0
  621. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/journal_article.yml +72 -0
  622. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/keywords_subject_scheme.yml +61 -0
  623. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/maremma.yml +75 -0
  624. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/missing_creator.yml +68 -0
  625. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/multiple_abstracts.yml +61 -0
  626. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/organization_author.yml +69 -0
  627. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/software.yml +61 -0
  628. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/software_w/version.yml +61 -0
  629. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/with_only_first_page.yml +67 -0
  630. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/with_pages.yml +69 -0
  631. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +61 -0
  632. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +61 -0
  633. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/datacite_database_attributes.yml +61 -0
  634. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/maremma.yml +75 -0
  635. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/with_ORCID_ID.yml +69 -0
  636. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/with_data_citation.yml +72 -0
  637. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/with_data_citation_schema_org.yml +117 -0
  638. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/posted_content.yml +114 -0
  639. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_datacite.yml +117 -0
  640. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_front_matter.yml +55 -0
  641. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/climate_data.yml +61 -0
  642. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/maremma.yml +75 -0
  643. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/text.yml +61 -0
  644. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/with_data_citation.yml +72 -0
  645. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/with_pages.yml +69 -0
  646. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/maremma.yml +75 -0
  647. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_ORCID_ID.yml +69 -0
  648. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_data_citation.yml +72 -0
  649. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_data_citation_schema_org.yml +117 -0
  650. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/DOI_not_found.yml +57 -0
  651. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/Dataset_in_schema_4_0.yml +61 -0
  652. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/Text_pass-thru.yml +61 -0
  653. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/Text_pass-thru_with_doi_in_options.yml +61 -0
  654. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/maremma.yml +75 -0
  655. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_ORCID_ID.yml +69 -0
  656. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_data_citation.yml +72 -0
  657. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_data_citation_schema_org.yml +117 -0
  658. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_editor.yml +66 -0
  659. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_version.yml +61 -0
  660. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +61 -0
  661. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +61 -0
  662. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/book_chapter.yml +64 -0
  663. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/interactive_resource_without_dates.yml +61 -0
  664. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/maremma.yml +75 -0
  665. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +69 -0
  666. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +72 -0
  667. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_data_citation_schema_org.yml +117 -0
  668. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_editor.yml +66 -0
  669. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/BlogPosting.yml +61 -0
  670. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/BlogPosting_schema_org.yml +117 -0
  671. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/journal_article.yml +72 -0
  672. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/maremma.yml +75 -0
  673. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/with_pages.yml +69 -0
  674. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/BlogPosting.yml +61 -0
  675. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +117 -0
  676. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/Dataset.yml +61 -0
  677. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/alternate_name.yml +61 -0
  678. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/journal_article.yml +72 -0
  679. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +61 -0
  680. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/maremma.yml +75 -0
  681. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/with_pages.yml +69 -0
  682. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Funding.yml +110 -0
  683. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +110 -0
  684. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +61 -0
  685. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +110 -0
  686. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +110 -0
  687. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_isReferencedBy.yml +61 -0
  688. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +61 -0
  689. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/data_catalog.yml +61 -0
  690. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/geo_location_box.yml +61 -0
  691. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/interactive_resource_without_dates.yml +61 -0
  692. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/journal_article.yml +72 -0
  693. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +75 -0
  694. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/series_information.yml +61 -0
  695. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/subject_scheme.yml +61 -0
  696. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +61 -0
  697. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/BlogPosting.yml +61 -0
  698. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/BlogPosting_schema_org.yml +117 -0
  699. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/Dataset.yml +61 -0
  700. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/journal_article.yml +72 -0
  701. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/with_pages.yml +69 -0
  702. data/spec/fixtures/vivli.xml +1 -0
  703. data/spec/metadata_spec.rb +165 -0
  704. data/spec/readers/bibtex_reader_spec.rb +63 -0
  705. data/spec/readers/citeproc_reader_spec.rb +61 -0
  706. data/spec/readers/codemeta_reader_spec.rb +138 -0
  707. data/spec/readers/crosscite_reader_spec.rb +41 -0
  708. data/spec/readers/crossref_reader_spec.rb +1117 -0
  709. data/spec/readers/datacite_json_reader_spec.rb +80 -0
  710. data/spec/readers/datacite_reader_spec.rb +1655 -0
  711. data/spec/readers/npm_reader_spec.rb +66 -0
  712. data/spec/readers/ris_reader_spec.rb +75 -0
  713. data/spec/readers/schema_org_reader_spec.rb +376 -0
  714. data/spec/spec_helper.rb +94 -0
  715. data/spec/utils_spec.rb +617 -0
  716. data/spec/writers/bibtex_writer_spec.rb +195 -0
  717. data/spec/writers/citation_writer_spec.rb +52 -0
  718. data/spec/writers/citeproc_writer_spec.rb +296 -0
  719. data/spec/writers/codemeta_writer_spec.rb +45 -0
  720. data/spec/writers/crosscite_writer_spec.rb +122 -0
  721. data/spec/writers/crossref_writer_spec.rb +88 -0
  722. data/spec/writers/csv_writer_spec.rb +94 -0
  723. data/spec/writers/datacite_json_writer_spec.rb +90 -0
  724. data/spec/writers/datacite_writer_spec.rb +428 -0
  725. data/spec/writers/jats_writer_spec.rb +193 -0
  726. data/spec/writers/rdf_xml_writer_spec.rb +86 -0
  727. data/spec/writers/ris_writer_spec.rb +208 -0
  728. data/spec/writers/schema_org_writer_spec.rb +369 -0
  729. data/spec/writers/turtle_writer_spec.rb +84 -0
  730. metadata +1347 -0
@@ -0,0 +1,1117 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Briard::Metadata, vcr: true do
6
+ let(:input) { "10.7554/eLife.01567" }
7
+
8
+ subject { Briard::Metadata.new(input: input) }
9
+
10
+ context "get crossref raw" do
11
+ it "journal article" do
12
+ input = fixture_path + 'crossref.xml'
13
+ subject = Briard::Metadata.new(input: input)
14
+ expect(subject.raw).to eq(IO.read(input).strip)
15
+ end
16
+ end
17
+
18
+ context "get crossref metadata" do
19
+ it "DOI with data citation" do
20
+ expect(subject.valid?).to be true
21
+ expect(subject.id).to eq("https://doi.org/10.7554/elife.01567")
22
+ expect(subject.identifiers).to eq([{"identifier"=>"e01567", "identifierType"=>"article_number"}])
23
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
24
+ expect(subject.url).to eq("https://elifesciences.org/articles/01567")
25
+ expect(subject.creators.length).to eq(5)
26
+ expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Sankar, Martial", "givenName"=>"Martial", "familyName"=>"Sankar", "affiliation" => [{"name"=>"Department of Plant Molecular Biology, University of Lausanne, Lausanne, Switzerland"}])
27
+ expect(subject.rights_list).to eq([{"rights"=>"Creative Commons Attribution 3.0 Unported",
28
+ "rightsIdentifier"=>"cc-by-3.0",
29
+ "rightsIdentifierScheme"=>"SPDX",
30
+ "rightsUri"=>"https://creativecommons.org/licenses/by/3.0/legalcode",
31
+ "schemeUri"=>"https://spdx.org/licenses/"}])
32
+ expect(subject.titles).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
33
+ expect(subject.dates).to eq([{"date"=>"2014-02-11", "dateType"=>"Issued"}, {"date"=>"2018-08-23T13:41:49Z", "dateType"=>"Updated"}])
34
+ expect(subject.publication_year).to eq("2014")
35
+ expect(subject.publisher).to eq("eLife Sciences Publications, Ltd")
36
+ expect(subject.container).to eq("firstPage" => "e01567", "identifier"=>"2050-084X", "identifierType"=>"ISSN", "title"=>"eLife", "type"=>"Journal", "volume"=>"3")
37
+ expect(subject.related_identifiers.length).to eq(27)
38
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"2050-084X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
39
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1038/ncb2764", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
40
+ expect(subject.funding_references).to eq([{"funderName"=>"SystemsX"},
41
+ {"funderIdentifier"=>"https://doi.org/10.13039/501100003043",
42
+ "funderIdentifierType"=>"Crossref Funder ID",
43
+ "funderName"=>"EMBO"},
44
+ {"funderIdentifier"=>"https://doi.org/10.13039/501100001711",
45
+ "funderIdentifierType"=>"Crossref Funder ID",
46
+ "funderName"=>"Swiss National Science Foundation"},
47
+ {"funderIdentifier"=>"https://doi.org/10.13039/501100006390",
48
+ "funderIdentifierType"=>"Crossref Funder ID",
49
+ "funderName"=>"University of Lausanne"}])
50
+ expect(subject.agency).to eq("crossref")
51
+ end
52
+
53
+ it "journal article" do
54
+ input = "https://doi.org/10.1371/journal.pone.0000030"
55
+ subject = Briard::Metadata.new(input: input)
56
+ expect(subject.valid?).to be true
57
+ expect(subject.id).to eq("https://doi.org/10.1371/journal.pone.0000030")
58
+ expect(subject.identifiers).to eq([{"identifier"=>"10.1371/journal.pone.0000030", "identifierType"=>"Publisher ID"}])
59
+ expect(subject.url).to eq("https://dx.plos.org/10.1371/journal.pone.0000030")
60
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
61
+ expect(subject.creators.length).to eq(5)
62
+ expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Ralser, Markus", "givenName"=>"Markus", "familyName"=>"Ralser")
63
+ expect(subject.contributors).to eq([{"contributorType"=>"Editor", "familyName"=>"Janbon", "givenName"=>"Guilhem", "name"=>"Janbon, Guilhem", "nameType"=>"Personal"}])
64
+ expect(subject.titles).to eq([{"title"=>"Triose Phosphate Isomerase Deficiency Is Caused by Altered Dimerization???Not Catalytic Inactivity???of the Mutant Enzymes"}])
65
+ expect(subject.rights_list).to eq([{"rights"=>"Creative Commons Attribution 4.0 International",
66
+ "rightsIdentifier"=>"cc-by-4.0",
67
+ "rightsIdentifierScheme"=>"SPDX",
68
+ "rightsUri"=>"https://creativecommons.org/licenses/by/4.0/legalcode",
69
+ "schemeUri"=>"https://spdx.org/licenses/"}])
70
+ expect(subject.dates).to eq([{"date"=>"2006-12-20", "dateType"=>"Issued"}, {"date"=>"2021-08-06T23:49:55Z", "dateType"=>"Updated"}])
71
+ expect(subject.publication_year).to eq("2006")
72
+ expect(subject.publisher).to eq("Public Library of Science (PLoS)")
73
+ expect(subject.related_identifiers.length).to eq(68)
74
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1932-6203", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
75
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1056/nejm199109123251104", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
76
+ expect(subject.container).to eq("firstPage"=>"e30", "identifier"=>"1932-6203", "identifierType"=>"ISSN", "issue"=>"1", "title"=>"PLoS ONE", "type"=>"Journal", "volume"=>"1")
77
+ expect(subject.agency).to eq("crossref")
78
+ end
79
+
80
+ it "journal article with funding" do
81
+ input = "https://doi.org/10.3389/fpls.2019.00816"
82
+ subject = Briard::Metadata.new(input: input)
83
+ expect(subject.valid?).to be true
84
+ expect(subject.id).to eq("https://doi.org/10.3389/fpls.2019.00816")
85
+ expect(subject.identifiers).to eq([{"identifier"=>"816", "identifierType"=>"article_number"}])
86
+ expect(subject.url).to eq("https://www.frontiersin.org/article/10.3389/fpls.2019.00816/full")
87
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
88
+ expect(subject.creators.length).to eq(4)
89
+ expect(subject.creators.first).to eq("familyName"=>"Fortes", "givenName"=>"Ana Margarida", "name"=>"Fortes, Ana Margarida", "nameType"=>"Personal")
90
+ expect(subject.titles).to eq([{"title"=>"Transcriptional Modulation of Polyamine Metabolism in Fruit Species Under Abiotic and Biotic Stress"}])
91
+ expect(subject.rights_list).to eq([{"rights"=>"Creative Commons Attribution 4.0 International",
92
+ "rightsIdentifier"=>"cc-by-4.0",
93
+ "rightsIdentifierScheme"=>"SPDX",
94
+ "rightsUri"=>"https://creativecommons.org/licenses/by/4.0/legalcode",
95
+ "schemeUri"=>"https://spdx.org/licenses/"}])
96
+ expect(subject.dates).to eq([{"date"=>"2019-07-02", "dateType"=>"Issued"}, {"date"=>"2019-09-22T06:40:23Z", "dateType"=>"Updated"}])
97
+ expect(subject.publication_year).to eq("2019")
98
+ expect(subject.publisher).to eq("Frontiers Media SA")
99
+ expect(subject.funding_references).to eq([{"awardNumber"=>"CA17111", "funderIdentifier"=>"https://doi.org/10.13039/501100000921", "funderIdentifierType"=>"Crossref Funder ID", "funderName"=>"COST (European Cooperation in Science and Technology)"}])
100
+ expect(subject.related_identifiers.length).to eq(70)
101
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1664-462X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
102
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.17660/actahortic.2004.632.41", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
103
+ expect(subject.container).to eq("firstPage" => "816", "identifier"=>"1664-462X", "identifierType"=>"ISSN", "title"=>"Frontiers in Plant Science", "type"=>"Journal", "volume"=>"10")
104
+ expect(subject.agency).to eq("crossref")
105
+ end
106
+
107
+ it "journal article original language title" do
108
+ input = "https://doi.org/10.7600/jspfsm.56.60"
109
+ subject = Briard::Metadata.new(input: input)
110
+ expect(subject.valid?).to be true
111
+ expect(subject.id).to eq("https://doi.org/10.7600/jspfsm.56.60")
112
+ expect(subject.url).to eq("https://www.jstage.jst.go.jp/article/jspfsm/56/1/56_1_60/_article/-char/ja/")
113
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
114
+ expect(subject.creators).to eq([{"name"=>":(unav)", "nameType"=>"Organizational"}])
115
+ expect(subject.titles).to eq([{"lang"=>"ja", "title"=>"??????????????????????????????"}])
116
+ expect(subject.dates).to include({"date"=>"2007", "dateType"=>"Issued"})
117
+ expect(subject.publication_year).to eq("2007")
118
+ expect(subject.publisher).to eq("The Japanese Society of Physical Fitness and Sports Medicine")
119
+ expect(subject.related_identifiers.length).to eq(1)
120
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1881-4751", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
121
+ expect(subject.container).to eq("firstPage"=>"60", "identifier"=>"1881-4751", "identifierType"=>"ISSN", "issue"=>"1", "lastPage"=>"60", "title"=>"Japanese Journal of Physical Fitness and Sports Medicine", "type"=>"Journal", "volume"=>"56")
122
+ expect(subject.agency).to eq("crossref")
123
+ end
124
+
125
+ it "journal article with RDF for container" do
126
+ input = "https://doi.org/10.1163/1937240X-00002096"
127
+ subject = Briard::Metadata.new(input: input)
128
+ expect(subject.valid?).to be true
129
+ expect(subject.id).to eq("https://doi.org/10.1163/1937240x-00002096")
130
+ expect(subject.url).to eq("https://academic.oup.com/jcb/article-lookup/doi/10.1163/1937240X-00002096")
131
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
132
+ expect(subject.creators.length).to eq(8)
133
+ expect(subject.creators.first).to eq("familyName"=>"Mesquita-Joanes", "givenName"=>"Francesc", "name"=>"Mesquita-Joanes, Francesc", "nameType"=>"Personal")
134
+ expect(subject.titles).to eq([{"title"=>"Global distribution of Fabaeformiscandona subacuta: an??exotic??invasive Ostracoda on the Iberian Peninsula?"}])
135
+ expect(subject.dates).to include({"date"=>"2012-01-01", "dateType"=>"Issued"})
136
+ expect(subject.publication_year).to eq("2012")
137
+ expect(subject.publisher).to eq("Oxford University Press (OUP)")
138
+ expect(subject.related_identifiers.length).to eq(44)
139
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1937-240X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
140
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1002/aqc.1122", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
141
+ expect(subject.container).to eq("firstPage"=>"949", "identifier"=>"1937-240X", "identifierType"=>"ISSN", "issue"=>"6", "lastPage"=>"961", "title"=>"Journal of Crustacean Biology", "type"=>"Journal", "volume"=>"32")
142
+ expect(subject.agency).to eq("crossref")
143
+ end
144
+
145
+ it "book chapter with RDF for container" do
146
+ input = "10.1007/978-3-642-33191-6_49"
147
+ subject = Briard::Metadata.new(input: input)
148
+ expect(subject.valid?).to be true
149
+ expect(subject.id).to eq("https://doi.org/10.1007/978-3-642-33191-6_49")
150
+ expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-642-33191-6_49")
151
+ expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"BookChapter", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
152
+ expect(subject.creators.length).to eq(3)
153
+ expect(subject.creators.first).to eq("familyName"=>"Chen", "givenName"=>"Lili", "name"=>"Chen, Lili", "nameType"=>"Personal")
154
+ expect(subject.titles).to eq([{"title"=>"Human Body Orientation Estimation in Multiview Scenarios"}])
155
+ expect(subject.dates).to eq([{"date"=>"2012", "dateType"=>"Issued"}, {"date"=>"2020-11-24T03:11:32Z", "dateType"=>"Updated"}])
156
+ expect(subject.publication_year).to eq("2012")
157
+ expect(subject.publisher).to eq("Springer Science and Business Media LLC")
158
+ expect(subject.related_identifiers.length).to eq(7)
159
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"10.1007/978-3-540-24670-1_3", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
160
+ expect(subject.container).to eq("identifier"=>"1611-3349", "identifierType"=>"ISSN", "title"=>"Lecture Notes in Computer Science", "type"=>"Book Series")
161
+ expect(subject.agency).to eq("crossref")
162
+ end
163
+
164
+ it "posted_content" do
165
+ input = "https://doi.org/10.1101/097196"
166
+ subject = Briard::Metadata.new(input: input)
167
+ expect(subject.valid?).to be true
168
+ expect(subject.url).to eq("http://biorxiv.org/lookup/doi/10.1101/097196")
169
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"PostedContent", "resourceTypeGeneral"=>"Preprint", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
170
+ expect(subject.creators.count).to eq(11)
171
+ expect(subject.creators.last).to eq("nameType"=>"Personal", "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-4060-7360", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}], "name"=>"Clark, Timothy", "givenName"=>"Timothy", "familyName"=>"Clark")
172
+ expect(subject.titles).to eq([{"title"=>"A Data Citation Roadmap for Scholarly Data Repositories"}])
173
+ expect(subject.id).to eq("https://doi.org/10.1101/097196")
174
+ expect(subject.identifiers).to eq([{"identifier"=>"biorxiv;097196v2", "identifierType"=>"pisa"}])
175
+ expect(subject.descriptions.first["description"]).to start_with("This article presents a practical roadmap")
176
+ expect(subject.dates).to include({"date"=>"2017-10-09", "dateType"=>"Issued"})
177
+ expect(subject.publication_year).to eq("2017")
178
+ expect(subject.publisher).to eq("Cold Spring Harbor Laboratory")
179
+ expect(subject.agency).to eq("crossref")
180
+ end
181
+
182
+ it "peer review" do
183
+ input = "https://doi.org/10.7554/elife.55167.sa2"
184
+ subject = Briard::Metadata.new(input: input)
185
+ expect(subject.valid?).to be true
186
+ expect(subject.url).to eq("https://elifesciences.org/articles/55167#sa2")
187
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceType"=>"PeerReview", "resourceTypeGeneral"=>"PeerReview", "ris"=>"JOUR", "schemaOrg"=>"Review")
188
+ expect(subject.creators.count).to eq(8)
189
+ expect(subject.creators.last).to eq("affiliation" => [{"name"=>"Center for Computational Mathematics, Flatiron Institute, New York, United States"}],
190
+ "familyName" => "Barnett",
191
+ "givenName" => "Alex H",
192
+ "name" => "Barnett, Alex H",
193
+ "nameType" => "Personal")
194
+ expect(subject.titles).to eq([{"title"=>"Author response: SpikeForest, reproducible web-facing ground-truth validation of automated neural spike sorters"}])
195
+ expect(subject.id).to eq("https://doi.org/10.7554/elife.55167.sa2")
196
+ expect(subject.identifiers).to be_empty
197
+ expect(subject.descriptions).to be_empty
198
+ expect(subject.dates).to include({"date"=>"2020-05-19", "dateType"=>"Issued"})
199
+ expect(subject.publication_year).to eq("2020")
200
+ expect(subject.publisher).to eq("eLife Sciences Publications, Ltd")
201
+ expect(subject.agency).to eq("crossref")
202
+ end
203
+
204
+ it "dissertation" do
205
+ input = "https://doi.org/10.14264/uql.2020.791"
206
+ subject = Briard::Metadata.new(input: input)
207
+ expect(subject.valid?).to be true
208
+ expect(subject.url).to eq("http://espace.library.uq.edu.au/view/UQ:23a1e74")
209
+ expect(subject.types).to eq("bibtex"=>"phdthesis", "citeproc"=>"thesis", "resourceType"=>"Dissertation", "resourceTypeGeneral"=>"Dissertation", "ris"=>"THES", "schemaOrg"=>"Thesis")
210
+ expect(subject.creators).to eq([{"familyName"=>"Collingwood",
211
+ "givenName"=>"Patricia Maree",
212
+ "name"=>"Collingwood, Patricia Maree",
213
+ "nameIdentifiers"=>
214
+ [{"nameIdentifier"=>"https://orcid.org/0000-0003-3086-4443",
215
+ "nameIdentifierScheme"=>"ORCID",
216
+ "schemeUri"=>"https://orcid.org"}],
217
+ "nameType"=>"Personal"}])
218
+ expect(subject.titles).to eq([{"title"=>"School truancy and financial independence during emerging adulthood: a longitudinal analysis of receipt of and reliance on cash transfers"}])
219
+ expect(subject.id).to eq("https://doi.org/10.14264/uql.2020.791")
220
+ expect(subject.identifiers).to be_empty
221
+ expect(subject.descriptions).to be_empty
222
+ expect(subject.dates).to include({"date"=>"2020-06-08", "dateType"=>"Issued"})
223
+ expect(subject.publication_year).to eq("2020")
224
+ expect(subject.publisher).to eq("University of Queensland Library")
225
+ expect(subject.agency).to eq("crossref")
226
+ end
227
+
228
+ it "DOI with SICI DOI" do
229
+ input = "https://doi.org/10.1890/0012-9658(2006)87[2832:tiopma]2.0.co;2"
230
+ subject = Briard::Metadata.new(input: input)
231
+ expect(subject.valid?).to be true
232
+ expect(subject.id).to eq("https://doi.org/10.1890/0012-9658(2006)87%255b2832:tiopma%255d2.0.co;2")
233
+ expect(subject.url).to eq("http://doi.wiley.com/10.1890/0012-9658(2006)87[2832:TIOPMA]2.0.CO;2")
234
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
235
+ expect(subject.creators).to eq([{"nameType"=>"Personal", "name"=>"Fenton, A.", "givenName"=>"A.", "familyName"=>"Fenton"}, {"nameType"=>"Personal", "name"=>"Rands, S. A.", "givenName"=>"S. A.", "familyName"=>"Rands"}])
236
+ expect(subject.rights_list).to eq([{"rightsUri"=>"http://doi.wiley.com/10.1002/tdm_license_1.1"}])
237
+ expect(subject.titles).to eq([{"title"=>"THE IMPACT OF PARASITE MANIPULATION AND PREDATOR FORAGING BEHAVIOR ON PREDATOR???PREY COMMUNITIES"}])
238
+ expect(subject.dates).to eq([{"date"=>"2006-11", "dateType"=>"Issued"}, {"date"=>"2019-04-28T13:51:50Z", "dateType"=>"Updated"}])
239
+ expect(subject.publication_year).to eq("2006")
240
+ expect(subject.publisher).to eq("Wiley")
241
+ expect(subject.related_identifiers.length).to eq(35)
242
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"0012-9658", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
243
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1098/rspb.2002.2213", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
244
+ expect(subject.container).to eq("firstPage"=>"2832", "identifier"=>"0012-9658", "identifierType"=>"ISSN", "issue"=>"11", "lastPage"=>"2841", "title"=>"Ecology", "type"=>"Journal", "volume"=>"87")
245
+ expect(subject.agency).to eq("crossref")
246
+ end
247
+
248
+ it "DOI with ORCID ID" do
249
+ input = "https://doi.org/10.1155/2012/291294"
250
+ subject = Briard::Metadata.new(input: input)
251
+ expect(subject.valid?).to be true
252
+ expect(subject.id).to eq("https://doi.org/10.1155/2012/291294")
253
+ expect(subject.url).to eq("http://www.hindawi.com/journals/pm/2012/291294/")
254
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
255
+ expect(subject.creators.length).to eq(7)
256
+ expect(subject.creators[2]).to eq("nameType"=>"Personal", "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-2043-4925", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}], "name"=>"Hernandez, Beatriz", "givenName"=>"Beatriz", "familyName"=>"Hernandez", "affiliation" => [{"name"=>"War Related Illness and Injury Study Center (WRIISC) and Mental Illness Research Education and Clinical Center (MIRECC), Department of Veterans Affairs, Palo Alto, CA 94304, USA"}, {"name"=>"Department of Psychiatry and Behavioral Sciences, Stanford University School of Medicine, Stanford, CA 94304, USA"}])
257
+ expect(subject.rights_list).to eq([{"rights"=>"Creative Commons Attribution 3.0 Unported",
258
+ "rightsIdentifier"=>"cc-by-3.0",
259
+ "rightsIdentifierScheme"=>"SPDX",
260
+ "rightsUri"=>"https://creativecommons.org/licenses/by/3.0/legalcode",
261
+ "schemeUri"=>"https://spdx.org/licenses/"}])
262
+ expect(subject.titles).to eq([{"title"=>"Delineating a Retesting Zone Using Receiver Operating Characteristic Analysis on Serial QuantiFERON Tuberculosis Test Results in US Healthcare Workers"}])
263
+ expect(subject.dates).to include({"date"=>"2012", "dateType"=>"Issued"})
264
+ expect(subject.publication_year).to eq("2012")
265
+ expect(subject.publisher).to eq("Hindawi Limited")
266
+ expect(subject.related_identifiers.length).to eq(18)
267
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"2090-1844", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
268
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1378/chest.12-0045", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
269
+ expect(subject.container).to eq("firstPage"=>"1", "identifier"=>"2090-1844", "identifierType"=>"ISSN", "lastPage"=>"7", "title"=>"Pulmonary Medicine", "type"=>"Journal", "volume"=>"2012")
270
+ expect(subject.agency).to eq("crossref")
271
+ end
272
+
273
+ it "date in future" do
274
+ input = "https://doi.org/10.1016/j.ejphar.2015.03.018"
275
+ subject = Briard::Metadata.new(input: input)
276
+ expect(subject.valid?).to be true
277
+ expect(subject.id).to eq("https://doi.org/10.1016/j.ejphar.2015.03.018")
278
+ expect(subject.identifiers).to eq([{"identifier"=>"S0014299915002332", "identifierType"=>"sequence-number"}])
279
+ expect(subject.url).to eq("https://linkinghub.elsevier.com/retrieve/pii/S0014299915002332")
280
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
281
+ expect(subject.creators.length).to eq(10)
282
+ expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Beck, Sarah E.", "givenName"=>"Sarah E.", "familyName"=>"Beck")
283
+ expect(subject.titles).to eq([{"title"=>"Paving the path to HIV neurotherapy: Predicting SIV CNS disease"}])
284
+ expect(subject.dates).to include({"date"=>"2015-07", "dateType"=>"Issued"})
285
+ expect(subject.publication_year).to eq("2015")
286
+ expect(subject.publisher).to eq("Elsevier BV")
287
+ expect(subject.related_identifiers).to eq([{"relatedIdentifier"=>"0014-2999", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection"},
288
+ {"relatedIdentifier"=>"10.1212/01.wnl.0000287431.88658.8b",
289
+ "relatedIdentifierType"=>"DOI",
290
+ "relationType"=>"References"},
291
+ {"relatedIdentifier"=>"10.1182/blood-2010-09-308684",
292
+ "relatedIdentifierType"=>"DOI",
293
+ "relationType"=>"References"},
294
+ {"relatedIdentifier"=>"10.1007/s13365-015-0313-7",
295
+ "relatedIdentifierType"=>"DOI",
296
+ "relationType"=>"References"},
297
+ {"relatedIdentifier"=>"10.1016/j.jneuroim.2006.04.017",
298
+ "relatedIdentifierType"=>"DOI",
299
+ "relationType"=>"References"},
300
+ {"relatedIdentifier"=>"10.1086/514001",
301
+ "relatedIdentifierType"=>"DOI",
302
+ "relationType"=>"References"},
303
+ {"relatedIdentifier"=>"10.1002/ana.410310403",
304
+ "relatedIdentifierType"=>"DOI",
305
+ "relationType"=>"References"},
306
+ {"relatedIdentifier"=>"10.1093/infdis/jir214",
307
+ "relatedIdentifierType"=>"DOI",
308
+ "relationType"=>"References"},
309
+ {"relatedIdentifier"=>"10.1097/qad.0b013e32836010bd",
310
+ "relatedIdentifierType"=>"DOI",
311
+ "relationType"=>"References"},
312
+ {"relatedIdentifier"=>"10.1261/rna.036863.112",
313
+ "relatedIdentifierType"=>"DOI",
314
+ "relationType"=>"References"},
315
+ {"relatedIdentifier"=>"10.4103/0019-5359.107389",
316
+ "relatedIdentifierType"=>"DOI",
317
+ "relationType"=>"References"},
318
+ {"relatedIdentifier"=>"10.3233/jad-2008-14103",
319
+ "relatedIdentifierType"=>"DOI",
320
+ "relationType"=>"References"},
321
+ {"relatedIdentifier"=>"10.1126/science.287.5455.959",
322
+ "relatedIdentifierType"=>"DOI",
323
+ "relationType"=>"References"},
324
+ {"relatedIdentifier"=>"10.1097/01.qai.0000165799.59322.f5",
325
+ "relatedIdentifierType"=>"DOI",
326
+ "relationType"=>"References"},
327
+ {"relatedIdentifier"=>"10.1002/ana.410420503",
328
+ "relatedIdentifierType"=>"DOI",
329
+ "relationType"=>"References"},
330
+ {"relatedIdentifier"=>"10.1089/ars.2012.4834",
331
+ "relatedIdentifierType"=>"DOI",
332
+ "relationType"=>"References"},
333
+ {"relatedIdentifier"=>"10.1111/j.1600-0404.1987.tb05458.x",
334
+ "relatedIdentifierType"=>"DOI",
335
+ "relationType"=>"References"},
336
+ {"relatedIdentifier"=>"10.1097/00002030-198905000-00006",
337
+ "relatedIdentifierType"=>"DOI",
338
+ "relationType"=>"References"},
339
+ {"relatedIdentifier"=>"10.1002/ana.410200304",
340
+ "relatedIdentifierType"=>"DOI",
341
+ "relationType"=>"References"},
342
+ {"relatedIdentifier"=>"10.1186/1742-6405-2-6",
343
+ "relatedIdentifierType"=>"DOI",
344
+ "relationType"=>"References"},
345
+ {"relatedIdentifier"=>"10.1111/j.1600-0684.1993.tb00649.x",
346
+ "relatedIdentifierType"=>"DOI",
347
+ "relationType"=>"References"},
348
+ {"relatedIdentifier"=>"10.1186/1742-6405-7-15",
349
+ "relatedIdentifierType"=>"DOI",
350
+ "relationType"=>"References"},
351
+ {"relatedIdentifier"=>"10.1212/wnl.0b013e318200d727",
352
+ "relatedIdentifierType"=>"DOI",
353
+ "relationType"=>"References"},
354
+ {"relatedIdentifier"=>"10.1089/aid.2006.0292",
355
+ "relatedIdentifierType"=>"DOI",
356
+ "relationType"=>"References"},
357
+ {"relatedIdentifier"=>"10.1126/science.3646751",
358
+ "relatedIdentifierType"=>"DOI",
359
+ "relationType"=>"References"},
360
+ {"relatedIdentifier"=>"10.1002/ajmg.b.32071",
361
+ "relatedIdentifierType"=>"DOI",
362
+ "relationType"=>"References"},
363
+ {"relatedIdentifier"=>"10.1186/1756-6606-6-40",
364
+ "relatedIdentifierType"=>"DOI",
365
+ "relationType"=>"References"},
366
+ {"relatedIdentifier"=>"10.1086/344938",
367
+ "relatedIdentifierType"=>"DOI",
368
+ "relationType"=>"References"},
369
+ {"relatedIdentifier"=>"10.1128/jvi.71.8.6055-6060.1997",
370
+ "relatedIdentifierType"=>"DOI",
371
+ "relationType"=>"References"},
372
+ {"relatedIdentifier"=>"10.1016/j.jneuroim.2004.08.031",
373
+ "relatedIdentifierType"=>"DOI",
374
+ "relationType"=>"References"},
375
+ {"relatedIdentifier"=>"10.1371/journal.pone.0003603",
376
+ "relatedIdentifierType"=>"DOI",
377
+ "relationType"=>"References"},
378
+ {"relatedIdentifier"=>"10.1093/jnen/61.1.85",
379
+ "relatedIdentifierType"=>"DOI",
380
+ "relationType"=>"References"},
381
+ {"relatedIdentifier"=>"10.1097/qad.0b013e32832c4af0",
382
+ "relatedIdentifierType"=>"DOI",
383
+ "relationType"=>"References"},
384
+ {"relatedIdentifier"=>"10.3389/fgene.2013.00083",
385
+ "relatedIdentifierType"=>"DOI",
386
+ "relationType"=>"References"},
387
+ {"relatedIdentifier"=>"10.1080/13550280390194109",
388
+ "relatedIdentifierType"=>"DOI",
389
+ "relationType"=>"References"},
390
+ {"relatedIdentifier"=>"10.1002/ana.410420504",
391
+ "relatedIdentifierType"=>"DOI",
392
+ "relationType"=>"References"},
393
+ {"relatedIdentifier"=>"10.1001/archneur.61.11.1687",
394
+ "relatedIdentifierType"=>"DOI",
395
+ "relationType"=>"References"},
396
+ {"relatedIdentifier"=>"10.1212/01.wnl.0000277635.05973.55",
397
+ "relatedIdentifierType"=>"DOI",
398
+ "relationType"=>"References"},
399
+ {"relatedIdentifier"=>"10.1038/nmeth.3014",
400
+ "relatedIdentifierType"=>"DOI",
401
+ "relationType"=>"References"},
402
+ {"relatedIdentifier"=>"10.1097/qai.0000000000000048",
403
+ "relatedIdentifierType"=>"DOI",
404
+ "relationType"=>"References"},
405
+ {"relatedIdentifier"=>"10.1093/infdis/jit278",
406
+ "relatedIdentifierType"=>"DOI",
407
+ "relationType"=>"References"},
408
+ {"relatedIdentifier"=>"10.1007/s13365-014-0283-1",
409
+ "relatedIdentifierType"=>"DOI",
410
+ "relationType"=>"References"},
411
+ {"relatedIdentifier"=>"10.1097/00002030-199905280-00010",
412
+ "relatedIdentifierType"=>"DOI",
413
+ "relationType"=>"References"},
414
+ {"relatedIdentifier"=>"10.1097/qco.0b013e32834ef586",
415
+ "relatedIdentifierType"=>"DOI",
416
+ "relationType"=>"References"},
417
+ {"relatedIdentifier"=>"10.4049/jimmunol.169.6.3438",
418
+ "relatedIdentifierType"=>"DOI",
419
+ "relationType"=>"References"},
420
+ {"relatedIdentifier"=>"10.2174/1389200024605082",
421
+ "relatedIdentifierType"=>"DOI",
422
+ "relationType"=>"References"},
423
+ {"relatedIdentifier"=>"10.1126/science.1546323",
424
+ "relatedIdentifierType"=>"DOI",
425
+ "relationType"=>"References"},
426
+ {"relatedIdentifier"=>"10.1016/s1474-4422(14)70137-1",
427
+ "relatedIdentifierType"=>"DOI",
428
+ "relationType"=>"References"},
429
+ {"relatedIdentifier"=>"10.1016/j.jns.2009.06.043",
430
+ "relatedIdentifierType"=>"DOI",
431
+ "relationType"=>"References"},
432
+ {"relatedIdentifier"=>"10.1128/jvi.77.16.9029-9040.2003",
433
+ "relatedIdentifierType"=>"DOI",
434
+ "relationType"=>"References"},
435
+ {"relatedIdentifier"=>"10.1002/jcp.24254",
436
+ "relatedIdentifierType"=>"DOI",
437
+ "relationType"=>"References"},
438
+ {"relatedIdentifier"=>"10.1128/jvi.76.1.292-302.2002",
439
+ "relatedIdentifierType"=>"DOI",
440
+ "relationType"=>"References"},
441
+ {"relatedIdentifier"=>"10.1182/blood-2012-03-414706",
442
+ "relatedIdentifierType"=>"DOI",
443
+ "relationType"=>"References"},
444
+ {"relatedIdentifier"=>"10.1016/j.jneuroim.2013.11.004",
445
+ "relatedIdentifierType"=>"DOI",
446
+ "relationType"=>"References"},
447
+ {"relatedIdentifier"=>"10.1038/nrg3198",
448
+ "relatedIdentifierType"=>"DOI",
449
+ "relationType"=>"References"},
450
+ {"relatedIdentifier"=>"10.1016/s0140-6736(96)10178-1",
451
+ "relatedIdentifierType"=>"DOI",
452
+ "relationType"=>"References"},
453
+ {"relatedIdentifier"=>"10.1128/jvi.00366-11",
454
+ "relatedIdentifierType"=>"DOI",
455
+ "relationType"=>"References"},
456
+ {"relatedIdentifier"=>"10.1007/s13365-011-0053-2",
457
+ "relatedIdentifierType"=>"DOI",
458
+ "relationType"=>"References"},
459
+ {"relatedIdentifier"=>"10.1083/jcb.201211138",
460
+ "relatedIdentifierType"=>"DOI",
461
+ "relationType"=>"References"},
462
+ {"relatedIdentifier"=>"10.1111/j.1600-0684.2011.00475.x",
463
+ "relatedIdentifierType"=>"DOI",
464
+ "relationType"=>"References"},
465
+ {"relatedIdentifier"=>"10.1038/srep05915",
466
+ "relatedIdentifierType"=>"DOI",
467
+ "relationType"=>"References"},
468
+ {"relatedIdentifier"=>"10.1096/fj.09-143503",
469
+ "relatedIdentifierType"=>"DOI",
470
+ "relationType"=>"References"},
471
+ {"relatedIdentifier"=>"10.1542/peds.111.2.e168",
472
+ "relatedIdentifierType"=>"DOI",
473
+ "relationType"=>"References"},
474
+ {"relatedIdentifier"=>"10.2174/1566524013363555",
475
+ "relatedIdentifierType"=>"DOI",
476
+ "relationType"=>"References"},
477
+ {"relatedIdentifier"=>"10.1126/science.283.5403.857",
478
+ "relatedIdentifierType"=>"DOI",
479
+ "relationType"=>"References"},
480
+ {"relatedIdentifier"=>"10.1212/01.wnl.0000145763.68284.15",
481
+ "relatedIdentifierType"=>"DOI",
482
+ "relationType"=>"References"},
483
+ {"relatedIdentifier"=>"10.1002/ana.410230727",
484
+ "relatedIdentifierType"=>"DOI",
485
+ "relationType"=>"References"},
486
+ {"relatedIdentifier"=>"10.1186/1742-4690-10-95",
487
+ "relatedIdentifierType"=>"DOI",
488
+ "relationType"=>"References"},
489
+ {"relatedIdentifier"=>"10.1128/jvi.79.2.684-695.2005",
490
+ "relatedIdentifierType"=>"DOI",
491
+ "relationType"=>"References"},
492
+ {"relatedIdentifier"=>"10.1111/j.1600-0684.2005.00126.x",
493
+ "relatedIdentifierType"=>"DOI",
494
+ "relationType"=>"References"},
495
+ {"relatedIdentifier"=>"10.1186/1756-8722-6-6",
496
+ "relatedIdentifierType"=>"DOI",
497
+ "relationType"=>"References"},
498
+ {"relatedIdentifier"=>"10.1016/j.jmb.2013.12.017",
499
+ "relatedIdentifierType"=>"DOI",
500
+ "relationType"=>"References"},
501
+ {"relatedIdentifier"=>"10.1590/s0037-86822012000600002",
502
+ "relatedIdentifierType"=>"DOI",
503
+ "relationType"=>"References"},
504
+ {"relatedIdentifier"=>"10.1080/13550280390218715",
505
+ "relatedIdentifierType"=>"DOI",
506
+ "relationType"=>"References"},
507
+ {"relatedIdentifier"=>"10.1111/j.1468-1331.2012.03777.x",
508
+ "relatedIdentifierType"=>"DOI",
509
+ "relationType"=>"References"},
510
+ {"relatedIdentifier"=>"10.3233/jad-2010-090649",
511
+ "relatedIdentifierType"=>"DOI",
512
+ "relationType"=>"References"},
513
+ {"relatedIdentifier"=>"10.1080/13550280500516484",
514
+ "relatedIdentifierType"=>"DOI",
515
+ "relationType"=>"References"},
516
+ {"relatedIdentifier"=>"10.1080/13550280390218751",
517
+ "relatedIdentifierType"=>"DOI",
518
+ "relationType"=>"References"},
519
+ {"relatedIdentifier"=>"10.1189/jlb.0811394",
520
+ "relatedIdentifierType"=>"DOI",
521
+ "relationType"=>"References"},
522
+ {"relatedIdentifier"=>"10.1007/s11481-011-9330-3",
523
+ "relatedIdentifierType"=>"DOI",
524
+ "relationType"=>"References"},
525
+ {"relatedIdentifier"=>"10.1080/13550280802074539",
526
+ "relatedIdentifierType"=>"DOI",
527
+ "relationType"=>"References"},
528
+ {"relatedIdentifier"=>"10.1086/650743",
529
+ "relatedIdentifierType"=>"DOI",
530
+ "relationType"=>"References"},
531
+ {"relatedIdentifier"=>"10.1371/journal.pone.0008129",
532
+ "relatedIdentifierType"=>"DOI",
533
+ "relationType"=>"References"},
534
+ {"relatedIdentifier"=>"10.1128/jvi.80.10.5074-5077.2006",
535
+ "relatedIdentifierType"=>"DOI",
536
+ "relationType"=>"References"},
537
+ {"relatedIdentifier"=>"10.1186/1742-2094-10-62",
538
+ "relatedIdentifierType"=>"DOI",
539
+ "relationType"=>"References"},
540
+ {"relatedIdentifier"=>"10.1086/323478",
541
+ "relatedIdentifierType"=>"DOI",
542
+ "relationType"=>"References"},
543
+ {"relatedIdentifier"=>"10.1128/jvi.73.12.10480-10488.1999",
544
+ "relatedIdentifierType"=>"DOI",
545
+ "relationType"=>"References"},
546
+ {"relatedIdentifier"=>"10.1111/hiv.12134",
547
+ "relatedIdentifierType"=>"DOI",
548
+ "relationType"=>"References"}])
549
+ expect(subject.container).to eq("firstPage"=>"303", "identifier"=>"0014-2999", "identifierType"=>"ISSN", "lastPage"=>"312", "title"=>"European Journal of Pharmacology", "type"=>"Journal", "volume"=>"759")
550
+ expect(subject.agency).to eq("crossref")
551
+ end
552
+
553
+ it "vor with url" do
554
+ input = "https://doi.org/10.1038/hdy.2013.26"
555
+ subject = Briard::Metadata.new(input: input)
556
+ expect(subject.valid?).to be true
557
+ expect(subject.id).to eq("https://doi.org/10.1038/hdy.2013.26")
558
+ expect(subject.url).to eq("http://www.nature.com/articles/hdy201326")
559
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
560
+ expect(subject.creators.length).to eq(2)
561
+ expect(subject.creators.first).to eq("familyName"=>"Gross", "givenName"=>"J B", "name"=>"Gross, J B", "nameType"=>"Personal")
562
+ expect(subject.titles).to eq([{"title"=>"Albinism in phylogenetically and geographically distinct populations of Astyanax cavefish arises through the same loss-of-function Oca2 allele"}])
563
+ expect(subject.dates).to include({"date"=>"2013-04-10", "dateType"=>"Issued"})
564
+ expect(subject.publication_year).to eq("2013")
565
+ expect(subject.publisher).to eq("Springer Science and Business Media LLC")
566
+ expect(subject.related_identifiers.size).to eq(35)
567
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"1365-2540", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
568
+ expect(subject.container).to eq("firstPage"=>"122", "identifier"=>"1365-2540", "identifierType"=>"ISSN", "issue"=>"2", "lastPage"=>"130", "title"=>"Heredity", "type"=>"Journal", "volume"=>"111")
569
+ expect(subject.agency).to eq("crossref")
570
+ end
571
+
572
+ it "dataset" do
573
+ input = "10.2210/pdb4hhb/pdb"
574
+ subject = Briard::Metadata.new(input: input)
575
+ expect(subject.valid?).to be true
576
+ expect(subject.id).to eq("https://doi.org/10.2210/pdb4hhb/pdb")
577
+ expect(subject.url).to eq("https://www.wwpdb.org/pdb?id=pdb_00004hhb")
578
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceType"=>"SaComponent", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
579
+ expect(subject.creators.length).to eq(2)
580
+ expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Fermi, G.", "givenName"=>"G.", "familyName"=>"Fermi")
581
+ expect(subject.titles).to eq([{"title"=>"THE CRYSTAL STRUCTURE OF HUMAN DEOXYHAEMOGLOBIN AT 1.74 ANGSTROMS RESOLUTION"}])
582
+ expect(subject.descriptions).to eq([{"description"=>"x-ray diffraction structure", "descriptionType"=>"Other"}])
583
+ expect(subject.dates).to include({"date"=>"1984-07-17", "dateType"=>"Issued"})
584
+ expect(subject.publication_year).to eq("1984")
585
+ expect(subject.publisher).to eq("Worldwide Protein Data Bank")
586
+ expect(subject.agency).to eq("crossref")
587
+ end
588
+
589
+ it "component" do
590
+ input = "10.1371/journal.pmed.0030277.g001"
591
+ subject = Briard::Metadata.new(input: input)
592
+ expect(subject.valid?).to be true
593
+ expect(subject.id).to eq("https://doi.org/10.1371/journal.pmed.0030277.g001")
594
+ expect(subject.url).to eq("https://dx.plos.org/10.1371/journal.pmed.0030277.g001")
595
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceType"=>"SaComponent", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
596
+ expect(subject.creators).to eq([{"name"=>":(unav)", "nameType"=>"Organizational"}])
597
+ expect(subject.titles).to eq([{"title"=>":(unav)"}])
598
+ expect(subject.descriptions).to be_empty
599
+ expect(subject.dates).to eq([{"date"=>"2015-10-20", "dateType"=>"Issued"}, {"date"=>"2018-10-19T21:13:42Z", "dateType"=>"Updated"}])
600
+ expect(subject.publication_year).to eq("2015")
601
+ expect(subject.publisher).to eq("Public Library of Science (PLoS)")
602
+ expect(subject.agency).to eq("crossref")
603
+ end
604
+
605
+ it "dataset usda" do
606
+ input = "https://doi.org/10.2737/RDS-2018-0001"
607
+ subject = Briard::Metadata.new(input: input)
608
+ #expect(subject.valid?).to be true
609
+ expect(subject.id).to eq("https://doi.org/10.2737/rds-2018-0001")
610
+ expect(subject.url).to eq("https://www.fs.usda.gov/rds/archive/Catalog/RDS-2018-0001")
611
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"dataset", "resourceType"=>"Dataset", "resourceTypeGeneral"=>"Dataset", "ris"=>"DATA", "schemaOrg"=>"Dataset")
612
+ expect(subject.creators.length).to eq(4)
613
+ expect(subject.creators.first).to eq("familyName" => "Ribic","givenName" => "Christine A.","name" => "Ribic, Christine A.","affiliation" => [{"name"=>"U.S. Geological Survey"}],"nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-2583-1778", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}],"nameType" => "Personal")
614
+ expect(subject.titles).to eq([{"title"=>"Fledging times of grassland birds"}])
615
+ expect(subject.descriptions).to be_empty
616
+ expect(subject.dates).to eq([{"date"=>"2017-08-09", "dateType"=>"Issued"}, {"date"=>"2021-07-01T22:10:21Z", "dateType"=>"Updated"}])
617
+ expect(subject.publication_year).to eq("2017")
618
+ expect(subject.publisher).to eq("USDA Forest Service")
619
+ expect(subject.agency).to eq("crossref")
620
+ end
621
+
622
+ it "book chapter" do
623
+ input = "https://doi.org/10.1007/978-3-662-46370-3_13"
624
+ subject = Briard::Metadata.new(input: input)
625
+ expect(subject.valid?).to be true
626
+ expect(subject.id).to eq("https://doi.org/10.1007/978-3-662-46370-3_13")
627
+ expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-662-46370-3_13")
628
+ expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"BookChapter", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
629
+ expect(subject.creators.length).to eq(2)
630
+ expect(subject.creators.first).to eq("nameType"=>"Personal", "name"=>"Diercks, Ronald L.", "givenName"=>"Ronald L.", "familyName"=>"Diercks")
631
+ expect(subject.titles).to eq([{"title"=>"Clinical Symptoms and Physical Examinations"}])
632
+ expect(subject.dates).to eq([{"date"=>"2015", "dateType"=>"Issued"}, {"date"=>"2015-04-14T02:31:13Z", "dateType"=>"Updated"}])
633
+ expect(subject.publication_year).to eq("2015")
634
+ expect(subject.publisher).to eq("Springer Science and Business Media LLC")
635
+ expect(subject.agency).to eq("crossref")
636
+ expect(subject.container["type"]).to eq("Book")
637
+ expect(subject.container["title"]).to eq("Shoulder Stiffness")
638
+ expect(subject.container["firstPage"]).to eq("155")
639
+ expect(subject.container["lastPage"]).to eq("158")
640
+ expect(subject.container["identifiers"]).to eq([{"identifier"=>"978-3-662-46369-7", "identifierType"=>"ISBN"}])
641
+ end
642
+
643
+ it "another book chapter" do
644
+ input = "https://doi.org/10.1007/978-3-319-75889-3_1"
645
+ subject = Briard::Metadata.new(input: input)
646
+ expect(subject.valid?).to be true
647
+ expect(subject.id).to eq("https://doi.org/10.1007/978-3-319-75889-3_1")
648
+ expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-319-75889-3_1")
649
+ expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"BookChapter", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
650
+ expect(subject.creators).to eq([{"familyName"=>"Jones", "givenName"=>"Hunter M.", "name"=>"Jones, Hunter M.", "nameType"=>"Personal"}])
651
+ expect(subject.titles).to eq([{"title"=>"Climate Change and Increasing Risk of Extreme Heat"}])
652
+ expect(subject.dates).to include({"date"=>"2018", "dateType"=>"Issued"})
653
+ expect(subject.publication_year).to eq("2018")
654
+ expect(subject.publisher).to eq("Springer Science and Business Media LLC")
655
+ expect(subject.agency).to eq("crossref")
656
+ expect(subject.container["type"]).to eq("Book Series")
657
+ expect(subject.container["title"]).to eq("SpringerBriefs in Medical Earth Sciences")
658
+ expect(subject.container["identifier"]).to eq("2523-3629")
659
+ expect(subject.container["identifierType"]).to eq("ISSN")
660
+ end
661
+
662
+ it "yet another book chapter" do
663
+ input = "https://doi.org/10.4018/978-1-4666-1891-6.ch004"
664
+ subject = Briard::Metadata.new(input: input)
665
+ expect(subject.valid?).to be true
666
+ expect(subject.id).to eq("https://doi.org/10.4018/978-1-4666-1891-6.ch004")
667
+ expect(subject.url).to eq("http://services.igi-global.com/resolvedoi/resolve.aspx?doi=10.4018/978-1-4666-1891-6.ch004")
668
+ expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"BookChapter", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
669
+ expect(subject.creators).to eq([{"affiliation"=>[{"name"=>"Universit?? de Lyon, France"}], "familyName"=>"Bichot", "givenName"=>"Charles-Edmond", "name"=>"Bichot, Charles-Edmond", "nameType"=>"Personal"}])
670
+ expect(subject.titles).to eq([{"title"=>"Unsupervised and Supervised Image Segmentation Using Graph Partitioning"}])
671
+ expect(subject.dates).to eq([{"date"=>"2012-08-08", "dateType"=>"Issued"}, {"date"=>"2019-07-02T13:17:21Z", "dateType"=>"Updated"}])
672
+ expect(subject.publication_year).to eq("2012")
673
+ expect(subject.publisher).to eq("IGI Global")
674
+ expect(subject.agency).to eq("crossref")
675
+ expect(subject.container["type"]).to eq("Book")
676
+ expect(subject.container["title"]).to eq("Graph-Based Methods in Computer Vision")
677
+ expect(subject.container["firstPage"]).to eq("72")
678
+ expect(subject.container["lastPage"]).to eq("94")
679
+ expect(subject.container["identifiers"]).to eq([{"identifier"=>"9781466618916", "identifierType"=>"ISBN"}])
680
+ end
681
+
682
+ it "missing creator" do
683
+ input = "https://doi.org/10.3390/publications6020015"
684
+ subject = Briard::Metadata.new(input: input)
685
+ expect(subject.valid?).to be true
686
+ expect(subject.id).to eq("https://doi.org/10.3390/publications6020015")
687
+ expect(subject.url).to eq("https://www.mdpi.com/2304-6775/6/2/15")
688
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
689
+ expect(subject.creators).to eq([{"familyName"=>"Kohls",
690
+ "givenName"=>"Alexander",
691
+ "name"=>"Kohls, Alexander",
692
+ "nameIdentifiers"=>
693
+ [{"nameIdentifier"=>"https://orcid.org/0000-0002-3836-8885",
694
+ "nameIdentifierScheme"=>"ORCID",
695
+ "schemeUri"=>"https://orcid.org"}],
696
+ "nameType"=>"Personal"},
697
+ {"familyName"=>"Mele",
698
+ "givenName"=>"Salvatore",
699
+ "name"=>"Mele, Salvatore",
700
+ "nameIdentifiers"=>
701
+ [{"nameIdentifier"=>"https://orcid.org/0000-0003-0762-2235",
702
+ "nameIdentifierScheme"=>"ORCID",
703
+ "schemeUri"=>"https://orcid.org"}],
704
+ "nameType"=>"Personal"}])
705
+ expect(subject.titles).to eq([{"title"=>"Converting the Literature of a Scientific Field to Open Access through Global Collaboration: The Experience of SCOAP3 in Particle Physics"}])
706
+ expect(subject.dates).to eq([{"date"=>"2018-04-09", "dateType"=>"Issued"}, {"date"=>"2021-07-22T10:05:05Z", "dateType"=>"Updated"}])
707
+ expect(subject.publication_year).to eq("2018")
708
+ expect(subject.publisher).to eq("MDPI AG")
709
+ expect(subject.agency).to eq("crossref")
710
+ end
711
+
712
+ it "book" do
713
+ input = "https://doi.org/10.1017/9781108348843"
714
+ subject = Briard::Metadata.new(input: input)
715
+ expect(subject.valid?).to be true
716
+ expect(subject.id).to eq("https://doi.org/10.1017/9781108348843")
717
+ expect(subject.identifiers).to eq([{"identifier"=>"9781108348843", "identifierType"=>"ISBN"}])
718
+ expect(subject.url).to eq("https://www.cambridge.org/core/product/identifier/9781108348843/type/book")
719
+ expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
720
+ expect(subject.creators).to eq([{"familyName"=>"Leung", "givenName"=>"Vincent S.", "name"=>"Leung, Vincent S.", "nameType"=>"Personal"}])
721
+ expect(subject.titles).to eq([{"title"=>"The Politics of the Past in Early China"}])
722
+ expect(subject.dates).to eq([{"date"=>"2019-07-01", "dateType"=>"Issued"}, {"date"=>"2021-01-08T19:18:57Z", "dateType"=>"Updated"}])
723
+ expect(subject.publication_year).to eq("2019")
724
+ expect(subject.publisher).to eq("Cambridge University Press (CUP)")
725
+ expect(subject.agency).to eq("crossref")
726
+ expect(subject.date_registered).to eq("2019-07-06T10:19:22Z")
727
+ end
728
+
729
+ it "another book" do
730
+ input = "https://doi.org/10.2973/odp.proc.ir.180.2000"
731
+ subject = Briard::Metadata.new(input: input)
732
+ expect(subject.valid?).to be true
733
+ expect(subject.id).to eq("https://doi.org/10.2973/odp.proc.ir.180.2000")
734
+ expect(subject.url).to eq("http://www-odp.tamu.edu/publications/180_IR/180TOC.HTM")
735
+ expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
736
+ expect(subject.creators).to eq([{"name"=>":(unav)", "nameType"=>"Organizational"}])
737
+ expect(subject.contributors.size).to eq(4)
738
+ expect(subject.contributors.first).to eq("contributorType"=>"Editor", "familyName"=>"Taylor", "givenName"=>"B.", "name"=>"Taylor, B.", "nameType"=>"Personal")
739
+ expect(subject.titles).to eq([{"title"=>"Proceedings of the Ocean Drilling Program, 180 Initial Reports"}])
740
+ expect(subject.dates).to eq([{"date"=>"2000-02-04", "dateType"=>"Issued"}, {"date"=>"2009-02-02T21:19:43Z", "dateType"=>"Updated"}])
741
+ expect(subject.publication_year).to eq("2000")
742
+ expect(subject.publisher).to eq("International Ocean Discovery Program (IODP)")
743
+ expect(subject.agency).to eq("crossref")
744
+ expect(subject.date_registered).to eq("2006-10-17T20:17:44Z")
745
+ end
746
+
747
+ it "yet another book" do
748
+ input = "https://doi.org/10.1029/ar035"
749
+ subject = Briard::Metadata.new(input: input)
750
+ expect(subject.valid?).to be true
751
+ expect(subject.id).to eq("https://doi.org/10.1029/ar035")
752
+ expect(subject.identifiers).to eq([{"identifier"=>"0-87590-181-6", "identifierType"=>"ISBN"}])
753
+ expect(subject.url).to eq("http://doi.wiley.com/10.1029/AR035")
754
+ expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
755
+ expect(subject.creators).to eq([{"familyName"=>"McGinnis", "givenName"=>"Richard Frank", "name"=>"McGinnis, Richard Frank", "nameType"=>"Personal"}])
756
+ expect(subject.titles).to eq([{"title"=>"Biogeography of Lanternfishes (Myctophidae) South of 30??S"}])
757
+ expect(subject.dates).to eq([{"date"=>"1982", "dateType"=>"Issued"}, {"date"=>"2021-12-04T00:09:54Z", "dateType"=>"Updated"}])
758
+ expect(subject.publication_year).to eq("1982")
759
+ expect(subject.publisher).to eq("Wiley")
760
+ expect(subject.related_identifiers.length).to eq(46)
761
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"10.1016/0031-0182(70)90103-3", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
762
+ expect(subject.container).to eq("identifier"=>"0066-4634", "identifierType"=>"ISSN", "title"=>"Antarctic Research Series", "type"=>"Book Series", "volume"=>"35")
763
+ expect(subject.agency).to eq("crossref")
764
+ expect(subject.date_registered).to be_nil
765
+ end
766
+
767
+ it "mEDRA" do
768
+ input = "https://doi.org/10.3280/ecag2018-001005"
769
+ subject = Briard::Metadata.new(input: input)
770
+ expect(subject.valid?).to be true
771
+ expect(subject.id).to eq("https://doi.org/10.3280/ecag2018-001005")
772
+ expect(subject.identifiers).to eq([{"identifier"=>"5", "identifierType"=>"article_number"}])
773
+ expect(subject.url).to eq("http://www.francoangeli.it/riviste/Scheda_Riviste.asp?IDArticolo=61645")
774
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
775
+ expect(subject.creators.length).to eq(2)
776
+ expect(subject.creators.first).to eq("familyName"=>"Oh", "givenName"=>"Sohae Eve", "name"=>"Oh, Sohae Eve", "nameType"=>"Personal")
777
+ expect(subject.titles).to eq([{"title"=>"Substitutability between organic and conventional poultry products and organic price premiums"}])
778
+ expect(subject.dates).to include({"date"=>"2018-05", "dateType"=>"Issued"})
779
+ expect(subject.publication_year).to eq("2018")
780
+ expect(subject.publisher).to eq("Franco Angeli")
781
+ expect(subject.agency).to eq("crossref")
782
+ end
783
+
784
+ it "KISTI" do
785
+ input = "https://doi.org/10.5012/bkcs.2013.34.10.2889"
786
+ subject = Briard::Metadata.new(input: input)
787
+ expect(subject.valid?).to be true
788
+ expect(subject.id).to eq("https://doi.org/10.5012/bkcs.2013.34.10.2889")
789
+ expect(subject.identifiers).to eq([{"identifier"=>"JCGMCS_2013_v34n10_2889", "identifierType"=>"Publisher ID"}])
790
+ expect(subject.url).to eq("http://koreascience.or.kr/journal/view.jsp?kj=JCGMCS&py=2013&vnc=v34n10&sp=2889")
791
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
792
+ expect(subject.creators.length).to eq(7)
793
+ expect(subject.creators.first).to eq("familyName"=>"Huang", "givenName"=>"Guimei", "name"=>"Huang, Guimei", "nameType"=>"Personal")
794
+ expect(subject.titles).to eq([{"title"=>"Synthesis, Crystal Structure and Theoretical Calculation of a Novel Nickel(II) Complex with Dibromotyrosine and 1,10-Phenanthroline"}])
795
+ expect(subject.dates).to eq([{"date"=>"2013-10-20", "dateType"=>"Issued"}, {"date"=>"2016-12-14T21:40:52Z", "dateType"=>"Updated"}])
796
+ expect(subject.publication_year).to eq("2013")
797
+ expect(subject.publisher).to eq("Korean Chemical Society")
798
+ expect(subject.agency).to eq("KISTI")
799
+ end
800
+
801
+ it "JaLC" do
802
+ input = "https://doi.org/10.1241/johokanri.39.979"
803
+ subject = Briard::Metadata.new(input: input)
804
+ expect(subject.valid?).to be true
805
+ expect(subject.id).to eq("https://doi.org/10.1241/johokanri.39.979")
806
+ expect(subject.url).to eq("http://joi.jlc.jst.go.jp/JST.JSTAGE/johokanri/39.979?from=CrossRef")
807
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
808
+ expect(subject.creators).to eq([{"familyName"=>"KUSUMOTO", "givenName"=>"Hiroyuki", "name"=>"KUSUMOTO, Hiroyuki", "nameType"=>"Personal"}])
809
+ expect(subject.titles).to eq([{"title"=>"Utilizing the Internet. 12 Series. Future of the Internet."}])
810
+ expect(subject.dates).to eq([{"date"=>"1997", "dateType"=>"Issued"}, {"date"=>"2020-03-06T06:44:36Z", "dateType"=>"Updated"}])
811
+ expect(subject.publication_year).to eq("1997")
812
+ expect(subject.publisher).to eq("Japan Science and Technology Agency (JST)")
813
+ expect(subject.agency).to eq("JaLC")
814
+ end
815
+
816
+ it "OP" do
817
+ input = "https://doi.org/10.2903/j.efsa.2018.5239"
818
+ subject = Briard::Metadata.new(input: input)
819
+ expect(subject.valid?).to be true
820
+ expect(subject.id).to eq("https://doi.org/10.2903/j.efsa.2018.5239")
821
+ expect(subject.url).to eq("http://doi.wiley.com/10.2903/j.efsa.2018.5239")
822
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
823
+ expect(subject.creators.length).to eq(28)
824
+ expect(subject.creators.first).to eq("familyName"=>"Younes", "givenName"=>"Maged", "name"=>"Younes, Maged", "nameType"=>"Personal")
825
+ expect(subject.titles).to eq([{"title"=>"Scientific opinion on the safety of green tea catechins"}])
826
+ expect(subject.dates).to include({"date"=>"2018-04", "dateType"=>"Issued"})
827
+ expect(subject.publication_year).to eq("2018")
828
+ expect(subject.publisher).to eq("Wiley")
829
+ expect(subject.agency).to eq("OP")
830
+ end
831
+
832
+ it "multiple titles" do
833
+ input = "https://doi.org/10.4000/dms.865"
834
+ subject = Briard::Metadata.new(input: input)
835
+ expect(subject.valid?).to be true
836
+ expect(subject.id).to eq("https://doi.org/10.4000/dms.865")
837
+ expect(subject.url).to eq("http://journals.openedition.org/dms/865")
838
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
839
+ expect(subject.creators).to eq([{"familyName"=>"Peraya", "givenName"=>"Daniel", "name"=>"Peraya, Daniel", "nameType"=>"Personal"}])
840
+ expect(subject.titles).to eq([{"title"=>"Distances, absence, proximit??s et pr??sences??: des concepts en d??placement"}, {"title"=>"Distance(s), proximity and presence(s): evolving concepts"}])
841
+ expect(subject.dates).to include({"date"=>"2014-12-14", "dateType"=>"Issued"})
842
+ expect(subject.publication_year).to eq("2014")
843
+ expect(subject.publisher).to eq("OpenEdition")
844
+ expect(subject.agency).to eq("crossref")
845
+ expect(subject.date_registered).to be_nil
846
+ end
847
+
848
+ it "multiple titles with missing" do
849
+ input = "https://doi.org/10.1186/1471-2164-7-187"
850
+ subject = Briard::Metadata.new(input: input)
851
+ expect(subject.valid?).to be true
852
+ expect(subject.id).to eq("https://doi.org/10.1186/1471-2164-7-187")
853
+ expect(subject.url).to eq("https://bmcgenomics.biomedcentral.com/articles/10.1186/1471-2164-7-187")
854
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
855
+ expect(subject.creators).to eq([{"familyName"=>"Myers",
856
+ "givenName"=>"Chad L",
857
+ "name"=>"Myers, Chad L",
858
+ "nameType"=>"Personal"},
859
+ {"familyName"=>"Barrett",
860
+ "givenName"=>"Daniel R",
861
+ "name"=>"Barrett, Daniel R",
862
+ "nameType"=>"Personal"},
863
+ {"familyName"=>"Hibbs",
864
+ "givenName"=>"Matthew A",
865
+ "name"=>"Hibbs, Matthew A",
866
+ "nameType"=>"Personal"},
867
+ {"familyName"=>"Huttenhower",
868
+ "givenName"=>"Curtis",
869
+ "name"=>"Huttenhower, Curtis",
870
+ "nameType"=>"Personal"},
871
+ {"familyName"=>"Troyanskaya",
872
+ "givenName"=>"Olga G",
873
+ "name"=>"Troyanskaya, Olga G",
874
+ "nameType"=>"Personal"}])
875
+ expect(subject.titles).to eq([{"title"=>"Finding function: evaluation methods for functional genomic data"}])
876
+ expect(subject.dates).to include({"date"=>"2006-07-25", "dateType"=>"Issued"})
877
+ expect(subject.publication_year).to eq("2006")
878
+ expect(subject.publisher).to eq("Springer Science and Business Media LLC")
879
+ expect(subject.agency).to eq("crossref")
880
+ expect(subject.date_registered).to eq("2021-08-31T17:31:49Z")
881
+ end
882
+
883
+ it "markup" do
884
+ input = "https://doi.org/10.1098/rspb.2017.0132"
885
+ subject = Briard::Metadata.new(input: input)
886
+ expect(subject.valid?).to be true
887
+ expect(subject.id).to eq("https://doi.org/10.1098/rspb.2017.0132")
888
+ expect(subject.url).to eq("https://royalsocietypublishing.org/doi/10.1098/rspb.2017.0132")
889
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
890
+ expect(subject.creators.size).to eq(6)
891
+ expect(subject.creators.first).to eq("affiliation" => [{"name"=>"School of Biological Sciences, Centre for Evolutionary Biology, University of Western Australia, Crawley, WA 6009, Australia"}], "familyName" => "Dougherty","givenName" => "Liam R.","name" => "Dougherty, Liam R.","nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-1406-0680", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}],"nameType"=>"Personal")
892
+ expect(subject.titles).to eq([{"title"=>"Sexual conflict and correlated evolution between male persistence and female resistance traits in the seed beetle <i>Callosobruchus maculatus</i>"}])
893
+ expect(subject.dates).to include({"date"=>"2017-05-24", "dateType"=>"Issued"})
894
+ expect(subject.publication_year).to eq("2017")
895
+ expect(subject.publisher).to eq("The Royal Society")
896
+ expect(subject.agency).to eq("crossref")
897
+ expect(subject.date_registered).to eq("2021-02-14T10:36:45Z")
898
+ end
899
+
900
+ it "empty given name" do
901
+ input = "https://doi.org/10.1111/J.1865-1682.2010.01171.X"
902
+ subject = Briard::Metadata.new(input: input)
903
+ expect(subject.valid?).to be true
904
+ expect(subject.id).to eq("https://doi.org/10.1111/j.1865-1682.2010.01171.x")
905
+ expect(subject.url).to eq("https://onlinelibrary.wiley.com/doi/10.1111/j.1865-1682.2010.01171.x")
906
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
907
+ expect(subject.creators.length).to eq(5)
908
+ expect(subject.creators[3]).to eq("familyName"=>"Ehtisham-ul-Haq", "givenName"=>"???", "name"=>"Ehtisham-ul-Haq, ???", "nameType"=>"Personal")
909
+ expect(subject.titles).to eq([{"title"=>"Serological Evidence of Brucella abortus Prevalence in Punjab Province, Pakistan - A Cross-Sectional Study"}])
910
+ expect(subject.rights_list).to eq([{"rightsUri"=>"http://doi.wiley.com/10.1002/tdm_license_1.1"}])
911
+ expect(subject.dates).to eq([{"date"=>"2010-12", "dateType"=>"Issued"}, {"date"=>"2021-07-07T02:32:16Z", "dateType"=>"Updated"}])
912
+ expect(subject.publication_year).to eq("2010")
913
+ expect(subject.publisher).to eq("Wiley")
914
+ end
915
+
916
+ it "invalid date" do
917
+ input = "https://doi.org/10.1055/s-0039-1690894"
918
+ subject = Briard::Metadata.new(input: input)
919
+ expect(subject.valid?).to be true
920
+ expect(subject.id).to eq("https://doi.org/10.1055/s-0039-1690894")
921
+ expect(subject.identifiers).to eq([{"identifier"=>"s-0039-1690894", "identifierType"=>"sequence-number"}])
922
+ expect(subject.url).to eq("http://www.thieme-connect.de/DOI/DOI?10.1055/s-0039-1690894")
923
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
924
+ expect(subject.creators.length).to eq(4)
925
+ expect(subject.creators[3]).to eq("affiliation" => [{"name"=>"Department of Chemistry, Tianjin Key Laboratory of Molecular Optoelectronic Sciences, and Tianjin Collaborative Innovation Centre of Chemical Science and Engineering, Tianjin University"}, {"name"=>"Joint School of National University of Singapore and Tianjin University, International Campus of Tianjin University"}],
926
+ "familyName" => "Ma",
927
+ "givenName" => "Jun-An",
928
+ "name" => "Ma, Jun-An",
929
+ "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0002-3902-6799", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}],
930
+ "nameType" => "Personal")
931
+ expect(subject.titles).to eq([{"title"=>"Silver-Catalyzed [3+3] Annulation of Glycine Imino Esters with Seyferth???Gilbert Reagent To Access Tetrahydro-1,2,4-triazinecarboxylate Esters"}])
932
+ expect(subject.dates).to eq([{"date"=>"2020-04-08", "dateType"=>"Issued"}, {"date"=>"2020-06-16T23:13:36Z", "dateType"=>"Updated"}])
933
+ expect(subject.publication_year).to eq("2020")
934
+ expect(subject.publisher).to eq("Georg Thieme Verlag KG")
935
+ end
936
+
937
+ it "journal article with" do
938
+ input = "https://doi.org/10.1111/nph.14619"
939
+ subject = Briard::Metadata.new(input: input)
940
+ expect(subject.valid?).to be true
941
+ expect(subject.id).to eq("https://doi.org/10.1111/nph.14619")
942
+ expect(subject.url).to eq("https://onlinelibrary.wiley.com/doi/10.1111/nph.14619")
943
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
944
+ expect(subject.creators.length).to eq(3)
945
+ expect(subject.creators.first).to eq("nameType"=>"Personal", "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0002-4156-3761", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}], "name"=>"Dissmeyer, Nico", "givenName"=>"Nico", "familyName"=>"Dissmeyer", "affiliation" => [{"name"=>"Independent Junior Research Group on Protein Recognition and Degradation; Leibniz Institute of Plant Biochemistry (IPB); Weinberg 3 Halle (Saale) D-06120 Germany"}, {"name"=>"ScienceCampus Halle - Plant-based Bioeconomy; Betty-Heimann-Strasse 3 Halle (Saale) D-06120 Germany"}])
946
+ expect(subject.titles).to eq([{"title"=>"Life and death of proteins after protease cleavage: protein degradation by the N-end rule pathway"}])
947
+ expect(subject.rights_list).to eq([{"rightsUri"=>"http://doi.wiley.com/10.1002/tdm_license_1.1"}, {"rightsUri"=>"http://onlinelibrary.wiley.com/termsAndConditions#vor"}])
948
+ expect(subject.dates).to include({"date"=>"2018-05", "dateType"=>"Issued"})
949
+ expect(subject.publication_year).to eq("2018")
950
+ expect(subject.publisher).to eq("Wiley")
951
+ expect(subject.related_identifiers.length).to eq(49)
952
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"0028-646X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
953
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.1002/pmic.201400530", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
954
+ expect(subject.container).to eq("firstPage"=>"929", "identifier"=>"0028-646X", "identifierType"=>"ISSN", "issue"=>"3", "lastPage"=>"935", "title"=>"New Phytologist", "type"=>"Journal", "volume"=>"218")
955
+ expect(subject.agency).to eq("crossref")
956
+ expect(subject.date_registered).to eq("2018-08-03T11:45:49Z")
957
+ end
958
+
959
+ it "author literal" do
960
+ input = "https://doi.org/10.1038/ng.3834"
961
+ subject = Briard::Metadata.new(input: input)
962
+ expect(subject.valid?).to be true
963
+ expect(subject.id).to eq("https://doi.org/10.1038/ng.3834")
964
+ expect(subject.url).to eq("http://www.nature.com/articles/ng.3834")
965
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
966
+ expect(subject.creators.length).to eq(14)
967
+ expect(subject.creators.last).to eq("name"=>"GTEx Consortium", "nameType"=>"Organizational")
968
+ expect(subject.titles).to eq([{"title"=>"The impact of structural variation on human gene expression"}])
969
+ expect(subject.dates).to include({"date"=>"2017-04-03", "dateType"=>"Issued"})
970
+ expect(subject.publication_year).to eq("2017")
971
+ expect(subject.publisher).to eq("Springer Science and Business Media LLC")
972
+ expect(subject.agency).to eq("crossref")
973
+ expect(subject.date_registered).to eq("2019-11-02T09:30:06Z")
974
+ end
975
+
976
+ it "affiliation is space" do
977
+ input = "https://doi.org/10.1177/0042098011428175"
978
+ subject = Briard::Metadata.new(input: input)
979
+ expect(subject.valid?).to be true
980
+ expect(subject.id).to eq("https://doi.org/10.1177/0042098011428175")
981
+ expect(subject.url).to eq("http://journals.sagepub.com/doi/10.1177/0042098011428175")
982
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
983
+ expect(subject.creators.length).to eq(1)
984
+ expect(subject.creators.first).to eq("affiliation"=>[{"name"=>"??"}], "familyName"=>"Petrovici", "givenName"=>"Norbert", "name"=>"Petrovici, Norbert", "nameType"=>"Personal")
985
+ expect(subject.titles).to eq([{"title"=>"Workers and the City: Rethinking the Geographies of Power in Post-socialist Urbanisation"}])
986
+ expect(subject.dates).to include({"date"=>"2011-12-22", "dateType"=>"Issued"})
987
+ expect(subject.publication_year).to eq("2011")
988
+ expect(subject.publisher).to eq("SAGE Publications")
989
+ expect(subject.agency).to eq("crossref")
990
+ expect(subject.date_registered).to eq("2021-05-16T02:02:38Z")
991
+ end
992
+
993
+ it "multiple issn" do
994
+ input = "https://doi.org/10.1007/978-3-642-34922-5_19"
995
+ subject = Briard::Metadata.new(input: input)
996
+ expect(subject.valid?).to be true
997
+ expect(subject.id).to eq("https://doi.org/10.1007/978-3-642-34922-5_19")
998
+ expect(subject.url).to eq("http://link.springer.com/10.1007/978-3-642-34922-5_19")
999
+ expect(subject.types).to eq("bibtex"=>"inbook", "citeproc"=>"chapter", "resourceType"=>"BookChapter", "resourceTypeGeneral"=>"BookChapter", "ris"=>"CHAP", "schemaOrg"=>"Chapter")
1000
+ expect(subject.creators.length).to eq(3)
1001
+ expect(subject.creators.first).to eq("familyName"=>"Razib", "givenName"=>"Ali", "name"=>"Razib, Ali", "nameType"=>"Personal")
1002
+ expect(subject.titles).to eq([{"title"=>"Log-Domain Arithmetic for High-Speed Fuzzy Control on a Field-Programmable Gate Array"}])
1003
+ expect(subject.dates).to include({"date"=>"2013", "dateType"=>"Issued"})
1004
+ expect(subject.publication_year).to eq("2013")
1005
+ expect(subject.publisher).to eq("Springer Science and Business Media LLC")
1006
+ expect(subject.container).to eq("identifier"=>"1860-0808", "identifierType"=>"ISSN", "title"=>"Studies in Fuzziness and Soft Computing", "type"=>"Book Series")
1007
+ expect(subject.agency).to eq("crossref")
1008
+ expect(subject.date_registered).to eq("2012-10-31T16:15:44Z")
1009
+ end
1010
+
1011
+ it "article id as page number" do
1012
+ input = "https://doi.org/10.1103/physrevlett.120.117701"
1013
+ subject = Briard::Metadata.new(input: input)
1014
+ expect(subject.valid?).to be true
1015
+ expect(subject.id).to eq("https://doi.org/10.1103/physrevlett.120.117701")
1016
+ expect(subject.url).to eq("https://link.aps.org/doi/10.1103/PhysRevLett.120.117701")
1017
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"JournalArticle", "resourceTypeGeneral"=>"JournalArticle", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
1018
+ expect(subject.creators.length).to eq(5)
1019
+ expect(subject.creators.first).to eq("familyName"=>"Marrazzo", "givenName"=>"Antimo", "name"=>"Marrazzo, Antimo", "nameType"=>"Personal")
1020
+ expect(subject.titles).to eq([{"title"=>"Prediction of a Large-Gap and Switchable Kane-Mele Quantum Spin Hall Insulator"}])
1021
+ expect(subject.dates).to include({"date"=>"2018-03-13", "dateType"=>"Issued"})
1022
+ expect(subject.publication_year).to eq("2018")
1023
+ expect(subject.publisher).to eq("American Physical Society (APS)")
1024
+ expect(subject.container).to eq("firstPage" => "117701", "identifier"=>"1079-7114", "identifierType"=>"ISSN", "issue"=>"11", "title"=>"Physical Review Letters", "type"=>"Journal", "volume"=>"120")
1025
+ expect(subject.agency).to eq("crossref")
1026
+ expect(subject.date_registered).to eq("2018-03-13T15:18:48Z")
1027
+ end
1028
+
1029
+ it "posted content copernicus" do
1030
+ input = "https://doi.org/10.5194/CP-2020-95"
1031
+ subject = Briard::Metadata.new(input: input)
1032
+ expect(subject.valid?).to be true
1033
+ expect(subject.url).to eq("https://cp.copernicus.org/preprints/cp-2020-95/cp-2020-95.pdf")
1034
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"PostedContent", "resourceTypeGeneral"=>"Preprint", "ris"=>"JOUR", "schemaOrg"=>"ScholarlyArticle")
1035
+ expect(subject.creators.count).to eq(6)
1036
+ expect(subject.creators.first).to eq("nameType" => "Personal", "familyName" => "Shao",
1037
+ "givenName" => "Jun",
1038
+ "name" => "Shao, Jun",
1039
+ "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0001-6130-6474", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}])
1040
+ expect(subject.titles).to eq([{"title"=>"The Atmospheric Bridge Communicated the ??&lt;sup&gt;13&lt;/sup&gt;C Decline during the Last Deglaciation to the Global Upper Ocean"}])
1041
+ expect(subject.id).to eq("https://doi.org/10.5194/cp-2020-95")
1042
+ expect(subject.identifiers).to be_empty
1043
+ expect(subject.descriptions.first["description"]).to start_with("Abstract. During the early last glacial termination")
1044
+ expect(subject.dates).to include({"date"=>"2020-07-28", "dateType"=>"Issued"})
1045
+ expect(subject.publication_year).to eq("2020")
1046
+ expect(subject.publisher).to eq("Copernicus GmbH")
1047
+ expect(subject.agency).to eq("crossref")
1048
+ end
1049
+
1050
+ it "book oup" do
1051
+ input = "10.1093/oxfordhb/9780198746140.013.5"
1052
+ subject = Briard::Metadata.new(input: input)
1053
+ expect(subject.valid?).to be true
1054
+ expect(subject.url).to eq("http://oxfordhandbooks.com/view/10.1093/oxfordhb/9780198746140.001.0001/oxfordhb-9780198746140-e-5")
1055
+ expect(subject.types).to eq("bibtex"=>"book", "citeproc"=>"book", "resourceType"=>"Book", "resourceTypeGeneral"=>"Book", "ris"=>"BOOK", "schemaOrg"=>"Book")
1056
+ expect(subject.creators.count).to eq(1)
1057
+ expect(subject.creators.first).to eq("familyName"=>"Clayton", "givenName"=>"Barbra R.", "name"=>"Clayton, Barbra R.", "nameType"=>"Personal")
1058
+ expect(subject.contributors.count).to eq(2)
1059
+ expect(subject.contributors.first).to eq("contributorType"=>"Editor", "familyName"=>"Cozort", "givenName"=>"Daniel", "name"=>"Cozort, Daniel", "nameType"=>"Personal")
1060
+ expect(subject.titles).to eq([{"title"=>"The Changing Way of the Bodhisattva"}])
1061
+ expect(subject.id).to eq("https://doi.org/10.1093/oxfordhb/9780198746140.013.5")
1062
+ expect(subject.identifiers).to be_empty
1063
+ expect(subject.descriptions.first["description"]).to start_with("This chapter explores the nature of the connections")
1064
+ expect(subject.dates).to include({"date"=>"2018-04-05", "dateType"=>"Issued"})
1065
+ expect(subject.publication_year).to eq("2018")
1066
+ expect(subject.publisher).to eq("Oxford University Press (OUP)")
1067
+ expect(subject.agency).to eq("crossref")
1068
+ end
1069
+
1070
+ it "report osti" do
1071
+ input = "10.2172/972169"
1072
+ subject = Briard::Metadata.new(input: input)
1073
+ expect(subject.valid?).to be true
1074
+ expect(subject.url).to eq("http://www.osti.gov/servlets/purl/972169-1QXROM/")
1075
+ expect(subject.types).to eq("bibtex"=>"techreport", "citeproc"=>"report", "resourceType"=>"Report", "resourceTypeGeneral"=>"Report", "ris"=>"RPRT", "schemaOrg"=>"Report")
1076
+ expect(subject.creators.count).to eq(4)
1077
+ expect(subject.creators.first).to eq("familyName"=>"Denholm", "givenName"=>"P.", "name"=>"Denholm, P.", "nameType"=>"Personal")
1078
+ expect(subject.contributors.count).to eq(0)
1079
+ expect(subject.titles).to eq([{"title"=>"Role of Energy Storage with Renewable Electricity Generation"}])
1080
+ expect(subject.id).to eq("https://doi.org/10.2172/972169")
1081
+ expect(subject.identifiers).to eq( [{"identifier"=>"NREL/TP-6A2-47187", "identifierType"=>"report-number"}, {"identifier"=>"972169", "identifierType"=>"sequence-number"}])
1082
+ expect(subject.descriptions).to be_empty
1083
+ expect(subject.dates).to include({"date"=>"2010-01-01", "dateType"=>"Issued"})
1084
+ expect(subject.publication_year).to eq("2010")
1085
+ expect(subject.publisher).to eq("Office of Scientific and Technical Information (OSTI)")
1086
+ expect(subject.agency).to eq("crossref")
1087
+ end
1088
+
1089
+ it "journal issue" do
1090
+ input = "https://doi.org/10.6002/ect.2015.0371"
1091
+ subject = Briard::Metadata.new(input: input)
1092
+ #expect(subject.valid?).to be true
1093
+ expect(subject.id).to eq("https://doi.org/10.6002/ect.2015.0371")
1094
+ expect(subject.url).to eq("http://ectrx.org/forms/ectrxcontentshow.php?doi_id=10.6002/ect.2015.0371")
1095
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceType"=>"JournalIssue", "resourceTypeGeneral"=>"Text", "ris"=>"JOUR", "schemaOrg"=>"PublicationIssue")
1096
+ expect(subject.creators).to eq([{"name"=>":(unav)", "nameType"=>"Organizational"}])
1097
+ expect(subject.titles).to eq([{"title"=>":(unav)"}])
1098
+ expect(subject.dates).to eq([{"date"=>"2018-10", "dateType"=>"Issued"}, {"date"=>"2018-10-03T12:09:12Z", "dateType"=>"Updated"}])
1099
+ expect(subject.publication_year).to eq("2018")
1100
+ expect(subject.publisher).to eq("Baskent University")
1101
+ expect(subject.related_identifiers.length).to eq(1)
1102
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"2146-8427", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
1103
+ expect(subject.container).to eq("identifier"=>"2146-8427", "identifierType"=>"ISSN", "issue"=>"5", "title"=>"Experimental and Clinical Transplantation", "type"=>"Journal", "volume"=>"16")
1104
+ expect(subject.agency).to eq("crossref")
1105
+ end
1106
+
1107
+ it "not found error" do
1108
+ input = "https://doi.org/10.7554/elife.01567x"
1109
+ subject = Briard::Metadata.new(input: input)
1110
+ expect(subject.valid?).to be false
1111
+ expect(subject.id).to eq("https://doi.org/10.7554/elife.01567x")
1112
+ expect(subject.doi).to eq("10.7554/elife.01567x")
1113
+ expect(subject.agency).to eq("crossref")
1114
+ expect(subject.state).to eq("not_found")
1115
+ end
1116
+ end
1117
+ end