briard 2.8.1 → 2.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (529) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile.lock +11 -1
  4. data/briard.gemspec +1 -0
  5. data/lib/briard/metadata.rb +25 -22
  6. data/lib/briard/metadata_utils.rb +2 -0
  7. data/lib/briard/readers/crossref_json_reader.rb +6 -5
  8. data/lib/briard/readers/datacite_reader.rb +1 -1
  9. data/lib/briard/schema_utils.rb +15 -0
  10. data/lib/briard/utils.rb +6 -2
  11. data/lib/briard/version.rb +1 -1
  12. data/resources/json-schema/briard_schema.json +367 -0
  13. data/spec/cli_spec.rb +64 -3
  14. data/spec/find_from_format_spec.rb +27 -0
  15. data/spec/fixtures/crosscite.json +1 -1
  16. data/spec/fixtures/datacite.json +1 -1
  17. data/spec/fixtures/datacite_software.json +1 -1
  18. data/spec/fixtures/datacite_software_version.json +1 -1
  19. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_json/default.yml +51 -0
  20. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_json/to_bibtex.yml +51 -0
  21. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_json/to_crossref.yml +51 -0
  22. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_json/to_datacite.yml +51 -0
  23. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_json/to_schema_org.yml +51 -0
  24. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/default.yml +9 -9
  25. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_bibtex.yml +9 -9
  26. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_citation.yml +9 -9
  27. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_crossref.yml +9 -9
  28. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_datacite.yml +9 -9
  29. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_jats.yml +9 -9
  30. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_schema_org.yml +9 -9
  31. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref_json/default.yml +120 -0
  32. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref_json/to_bibtex.yml +112 -0
  33. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref_json/to_citation.yml +112 -0
  34. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref_json/to_crossref.yml +112 -0
  35. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref_json/to_datacite.yml +112 -0
  36. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref_json/to_schema_org.yml +112 -0
  37. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/default.yml +10 -10
  38. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_bibtex.yml +10 -10
  39. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_citation.yml +10 -10
  40. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_datacite.yml +10 -10
  41. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_datacite_json.yml +10 -10
  42. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_jats.yml +10 -10
  43. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_schema_org.yml +10 -10
  44. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/default.yml +5 -5
  45. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/to_datacite.yml +5 -5
  46. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/to_schema_org.yml +7 -9
  47. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/crossref.yml +4 -4
  48. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/datacite.yml +4 -4
  49. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/jalc.yml +4 -4
  50. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/kisti.yml +4 -4
  51. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/medra.yml +4 -4
  52. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/op.yml +4 -4
  53. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/author.yml +6 -6
  54. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/no_author.yml +5 -5
  55. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/single_author.yml +5 -5
  56. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/with_organization.yml +5 -5
  57. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_datacite_metadata/change_state.yml +10 -10
  58. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_datacite_metadata/change_title.yml +10 -10
  59. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_description.yml +5 -5
  60. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_identifiers.yml +5 -5
  61. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_license.yml +5 -5
  62. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_license_name.yml +5 -5
  63. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_license_url.yml +5 -5
  64. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/change_state.yml +5 -5
  65. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/validates_against_schema.yml +5 -5
  66. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +5 -5
  67. data/spec/fixtures/vcr_cassettes/Briard_Metadata/datacite_api_url/doi.yml +5 -5
  68. data/spec/fixtures/vcr_cassettes/Briard_Metadata/datacite_api_url/doi_with_protocol.yml +6 -6
  69. data/spec/fixtures/vcr_cassettes/Briard_Metadata/datacite_api_url/dx_doi_org_url.yml +5 -5
  70. data/spec/fixtures/vcr_cassettes/Briard_Metadata/datacite_api_url/force_test_resolver.yml +6 -6
  71. data/spec/fixtures/vcr_cassettes/Briard_Metadata/datacite_api_url/https_url.yml +6 -6
  72. data/spec/fixtures/vcr_cassettes/Briard_Metadata/datacite_api_url/test_resolver.yml +5 -5
  73. data/spec/fixtures/vcr_cassettes/Briard_Metadata/datacite_api_url/test_resolver_http.yml +6 -6
  74. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/doi.yml +6 -6
  75. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/doi_with_special_characters.yml +6 -6
  76. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/not_a_doi.yml +5 -5
  77. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/sandbox_url.yml +6 -6
  78. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_from_url/url.yml +6 -6
  79. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/crossref.yml +10 -10
  80. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/datacite.yml +9 -9
  81. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/jalc.yml +9 -9
  82. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/kisti.yml +9 -9
  83. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/medra.yml +9 -9
  84. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/not_a_valid_prefix.yml +6 -6
  85. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/not_found.yml +9 -9
  86. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/op.yml +10 -10
  87. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/doi.yml +5 -5
  88. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/doi_with_protocol.yml +5 -5
  89. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/dx_doi_org_url.yml +5 -5
  90. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/force_stage_resolver.yml +6 -6
  91. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/https_url.yml +5 -5
  92. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/stage_resolver.yml +6 -6
  93. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_resolver/stage_resolver_http.yml +5 -5
  94. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/crossref.yml +14 -14
  95. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +14 -14
  96. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/datacite.yml +14 -14
  97. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/datacite_doi_http.yml +14 -14
  98. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/github.yml +10 -10
  99. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/orcid.yml +10 -10
  100. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/schema_org.yml +10 -10
  101. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +14 -14
  102. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/bibtex.yml +10 -10
  103. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/citeproc.yml +10 -10
  104. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/codemeta.yml +10 -10
  105. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/crosscite.yml +10 -10
  106. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/crossref.yml +10 -10
  107. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/crossref_json.yml +121 -0
  108. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/datacite.yml +10 -10
  109. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/datacite_json.yml +10 -10
  110. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/ris.yml +10 -10
  111. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_file/schema_org.yml +10 -10
  112. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_string/crosscite.yml +10 -10
  113. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_string/crossref.yml +121 -0
  114. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_string/crossref_json.yml +121 -0
  115. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_from_string/datacite.yml +121 -0
  116. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_for_match.yml +6 -6
  117. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_for_with_schemeUri_in_hash.yml +6 -6
  118. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_match.yml +6 -6
  119. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_no_match.yml +6 -6
  120. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_for_match.yml +6 -6
  121. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_match.yml +5 -5
  122. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_no_match.yml +5 -5
  123. data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org/with_id.yml +6 -6
  124. data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org_creators/with_affiliation.yml +6 -6
  125. data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org_creators/without_affiliation.yml +5 -5
  126. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/cff-converter-python.yml +7 -7
  127. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/ruby-cff.yml +10 -10
  128. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/ruby-cff_repository_url.yml +8 -8
  129. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/maremma.yml +8 -8
  130. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/metadata_reports.yml +7 -7
  131. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/DOI_with_ORCID_ID.yml +9 -9
  132. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/DOI_with_SICI_DOI.yml +9 -9
  133. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/DOI_with_data_citation.yml +4 -65
  134. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/JaLC.yml +9 -9
  135. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/KISTI.yml +9 -9
  136. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/OP.yml +9 -9
  137. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/affiliation_is_space.yml +9 -9
  138. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/another_book.yml +9 -9
  139. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/another_book_chapter.yml +9 -9
  140. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/article_id_as_page_number.yml +9 -9
  141. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/author_literal.yml +11 -11
  142. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/book.yml +9 -9
  143. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/book_chapter.yml +9 -9
  144. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/book_chapter_with_RDF_for_container.yml +9 -9
  145. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/book_oup.yml +9 -9
  146. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/component.yml +9 -9
  147. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/dataset.yml +9 -9
  148. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/dataset_usda.yml +9 -9
  149. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/date_in_future.yml +9 -9
  150. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/dissertation.yml +9 -9
  151. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/empty_given_name.yml +9 -9
  152. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/invalid_date.yml +9 -9
  153. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/journal_article.yml +9 -9
  154. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/journal_article_original_language_title.yml +9 -9
  155. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/journal_article_with.yml +9 -9
  156. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/journal_article_with_RDF_for_container.yml +9 -9
  157. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/journal_article_with_funding.yml +9 -9
  158. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/journal_issue.yml +9 -9
  159. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/mEDRA.yml +9 -9
  160. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/markup.yml +9 -9
  161. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/missing_creator.yml +9 -9
  162. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/multiple_issn.yml +9 -9
  163. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/multiple_titles.yml +9 -9
  164. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/multiple_titles_with_missing.yml +9 -9
  165. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/not_found_error.yml +9 -9
  166. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/peer_review.yml +9 -9
  167. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/posted_content.yml +9 -9
  168. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/posted_content_copernicus.yml +9 -9
  169. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/report_osti.yml +11 -11
  170. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/vor_with_url.yml +9 -9
  171. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/yet_another_book.yml +9 -9
  172. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_metadata/yet_another_book_chapter.yml +9 -9
  173. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_json_raw/journal_article.yml +51 -0
  174. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +9 -9
  175. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +9 -9
  176. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +9 -9
  177. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/JaLC.yml +9 -9
  178. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/KISTI.yml +9 -9
  179. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/OP.yml +9 -9
  180. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/affiliation_is_space.yml +9 -9
  181. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/another_book.yml +9 -9
  182. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/another_book_chapter.yml +9 -9
  183. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/article_id_as_page_number.yml +9 -9
  184. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/author_literal.yml +10 -10
  185. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book.yml +9 -9
  186. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_chapter.yml +10 -10
  187. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_chapter_with_RDF_for_container.yml +9 -9
  188. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_oup.yml +9 -9
  189. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/component.yml +9 -9
  190. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dataset.yml +9 -9
  191. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dataset_usda.yml +9 -9
  192. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/date_in_future.yml +9 -9
  193. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dissertation.yml +9 -9
  194. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/empty_given_name.yml +9 -9
  195. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/invalid_date.yml +9 -9
  196. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article.yml +9 -9
  197. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +9 -9
  198. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with.yml +9 -9
  199. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +9 -9
  200. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with_funding.yml +9 -9
  201. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_issue.yml +9 -9
  202. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/mEDRA.yml +9 -9
  203. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/markup.yml +9 -9
  204. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/missing_creator.yml +9 -9
  205. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_issn.yml +9 -9
  206. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_titles.yml +9 -9
  207. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_titles_with_missing.yml +9 -9
  208. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/not_found_error.yml +9 -9
  209. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/peer_review.yml +9 -9
  210. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/posted_content.yml +9 -9
  211. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/posted_content_copernicus.yml +9 -9
  212. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/report_osti.yml +10 -10
  213. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/vor_with_url.yml +9 -9
  214. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/yet_another_book.yml +9 -9
  215. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +11 -11
  216. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_json_metadata/metadata_from_api.yml +10 -10
  217. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/BlogPosting.yml +10 -10
  218. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/DOI_in_staging_system.yml +10 -10
  219. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/DOI_in_staging_system_schema_3.yml +10 -10
  220. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/DOI_in_with_related_id_system.yml +10 -10
  221. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/DOI_not_found.yml +9 -9
  222. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Dataset.yml +10 -10
  223. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Funding.yml +10 -10
  224. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Funding_empty_awardTitle.yml +10 -10
  225. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Funding_schema_version_4.yml +10 -10
  226. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Referee_report_in_staging_system.yml +10 -10
  227. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/Schema_org_type.yml +10 -10
  228. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/author_only_full_name.yml +10 -10
  229. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/author_with_scheme.yml +10 -10
  230. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/author_with_wrong_orcid_scheme.yml +10 -10
  231. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/cc-by_3_0_us.yml +10 -10
  232. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/content_url.yml +10 -10
  233. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/date.yml +10 -10
  234. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/dissertation.yml +10 -10
  235. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/doi_with_sign.yml +10 -10
  236. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/empty_subject.yml +10 -10
  237. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/even_more_subject_scheme_FOR.yml +10 -10
  238. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/funding_references.yml +10 -10
  239. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/funding_schema_version_3.yml +10 -10
  240. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/is_identical_to.yml +10 -10
  241. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/keywords_with_attributes.yml +10 -10
  242. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/leading_and_trailing_whitespace.yml +10 -10
  243. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/more_subject_scheme_FOR.yml +10 -10
  244. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorsName.yml +10 -10
  245. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/multiple_licenses.yml +10 -10
  246. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/series-information.yml +10 -10
  247. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/subject_scheme.yml +10 -10
  248. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/subject_scheme_FOR.yml +10 -10
  249. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date/publication_date.yml +6 -6
  250. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/date.yml +5 -5
  251. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/year-month.yml +6 -6
  252. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/year.yml +5 -5
  253. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/date.yml +5 -5
  254. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/year-month.yml +5 -5
  255. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/year.yml +6 -6
  256. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/date.yml +5 -5
  257. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/year-month.yml +5 -5
  258. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/year.yml +5 -5
  259. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/future.yml +6 -6
  260. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/invalid.yml +5 -5
  261. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/nil.yml +6 -6
  262. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/past.yml +5 -5
  263. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/present.yml +5 -5
  264. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_familyName.yml +6 -6
  265. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_Thai.yml +6 -6
  266. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_display-order.yml +6 -6
  267. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +6 -6
  268. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_sort-order.yml +6 -6
  269. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/hyper-authorship.yml +6 -6
  270. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/is_organization.yml +6 -6
  271. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/multiple_author_names_in_one_field.yml +6 -6
  272. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/multiple_name_identifier.yml +6 -6
  273. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_affiliation.yml +6 -6
  274. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_affiliation_crossref.yml +9 -9
  275. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_role.yml +6 -6
  276. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/only_familyName_and_givenName.yml +2 -2
  277. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/BlogPosting.yml +16 -16
  278. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +16 -16
  279. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/get_schema_org_metadata_front_matter/BlogPosting.yml +16 -16
  280. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/harvard_dataverse.yml +6 -6
  281. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/pangaea.yml +2 -2
  282. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/zenodo.yml +9 -9
  283. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/only_title.yml +6 -6
  284. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_and_pages.yml +5 -5
  285. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_volume_and_pages.yml +5 -5
  286. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_volume_issue_and_pages.yml +6 -6
  287. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_as_cff_url.yml +6 -6
  288. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_as_codemeta_url.yml +6 -6
  289. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url.yml +6 -6
  290. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url_cff_file.yml +5 -5
  291. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url_file.yml +5 -5
  292. data/spec/fixtures/vcr_cassettes/Briard_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +4 -4
  293. data/spec/fixtures/vcr_cassettes/Briard_Metadata/handle_input/unknown_DOI_prefix.yml +4 -4
  294. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_contributors/none.yml +6 -6
  295. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_creators/insert.yml +6 -6
  296. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_dates/insert.yml +6 -6
  297. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_descriptions/insert.yml +6 -6
  298. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_identifier/doi.yml +6 -6
  299. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_language/insert.yml +6 -6
  300. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_person/creator_only_name.yml +6 -6
  301. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_publication_year/insert.yml +6 -6
  302. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_publisher/insert.yml +6 -6
  303. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_related_identifiers/insert.yml +6 -6
  304. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_related_identifiers/related_identifier.yml +6 -6
  305. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_resource_type/insert.yml +6 -6
  306. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_rights_list/insert.yml +6 -6
  307. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_sizes/insert.yml +6 -6
  308. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_subjects/insert.yml +6 -6
  309. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_titles/insert.yml +6 -6
  310. data/spec/fixtures/vcr_cassettes/Briard_Metadata/insert_version/insert.yml +6 -6
  311. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_comma.yml +6 -6
  312. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_family_name.yml +6 -6
  313. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_id.yml +5 -5
  314. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_known_given_name.yml +5 -5
  315. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_no_info.yml +5 -5
  316. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_orcid_id.yml +5 -5
  317. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_type_organization.yml +5 -5
  318. data/spec/fixtures/vcr_cassettes/Briard_Metadata/json_schema_errors/doi_not_found.yml +105 -0
  319. data/spec/fixtures/vcr_cassettes/Briard_Metadata/{doi_from_url/crossref_api_url.yml → json_schema_errors/is_valid.yml} +5 -5
  320. data/spec/fixtures/vcr_cassettes/Briard_Metadata/{is_personal_name_/has_family_name_crossref.yml → json_schema_valid_/is_valid.yml} +5 -5
  321. data/spec/fixtures/vcr_cassettes/Briard_Metadata/jsonlint/missing_comma.yml +10 -10
  322. data/spec/fixtures/vcr_cassettes/Briard_Metadata/jsonlint/nil.yml +10 -10
  323. data/spec/fixtures/vcr_cassettes/Briard_Metadata/jsonlint/overlapping_keys.yml +10 -10
  324. data/spec/fixtures/vcr_cassettes/Briard_Metadata/jsonlint/valid.yml +10 -10
  325. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/not_found.yml +5 -5
  326. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/with_trailing_slash.yml +5 -5
  327. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +6 -6
  328. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/SICI_doi.yml +5 -5
  329. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi.yml +6 -6
  330. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_force_datacite_sandbox.yml +5 -5
  331. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_from_datacite_sandbox.yml +6 -6
  332. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_from_url_without_doi_proxy.yml +5 -5
  333. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_prefix_too_long.yml +5 -5
  334. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_prefix_with_string.yml +5 -5
  335. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/doi_with_protocol.yml +5 -5
  336. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/dx_doi_org_url.yml +5 -5
  337. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/https_url.yml +6 -6
  338. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/not_valid_doi_prefix.yml +6 -6
  339. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_doi/url_with_one_slash.yml +6 -6
  340. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/doi.yml +6 -6
  341. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/doi_as_url.yml +6 -6
  342. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/filename.yml +65 -0
  343. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/ftp.yml +5 -5
  344. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/invalid_url.yml +5 -5
  345. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/sandbox_via_options.yml +5 -5
  346. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/sandbox_via_url.yml +6 -6
  347. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/string.yml +5 -5
  348. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/url.yml +5 -5
  349. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/url_with_utf-8.yml +5 -5
  350. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_ids/doi.yml +6 -6
  351. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_ids/url.yml +5 -5
  352. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_array.yml +5 -5
  353. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_empty_array.yml +5 -5
  354. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_hash.yml +5 -5
  355. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_string.yml +5 -5
  356. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/uri.yml +6 -6
  357. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/with_trailing_slash.yml +5 -5
  358. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +6 -6
  359. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/array.yml +5 -5
  360. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/array_of_strings.yml +6 -6
  361. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/first.yml +6 -6
  362. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/hash.yml +5 -5
  363. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/nil.yml +5 -5
  364. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/string.yml +5 -5
  365. data/spec/fixtures/vcr_cassettes/Briard_Metadata/random_doi/decode_anothe_doi.yml +6 -6
  366. data/spec/fixtures/vcr_cassettes/Briard_Metadata/random_doi/decode_doi.yml +5 -5
  367. data/spec/fixtures/vcr_cassettes/Briard_Metadata/random_doi/encode_doi.yml +5 -5
  368. data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/onlies_keep_specific_tags.yml +5 -5
  369. data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/removes_a_tags.yml +5 -5
  370. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_id.yml +6 -6
  371. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_not_found.yml +5 -5
  372. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_url.yml +6 -6
  373. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/name_to_spdx_exists.yml +6 -6
  374. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/name_to_spdx_id.yml +6 -6
  375. data/spec/fixtures/vcr_cassettes/Briard_Metadata/to_schema_org/with_id.yml +6 -6
  376. data/spec/fixtures/vcr_cassettes/Briard_Metadata/to_schema_org_identifiers/with_identifiers.yml +6 -6
  377. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_doi/doi.yml +6 -6
  378. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_10.yml +6 -6
  379. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_11.yml +5 -5
  380. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_12.yml +6 -6
  381. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_13.yml +5 -5
  382. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_14.yml +5 -5
  383. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_4.yml +5 -5
  384. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_5.yml +5 -5
  385. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_6.yml +5 -5
  386. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_7.yml +6 -6
  387. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_8.yml +5 -5
  388. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/1_7_9.yml +5 -5
  389. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/funder_doi.yml +5 -5
  390. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/funder_doi_without_prefix.yml +5 -5
  391. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_funder_doi/non-funder_doi.yml +5 -5
  392. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid.yml +5 -5
  393. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_https.yml +5 -5
  394. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_id.yml +6 -6
  395. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_sandbox.yml +5 -5
  396. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_sandbox_https.yml +6 -6
  397. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_with_spaces.yml +5 -5
  398. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_wrong_id.yml +6 -6
  399. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_www.yml +5 -5
  400. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +5 -5
  401. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +5 -5
  402. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +6 -6
  403. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +5 -5
  404. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_prefix/doi.yml +5 -5
  405. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_prefix/doi_as_url.yml +5 -5
  406. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_prefix/doi_with_protocol.yml +6 -6
  407. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_prefix/only_prefix.yml +5 -5
  408. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/DOI.yml +5 -5
  409. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/ISSN.yml +5 -5
  410. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/URL.yml +5 -5
  411. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/string.yml +5 -5
  412. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/BlogPosting.yml +6 -6
  413. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/Dataset.yml +6 -6
  414. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +5 -5
  415. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/climate_data.yml +6 -6
  416. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/from_schema_org.yml +16 -16
  417. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +6 -6
  418. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/maremma.yml +8 -8
  419. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/text.yml +6 -6
  420. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_data_citation.yml +5 -5
  421. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_pages.yml +5 -5
  422. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/Collection_of_Jupyter_notebooks.yml +6 -6
  423. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/SoftwareSourceCode_Zenodo.yml +6 -6
  424. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/SoftwareSourceCode_also_Zenodo.yml +6 -6
  425. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/ruby-cff.yml +10 -10
  426. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Dataset.yml +6 -6
  427. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article.yml +5 -5
  428. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +5 -5
  429. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Missing_author.yml +5 -5
  430. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/interactive_resource_without_dates.yml +6 -6
  431. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/software_w/version.yml +6 -6
  432. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/Another_dataset.yml +6 -6
  433. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/BlogPosting.yml +6 -6
  434. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/BlogPosting_schema_org.yml +16 -16
  435. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/Dataset.yml +6 -6
  436. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/container_title.yml +6 -6
  437. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/interactive_resource_without_dates.yml +6 -6
  438. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/journal_article.yml +5 -5
  439. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/keywords_subject_scheme.yml +6 -6
  440. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/maremma.yml +8 -8
  441. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/missing_creator.yml +5 -5
  442. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/multiple_abstracts.yml +6 -6
  443. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/organization_author.yml +7 -7
  444. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/software.yml +6 -6
  445. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/software_w/version.yml +6 -6
  446. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/with_only_first_page.yml +5 -5
  447. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citeproc/with_pages.yml +5 -5
  448. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +6 -6
  449. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +6 -6
  450. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/datacite_database_attributes.yml +6 -6
  451. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/maremma.yml +10 -10
  452. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/with_ORCID_ID.yml +7 -7
  453. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crosscite/with_data_citation.yml +5 -5
  454. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/another_schema_org_from_front-matter.yml +14 -14
  455. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/journal_article_from_datacite.yml +6 -6
  456. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/posted_content.yml +9 -9
  457. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_another_science_blog.yml +10 -10
  458. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_front_matter.yml +16 -16
  459. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/climate_data.yml +6 -6
  460. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/maremma.yml +8 -8
  461. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/text.yml +6 -6
  462. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/with_data_citation.yml +5 -5
  463. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/with_pages.yml +7 -7
  464. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/from_schema_org.yml +16 -16
  465. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/maremma.yml +8 -8
  466. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_ORCID_ID.yml +7 -7
  467. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_data_citation.yml +5 -5
  468. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/DOI_not_found.yml +5 -5
  469. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/Dataset_in_schema_4_0.yml +6 -6
  470. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/Text_pass-thru.yml +6 -6
  471. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/Text_pass-thru_with_doi_in_options.yml +6 -6
  472. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/maremma.yml +8 -8
  473. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_ORCID_ID.yml +7 -7
  474. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_data_citation.yml +5 -5
  475. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_editor.yml +5 -5
  476. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_xml/with_version.yml +6 -6
  477. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +6 -6
  478. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +6 -6
  479. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/book_chapter.yml +5 -5
  480. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/from_schema_org.yml +16 -16
  481. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/interactive_resource_without_dates.yml +6 -6
  482. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/maremma.yml +8 -8
  483. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +5 -5
  484. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +5 -5
  485. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_editor.yml +5 -5
  486. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/BlogPosting.yml +6 -6
  487. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/BlogPosting_schema_org.yml +16 -16
  488. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/journal_article.yml +5 -5
  489. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/maremma.yml +8 -8
  490. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/with_pages.yml +7 -7
  491. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/BlogPosting.yml +6 -6
  492. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +16 -16
  493. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/Dataset.yml +6 -6
  494. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/alternate_name.yml +6 -6
  495. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/journal_article.yml +5 -5
  496. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +6 -6
  497. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/maremma.yml +10 -10
  498. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/with_pages.yml +5 -5
  499. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Another_Schema_org_JSON.yml +6 -6
  500. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Funding.yml +10 -10
  501. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +10 -10
  502. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +6 -6
  503. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +10 -10
  504. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +10 -10
  505. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +6 -6
  506. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/data_catalog.yml +6 -6
  507. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/geo_location_box.yml +6 -6
  508. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/interactive_resource_without_dates.yml +6 -6
  509. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/journal_article.yml +5 -5
  510. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +10 -10
  511. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/series_information.yml +6 -6
  512. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/subject_scheme.yml +6 -6
  513. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +6 -6
  514. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/BlogPosting.yml +6 -6
  515. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/BlogPosting_schema_org.yml +16 -16
  516. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/Dataset.yml +6 -6
  517. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/journal_article.yml +5 -5
  518. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/with_pages.yml +7 -7
  519. data/spec/metadata_spec.rb +27 -0
  520. data/spec/readers/crossref_json_reader_spec.rb +2 -4
  521. data/spec/readers/crossref_reader_spec.rb +2 -2
  522. data/spec/readers/datacite_json_reader_spec.rb +2 -2
  523. data/spec/readers/datacite_reader_spec.rb +36 -36
  524. data/spec/readers/npm_reader_spec.rb +3 -3
  525. data/spec/schema_utils_spec.rb +24 -0
  526. data/spec/utils_spec.rb +6 -0
  527. data/spec/writers/datacite_writer_spec.rb +6 -6
  528. metadata +39 -5
  529. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_affiliation_and_country.yml +0 -66
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: debbaf7e340fa77df735b4443f7bf7120842908f9223250ce905e398c4754df5
4
- data.tar.gz: fb782cc48aeaa3435ef4b9eb4004de44786ea3dbb257c653ce62213e55ab6612
3
+ metadata.gz: 630bdfe771252795f1d396dc2eb3da9fce76c3bf8c0281347be8c8e97e5ae1f4
4
+ data.tar.gz: e80734a4a4163ce8a6ff581aa9d49034ddff4b961953ab8740566d09e2886e73
5
5
  SHA512:
6
- metadata.gz: dd60f155303d1e52ec8acf01ae8b648cc4625a10e52473f613a1aa34ed0b7f8b4f7af42dff2938f7b35bfdfd8c62bc0ae1e58e17a799d816470c0743df945118
7
- data.tar.gz: 056d24ffef47ed0a3f04a5222464a507b18a00b1f573e437ac10c8de2dd89b581da7ae507528b23039f5c7a7ead79c042b566b9d37bf259482ac59f104cdcec3
6
+ metadata.gz: 5dfce207ab441f813d69fb79fb0d354823234a8fced4566703de4cdb67f4522c99b4836e1e7d5abeedb7863ad82f082019d2a2289b019ddf56048b8afe959ecf
7
+ data.tar.gz: 07dfbff46d904dc090d640d8e8d26591d3d88ec6d841e6f781c2804946e679fc03c7d0407943e516af158d34a6e5ec0379d2f5d8f2799efad8c57d7b77ebbba9
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## [v2.8.2](https://github.com/front-matter/briard/tree/v2.8.2) (2022-11-23)
4
+
5
+ [Full Changelog](https://github.com/front-matter/briard/compare/v2.8.0...v2.8.2)
6
+
3
7
  ## [v2.8.0](https://github.com/front-matter/briard/tree/v2.8.0) (2022-11-22)
4
8
 
5
9
  [Full Changelog](https://github.com/front-matter/briard/compare/v2.6.5...v2.8.0)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- briard (2.8.1)
4
+ briard (2.9.0)
5
5
  activesupport (>= 4.2.5, < 8.0)
6
6
  base32-url (>= 0.5.0, < 1)
7
7
  benchmark_methods (~> 0.7)
@@ -18,6 +18,7 @@ PATH
18
18
  gender_detector (~> 0.1.2)
19
19
  iso8601 (~> 0.9.1)
20
20
  json-ld-preloaded (~> 3.1, >= 3.1.3)
21
+ json_schemer (~> 0.2.23)
21
22
  jsonlint (~> 0.3.0)
22
23
  loofah (~> 2.19)
23
24
  maremma (>= 4.9.7, < 5)
@@ -75,6 +76,8 @@ GEM
75
76
  scanf (~> 1.0)
76
77
  sxp (~> 1.2)
77
78
  unicode-types (~> 1.7)
79
+ ecma-re-validator (0.4.0)
80
+ regexp_parser (~> 2.2)
78
81
  edtf (3.1.0)
79
82
  activesupport (>= 3.0, < 8.0)
80
83
  excon (0.71.1)
@@ -99,6 +102,7 @@ GEM
99
102
  haml (5.2.2)
100
103
  temple (>= 0.8.0)
101
104
  tilt
105
+ hana (1.3.7)
102
106
  hashdiff (1.0.1)
103
107
  htmlentities (4.3.4)
104
108
  i18n (1.12.0)
@@ -116,6 +120,11 @@ GEM
116
120
  json-ld-preloaded (3.2.2)
117
121
  json-ld (~> 3.2)
118
122
  rdf (~> 3.2)
123
+ json_schemer (0.2.23)
124
+ ecma-re-validator (~> 0.3)
125
+ hana (~> 1.3)
126
+ regexp_parser (~> 2.0)
127
+ uri_template (~> 0.7)
119
128
  jsonlint (0.3.0)
120
129
  oj (~> 3)
121
130
  optimist (~> 3)
@@ -245,6 +254,7 @@ GEM
245
254
  unicode-display_width (2.3.0)
246
255
  unicode-types (1.8.0)
247
256
  unicode_utils (1.4.0)
257
+ uri_template (0.7.0)
248
258
  vcr (3.0.3)
249
259
  webmock (3.18.1)
250
260
  addressable (>= 2.8.0)
data/briard.gemspec CHANGED
@@ -35,6 +35,7 @@ Gem::Specification.new do |s|
35
35
  s.add_dependency 'iso8601', '~> 0.9.1'
36
36
  s.add_dependency 'json-ld-preloaded', '~> 3.1', '>= 3.1.3'
37
37
  s.add_dependency 'jsonlint', '~> 0.3.0'
38
+ s.add_dependency 'json_schemer', '~> 0.2.23'
38
39
  s.add_dependency 'loofah', '~> 2.19'
39
40
  s.add_dependency 'maremma', '>= 4.9.7', '< 5'
40
41
  s.add_dependency 'namae', '~> 1.0'
@@ -18,7 +18,26 @@ module Briard
18
18
  id = normalize_id(options[:input], options)
19
19
  ra = nil
20
20
 
21
- if options[:input].present? && File.exist?(options[:input])
21
+ if id.present?
22
+ @from = options[:from] || find_from_format(id: id)
23
+
24
+ # mEDRA, KISTI, JaLC and OP DOIs are found in the Crossref index
25
+ case @from
26
+ when 'medra'
27
+ ra = 'mEDRA'
28
+ when 'kisti'
29
+ ra = 'KISTI'
30
+ when 'jalc'
31
+ ra = 'JaLC'
32
+ when 'op'
33
+ ra = 'OP'
34
+ end
35
+
36
+ # generate name for method to call dynamically
37
+ hsh = @from.present? ? send("get_#{@from}", id: id, **options) : {}
38
+ string = hsh.fetch('string', nil)
39
+
40
+ elsif options[:input].present? && File.exist?(options[:input])
22
41
  filename = File.basename(options[:input])
23
42
  ext = File.extname(options[:input])
24
43
  if %w[.bib .ris .xml .json .cff].include?(ext)
@@ -35,29 +54,11 @@ module Briard
35
54
  'content_url' => options[:content_url]
36
55
  }
37
56
  string = File.read(options[:input])
38
- @from = options[:from] || find_from_format(string: string, filename: filename, ext: ext)
57
+ @from = options[:from] || find_from_format(string: string, ext: ext)
39
58
  else
40
59
  warn "File type #{ext} not supported"
41
60
  exit 1
42
61
  end
43
- elsif id.present?
44
- @from = options[:from] || find_from_format(id: id)
45
-
46
- # mEDRA, KISTI, JaLC and OP DOIs are found in the Crossref index
47
- case @from
48
- when 'medra'
49
- ra = 'mEDRA'
50
- when 'kisti'
51
- ra = 'KISTI'
52
- when 'jalc'
53
- ra = 'JaLC'
54
- when 'op'
55
- ra = 'OP'
56
- end
57
-
58
- # generate name for method to call dynamically
59
- hsh = @from.present? ? send("get_#{@from}", id: id, **options) : {}
60
- string = hsh.fetch('string', nil)
61
62
  else
62
63
  hsh = {
63
64
  'url' => options[:url],
@@ -162,9 +163,11 @@ module Briard
162
163
  exists? && errors.nil?
163
164
  end
164
165
 
165
- # validate against DataCite schema, unless already errors in the reader
166
+ # Catch errors in the reader
167
+ # Then validate against JSON schema for internal metadata format
168
+ # Then validate against DataCite schema, unless already errors in the reader
166
169
  def errors
167
- meta.fetch('errors', nil) || datacite_errors(xml: datacite, schema_version: schema_version)
170
+ meta.fetch('errors', nil) || json_schema_errors || datacite_errors(xml: datacite, schema_version: schema_version)
168
171
  end
169
172
 
170
173
  def descriptions
@@ -4,6 +4,7 @@ require_relative 'doi_utils'
4
4
  require_relative 'author_utils'
5
5
  require_relative 'crossref_utils'
6
6
  require_relative 'datacite_utils'
7
+ require_relative 'schema_utils'
7
8
  require_relative 'utils'
8
9
 
9
10
  require_relative 'readers/bibtex_reader'
@@ -42,6 +43,7 @@ module Briard
42
43
  include Briard::AuthorUtils
43
44
  include Briard::CrossrefUtils
44
45
  include Briard::DataciteUtils
46
+ include Briard::SchemaUtils
45
47
  include Briard::Utils
46
48
 
47
49
  include Briard::Readers::BibtexReader
@@ -7,8 +7,10 @@ module Briard
7
7
  return { 'string' => nil, 'state' => 'not_found' } unless id.present?
8
8
 
9
9
  url = crossref_api_url(id, options)
10
- response = Maremma.get(url, raw: true)
11
- string = response.body.fetch('data', nil)
10
+ response = Maremma.get(url)
11
+ return { 'string' => nil, 'state' => 'not_found' } if response.body.dig('data', 'status') != 'ok'
12
+
13
+ string = response.body.dig('data', 'message').to_json
12
14
 
13
15
  { 'string' => string }
14
16
  end
@@ -21,9 +23,8 @@ module Briard
21
23
 
22
24
  read_options = ActiveSupport::HashWithIndifferentAccess.new(options.except(:doi, :id, :url,
23
25
  :sandbox, :validate, :ra))
24
-
25
- meta = string.present? ? Maremma.from_json(string).fetch('message', {}) : {}
26
-
26
+ meta = string.present? ? Maremma.from_json(string) : {}
27
+
27
28
  resource_type = meta.fetch('type', nil)
28
29
  resource_type = resource_type.present? ? resource_type.underscore.camelcase : nil
29
30
 
@@ -310,7 +310,7 @@ module Briard
310
310
  'container' => set_container(meta),
311
311
  'publisher' => parse_attributes(meta.fetch('publisher', nil),
312
312
  first: true).to_s.strip.presence,
313
- 'agency' => 'datacite',
313
+ 'agency' => 'DataCite',
314
314
  'funding_references' => funding_references,
315
315
  'dates' => dates,
316
316
  'publication_year' => parse_attributes(meta.fetch('publicationYear', nil),
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+ require 'json_schemer'
3
+ require 'pathname'
4
+
5
+ module Briard
6
+ module SchemaUtils
7
+ JSON_SCHEMA = schema = File.read(File.expand_path('../../resources/json-schema/briard_schema.json', __dir__))
8
+
9
+ def json_schema_errors
10
+ schemer = JSONSchemer.schema(JSON_SCHEMA)
11
+ errors = schemer.validate(self.meta).to_a
12
+ errors.map {|err| JSONSchemer::Errors.pretty err }.presence
13
+ end
14
+ end
15
+ end
data/lib/briard/utils.rb CHANGED
@@ -490,10 +490,12 @@ module Briard
490
490
  def find_from_format(id: nil, string: nil, ext: nil, filename: nil)
491
491
  if id.present?
492
492
  find_from_format_by_id(id)
493
- elsif ext.present?
494
- find_from_format_by_filename(filename) || find_from_format_by_ext(string, ext: ext)
493
+ elsif string.present? && ext.present?
494
+ find_from_format_by_ext(string, ext: ext)
495
495
  elsif string.present?
496
496
  find_from_format_by_string(string)
497
+ elsif filename.present?
498
+ find_from_format_by_filename(filename)
497
499
  else
498
500
  'datacite'
499
501
  end
@@ -574,6 +576,8 @@ module Briard
574
576
  'codemeta'
575
577
  elsif Maremma.from_json(string).to_h.dig('schema-version').to_s.start_with?('http://datacite.org/schema/kernel')
576
578
  'datacite_json'
579
+ elsif Maremma.from_json(string).to_h.dig('source') == ('Crossref')
580
+ 'crossref_json'
577
581
  elsif Maremma.from_json(string).to_h.dig('types').present? && Maremma.from_json(string).to_h.dig('publication_year').present?
578
582
  'crosscite'
579
583
  elsif Maremma.from_json(string).to_h.dig('issued', 'date-parts').present?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Briard
4
- VERSION = '2.8.1'
4
+ VERSION = '2.9.0'
5
5
  end
@@ -0,0 +1,367 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Briard Schema",
4
+ "definitions": {
5
+ "affiliations": {
6
+ "type": "array",
7
+ "items": {
8
+ "type": "object",
9
+ "properties": {
10
+ "affiliation": {
11
+ "type": "string"
12
+ }
13
+ },
14
+ "required": ["affiliation"]
15
+ },
16
+ "uniqueItems": true
17
+ },
18
+ "contributorType": {
19
+ "type": "string",
20
+ "enum": [
21
+ "ContactPerson",
22
+ "DataCollector",
23
+ "DataCurator",
24
+ "DataManager",
25
+ "Distributor",
26
+ "Editor",
27
+ "HostingInstitution",
28
+ "Producer",
29
+ "ProjectLeader",
30
+ "ProjectManager",
31
+ "ProjectMember",
32
+ "RegistrationAgency",
33
+ "RegistrationAuthority",
34
+ "RelatedPerson",
35
+ "Researcher",
36
+ "ResearchGroup",
37
+ "RightsHolder",
38
+ "Sponsor",
39
+ "Supervisor",
40
+ "WorkPackageLeader",
41
+ "Other"
42
+ ]
43
+ },
44
+ "descriptionType": {
45
+ "type": "string",
46
+ "enum": [
47
+ "Abstract",
48
+ "Methods",
49
+ "SeriesInformation",
50
+ "TableOfContents",
51
+ "TechnicalInfo",
52
+ "Other"
53
+ ]
54
+ },
55
+ "funderIdentifierType": {
56
+ "type": "string",
57
+ "enum": ["ISNI", "GRID", "Crossref Funder ID", "Other"]
58
+ },
59
+ "nameIdentifiers": {
60
+ "type": "array",
61
+ "items": {
62
+ "type": "object",
63
+ "properties": {
64
+ "nameIdentifier": {
65
+ "type": "string"
66
+ },
67
+ "nameIdentifierScheme": {
68
+ "type": "string"
69
+ },
70
+ "schemeURI": {
71
+ "type": "string",
72
+ "format": "uri"
73
+ }
74
+ },
75
+ "required": ["nameIdentifier", "nameIdentifierScheme"]
76
+ },
77
+ "uniqueItems": true
78
+ },
79
+ "nameType": {
80
+ "type": "string",
81
+ "enum": ["Organizational", "Personal"]
82
+ },
83
+ "noEmptyString": {
84
+ "type": "string",
85
+ "minLength": 1
86
+ },
87
+ "resourceTypeGeneral": {
88
+ "type": "string",
89
+ "enum": [
90
+ "Audiovisual",
91
+ "Collection",
92
+ "DataPaper",
93
+ "Dataset",
94
+ "Event",
95
+ "Image",
96
+ "InteractiveResource",
97
+ "Model",
98
+ "PhysicalObject",
99
+ "Service",
100
+ "Software",
101
+ "Sound",
102
+ "Text",
103
+ "Workflow",
104
+ "Other"
105
+ ]
106
+ },
107
+ "titleType": {
108
+ "type": "string",
109
+ "enum": ["AlternativeTitle", "Subtitle", "TranslatedTitle", "Other"]
110
+ }
111
+ },
112
+ "prefixItems": {
113
+ "id": {
114
+ "type": "string",
115
+ "format": "uri"
116
+ },
117
+ "types": {
118
+ "type": "object",
119
+ "properties": {
120
+ "resourceType": {
121
+ "type": "string"
122
+ },
123
+ "resourceTypeGeneral": {
124
+ "$ref": "#/definitions/resourceTypeGeneral"
125
+ },
126
+ "schemaOrg": {
127
+ "type": "string"
128
+ },
129
+ "citeproc": {
130
+ "type": "string"
131
+ },
132
+ "bibtex": {
133
+ "type": "string"
134
+ },
135
+ "ris": {
136
+ "type": "string"
137
+ }
138
+ },
139
+ "required": [
140
+ "resourceType",
141
+ "resourceTypeGeneral",
142
+ "schemaOrg",
143
+ "citeproc",
144
+ "bibtex",
145
+ "ris"
146
+ ]
147
+ },
148
+ "doi": {
149
+ "type": "string",
150
+ "format": "uri"
151
+ },
152
+ "url": {
153
+ "type": "string",
154
+ "format": "uri"
155
+ },
156
+ "titles": {
157
+ "type": "array",
158
+ "items": {
159
+ "type": "object",
160
+ "properties": {
161
+ "title": {
162
+ "type": "string"
163
+ },
164
+ "titleType": {
165
+ "$ref": "#/definitions/titleType"
166
+ },
167
+ "lang": {
168
+ "type": "string"
169
+ }
170
+ },
171
+ "required": ["title"]
172
+ },
173
+ "minItems": 1,
174
+ "uniqueItems": true
175
+ },
176
+ "creators": {
177
+ "type": "array",
178
+ "items": {
179
+ "type": "object",
180
+ "properties": {
181
+ "name": {
182
+ "type": "string"
183
+ },
184
+ "nameType": {
185
+ "$ref": "#/definitions/nameType"
186
+ },
187
+ "givenName": {
188
+ "type": "string"
189
+ },
190
+ "familyName": {
191
+ "type": "string"
192
+ },
193
+ "nameIdentifiers": {
194
+ "$ref": "#/definitions/nameIdentifiers"
195
+ },
196
+ "affiliations": {
197
+ "$ref": "#/definitions/affiliations"
198
+ },
199
+ "lang": {
200
+ "type": "string"
201
+ }
202
+ },
203
+ "required": ["name"]
204
+ },
205
+ "minItems": 1,
206
+ "uniqueItems": true
207
+ },
208
+ "contributors": {
209
+ "type": "array",
210
+ "items": {
211
+ "type": "object",
212
+ "properties": {
213
+ "contributorType": {
214
+ "$ref": "#/definitions/contributorType"
215
+ },
216
+ "name": {
217
+ "type": "string"
218
+ },
219
+ "nameType": {
220
+ "$ref": "#/definitions/nameType"
221
+ },
222
+ "givenName": {
223
+ "type": "string"
224
+ },
225
+ "familyName": {
226
+ "type": "string"
227
+ },
228
+ "nameIdentifiers": {
229
+ "$ref": "#/definitions/nameIdentifiers"
230
+ },
231
+ "affiliations": {
232
+ "$ref": "#/definitions/affiliations"
233
+ },
234
+ "lang": {
235
+ "type": "string"
236
+ }
237
+ },
238
+ "required": ["contributorType", "name"]
239
+ },
240
+ "uniqueItems": true
241
+ },
242
+ "funding_references": {
243
+ "type": "array",
244
+ "items": {
245
+ "type": "object",
246
+ "properties": {
247
+ "funderName": {
248
+ "type": "string"
249
+ },
250
+ "funderIdentifier": {
251
+ "type": "string"
252
+ },
253
+ "funderIdentifierType": {
254
+ "$ref": "#/definitions/funderIdentifierType"
255
+ },
256
+ "awardNumber": {
257
+ "type": "string"
258
+ },
259
+ "awardURI": {
260
+ "type": "string",
261
+ "format": "uri"
262
+ },
263
+ "awardTitle": {
264
+ "type": "string"
265
+ }
266
+ },
267
+ "required": ["funderName"]
268
+ },
269
+ "uniqueItems": true
270
+ },
271
+ "publisher": {
272
+ "$ref": "#/definitions/noEmptyString"
273
+ },
274
+ "publication_year": {
275
+ "$ref": "#/definitions/noEmptyString"
276
+ },
277
+ "language": {
278
+ "type": "string",
279
+ "$comment": "Primary language of the resource. Allowed values are taken from IETF BCP 47, ISO 639-1 language codes."
280
+ },
281
+ "sizes": {
282
+ "type": "array",
283
+ "items": {
284
+ "type": "string"
285
+ },
286
+ "uniqueItems": true
287
+ },
288
+ "formats": {
289
+ "type": "array",
290
+ "items": {
291
+ "type": "string"
292
+ },
293
+ "uniqueItems": true
294
+ },
295
+ "version_info": {
296
+ "type": "string"
297
+ },
298
+ "rights_list": {
299
+ "type": "array",
300
+ "items": {
301
+ "type": "object",
302
+ "properties": {
303
+ "rights": {
304
+ "type": "string"
305
+ },
306
+ "rightsURI": {
307
+ "type": "string",
308
+ "format": "uri"
309
+ },
310
+ "rightsIdentifier": {
311
+ "type": "string"
312
+ },
313
+ "rightsIdentifierScheme": {
314
+ "type": "string"
315
+ },
316
+ "schemeURI": {
317
+ "type": "string",
318
+ "format": "uri"
319
+ },
320
+ "lang": {
321
+ "type": "string"
322
+ }
323
+ }
324
+ },
325
+ "uniqueItems": true
326
+ },
327
+ "descriptions": {
328
+ "type": "array",
329
+ "items": {
330
+ "type": "object",
331
+ "properties": {
332
+ "description": {
333
+ "$ref": "#/definitions/noEmptyString"
334
+ },
335
+ "descriptionType": {
336
+ "$ref": "#/definitions/descriptionType"
337
+ },
338
+ "lang": {
339
+ "type": "string"
340
+ }
341
+ },
342
+ "required": ["description", "descriptionType"]
343
+ },
344
+ "uniqueItems": true
345
+ },
346
+ "agency": {
347
+ "type": "string",
348
+ "enum": [ "Crossref", "DataCite", "JaLC", "KISTI", "mEDRA", "OP"]
349
+ },
350
+ "schema_version": {
351
+ "type": "string",
352
+ "const": "http://datacite.org/schema/kernel-4"
353
+ },
354
+ "state": {
355
+ "type": "string",
356
+ "enum": [ "draft", "findable", "registered", "not_found"]
357
+ }
358
+ },
359
+ "required": [
360
+ "id",
361
+ "creators",
362
+ "titles",
363
+ "publisher",
364
+ "publication_year",
365
+ "types"
366
+ ]
367
+ }