bolognese 0.7.2 → 0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +4 -1
  3. data/README.md +25 -16
  4. data/bolognese.gemspec +2 -1
  5. data/codemeta.json +39 -0
  6. data/lib/bolognese.rb +4 -0
  7. data/lib/bolognese/array.rb +11 -0
  8. data/lib/bolognese/author_utils.rb +35 -21
  9. data/lib/bolognese/bibtex.rb +4 -4
  10. data/lib/bolognese/codemeta.rb +8 -13
  11. data/lib/bolognese/crossref.rb +22 -20
  12. data/lib/bolognese/datacite.rb +61 -61
  13. data/lib/bolognese/datacite_json.rb +208 -0
  14. data/lib/bolognese/datacite_utils.rb +17 -48
  15. data/lib/bolognese/metadata.rb +83 -22
  16. data/lib/bolognese/schema_org.rb +42 -16
  17. data/lib/bolognese/utils.rb +79 -13
  18. data/lib/bolognese/version.rb +1 -1
  19. data/lib/bolognese/whitelist_scrubber.rb +45 -0
  20. data/spec/array_spec.rb +20 -0
  21. data/spec/author_utils_spec.rb +93 -9
  22. data/spec/bibtex_spec.rb +4 -4
  23. data/spec/cli_spec.rb +5 -0
  24. data/spec/codemeta_spec.rb +41 -31
  25. data/spec/crossref_spec.rb +47 -72
  26. data/spec/datacite_json_spec.rb +65 -0
  27. data/spec/datacite_spec.rb +67 -83
  28. data/spec/datacite_utils_spec.rb +9 -14
  29. data/spec/fixtures/datacite.json +49 -0
  30. data/spec/fixtures/datacite_software.json +18 -0
  31. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_datacite_json.yml +214 -0
  32. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/author_from_schema_org/with_id.yml +930 -0
  33. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/author_to_schema_org/with_id.yml +930 -0
  34. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/authors_as_string/author.yml +137 -860
  35. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/authors_as_string/no_author.yml +137 -860
  36. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/authors_as_string/single_author.yml +137 -860
  37. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/authors_as_string/with_organization.yml +137 -860
  38. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/from_schema_org/with_id.yml +930 -0
  39. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_name_identifier/has_ORCID.yml +155 -0
  40. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_name_identifier/has_no_ORCID.yml +134 -0
  41. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_one_author/has_familyName.yml +155 -0
  42. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_one_author/has_name_in_display-order.yml +186 -0
  43. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_one_author/has_name_in_display-order_with_ORCID.yml +177 -0
  44. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_one_author/has_name_in_sort-order.yml +173 -0
  45. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_one_author/is_organization.yml +207 -0
  46. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/is_personal_name_/has_comma.yml +207 -0
  47. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/is_personal_name_/has_family_name.yml +207 -0
  48. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/is_personal_name_/has_id.yml +207 -0
  49. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/is_personal_name_/has_no_info.yml +207 -0
  50. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/is_personal_name_/has_type_organization.yml +207 -0
  51. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/is_personal_name_/has_type_person.yml +207 -0
  52. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/sanitize/should_only_keep_specific_tags.yml +930 -0
  53. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/sanitize/should_remove_a_tags.yml +930 -0
  54. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/to_schema_org/with_id.yml +930 -0
  55. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_related_identifiers/related_identifier.yml +173 -0
  56. data/spec/fixtures/vcr_cassettes/Bolognese_DataciteJson/get_metadata_as_bibtex/BlogPosting.yml +155 -0
  57. data/spec/schema_org_spec.rb +17 -14
  58. data/spec/utils_spec.rb +32 -2
  59. metadata +54 -4
@@ -0,0 +1,65 @@
1
+ require 'spec_helper'
2
+
3
+ describe Bolognese::DataciteJson, vcr: true do
4
+ let(:string) { IO.read(fixture_path + "datacite.json") }
5
+
6
+ subject { Bolognese::DataciteJson.new(string: string) }
7
+
8
+ context "get metadata as string" do
9
+ it "BlogPosting" do
10
+ expect(subject.id).to eq("https://doi.org/10.5438/4k3m-nyvg")
11
+ expect(subject.type).to eq("ScholarlyArticle")
12
+ expect(subject.additional_type).to eq("BlogPosting")
13
+ expect(subject.resource_type_general).to eq("Text")
14
+ expect(subject.author).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
15
+ expect(subject.title).to eq("Eating your own Dog Food")
16
+ expect(subject.alternate_name).to eq("type"=>"Local accession number", "name"=>"MS-49-3632-5083")
17
+ expect(subject.date_published).to eq("2016-12-20")
18
+ expect(subject.is_part_of).to eq("id"=>"https://doi.org/10.5438/0000-00ss", "relationType"=>"IsPartOf")
19
+ expect(subject.references).to eq([{"id"=>"https://doi.org/10.5438/0012", "relationType"=>"References"}, {"id"=>"https://doi.org/10.5438/55e5-t5c0", "relationType"=>"References"}])
20
+ expect(subject.provider).to eq("DataCite")
21
+ end
22
+ end
23
+
24
+ context "get metadata as codemeta" do
25
+ it "SoftwareSourceCode" do
26
+ string = IO.read(fixture_path + "datacite_software.json")
27
+ subject = Bolognese::DataciteJson.new(string: string)
28
+ json = JSON.parse(subject.codemeta)
29
+ expect(json["@context"]).to eq("https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld")
30
+ expect(json["@id"]).to eq("https://doi.org/10.5063/f1m61h5x")
31
+ expect(json["@type"]).to eq("SoftwareSourceCode")
32
+ expect(json["identifier"]).to eq("https://doi.org/10.5063/f1m61h5x")
33
+ expect(json["agents"]).to eq("type"=>"Person", "name"=>"Matthew B. Jones", "givenName"=>"Matthew B.", "familyName"=>"Jones")
34
+ expect(json["title"]).to eq("dataone: R interface to the DataONE network of data repositories")
35
+ expect(json["datePublished"]).to eq("2016")
36
+ expect(json["publisher"]).to eq("KNB Data Repository")
37
+ end
38
+ end
39
+
40
+ context "get metadata as bibtex" do
41
+ it "Dataset" do
42
+ bibtex = BibTeX.parse(subject.bibtex).to_a(quotes: '').first
43
+ expect(bibtex[:bibtex_type].to_s).to eq("article")
44
+ expect(bibtex[:bibtex_key]).to eq("https://doi.org/10.5438/4k3m-nyvg")
45
+ expect(bibtex[:doi]).to eq("10.5438/4K3M-NYVG")
46
+ expect(bibtex[:title]).to eq("Eating your own Dog Food")
47
+ expect(bibtex[:author]).to eq("Fenner, Martin")
48
+ expect(bibtex[:publisher]).to eq("DataCite")
49
+ expect(bibtex[:year]).to eq("2016")
50
+ end
51
+
52
+ it "BlogPosting" do
53
+ id = "https://doi.org/10.5438/4K3M-NYVG"
54
+ subject = Bolognese::Datacite.new(id: id)
55
+ bibtex = BibTeX.parse(subject.bibtex).to_a(quotes: '').first
56
+ expect(bibtex[:bibtex_type].to_s).to eq("article")
57
+ expect(bibtex[:bibtex_key]).to eq("https://doi.org/10.5438/4k3m-nyvg")
58
+ expect(bibtex[:doi]).to eq("10.5438/4K3M-NYVG")
59
+ expect(bibtex[:title]).to eq("Eating your own Dog Food")
60
+ expect(bibtex[:author]).to eq("Fenner, Martin")
61
+ expect(bibtex[:publisher]).to eq("DataCite")
62
+ expect(bibtex[:year]).to eq("2016")
63
+ end
64
+ end
65
+ end
@@ -12,23 +12,16 @@ describe Bolognese::Datacite, vcr: true do
12
12
  expect(subject.type).to eq("Dataset")
13
13
  expect(subject.additional_type).to eq("DataPackage")
14
14
  expect(subject.resource_type_general).to eq("Dataset")
15
- expect(subject.author).to eq([{"@type"=>"Person", "givenName"=>"Benjamin", "familyName"=>"Ollomo"},
16
- {"@type"=>"Person", "givenName"=>"Patrick", "familyName"=>"Durand"},
17
- {"@type"=>"Person", "givenName"=>"Franck", "familyName"=>"Prugnolle"},
18
- {"@type"=>"Person", "givenName"=>"Emmanuel J. P.", "familyName"=>"Douzery"},
19
- {"@type"=>"Person", "givenName"=>"Céline", "familyName"=>"Arnathau"},
20
- {"@type"=>"Person", "givenName"=>"Dieudonné", "familyName"=>"Nkoghe"},
21
- {"@type"=>"Person", "givenName"=>"Eric", "familyName"=>"Leroy"},
22
- {"@type"=>"Person", "givenName"=>"François", "familyName"=>"Renaud"}])
23
- expect(subject.name).to eq("Data from: A new malaria agent in African hominids.")
24
- expect(subject.alternate_name).to eq("Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.")
25
- expect(subject.license).to eq("http://creativecommons.org/publicdomain/zero/1.0/")
15
+ expect(subject.author.length).to eq(8)
16
+ expect(subject.author.first).to eq("type"=>"Person", "name"=>"Benjamin Ollomo", "givenName"=>"Benjamin", "familyName"=>"Ollomo")
17
+ expect(subject.title).to eq("Data from: A new malaria agent in African hominids.")
18
+ expect(subject.alternate_name).to eq("type"=>"citation", "name"=>"Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.")
19
+ expect(subject.license).to eq("url"=>"http://creativecommons.org/publicdomain/zero/1.0/")
26
20
  expect(subject.date_published).to eq("2011")
27
- expect(subject.has_part).to eq([{"@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5061/dryad.8515/1"},
28
- {"@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5061/dryad.8515/2"}])
29
- expect(subject.citation).to eq("@type"=>"CreativeWork", "@id"=>"https://doi.org/10.1371/journal.ppat.1000446")
30
- expect(subject.publisher).to eq("@type"=>"Organization", "name"=>"Dryad Digital Repository")
31
- expect(subject.provider).to eq("@type"=>"Organization", "name"=>"DataCite")
21
+ expect(subject.has_part).to eq([{"id"=>"https://doi.org/10.5061/dryad.8515/1", "relationType"=>"HasPart"}, {"id"=>"https://doi.org/10.5061/dryad.8515/2", "relationType"=>"HasPart"}])
22
+ expect(subject.references).to eq("id"=>"https://doi.org/10.1371/journal.ppat.1000446", "relationType"=>"IsReferencedBy")
23
+ expect(subject.publisher).to eq("Dryad Digital Repository")
24
+ expect(subject.provider).to eq("DataCite")
32
25
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
33
26
  end
34
27
 
@@ -40,17 +33,16 @@ describe Bolognese::Datacite, vcr: true do
40
33
  expect(subject.type).to eq("ScholarlyArticle")
41
34
  expect(subject.additional_type).to eq("BlogPosting")
42
35
  expect(subject.resource_type_general).to eq("Text")
43
- expect(subject.author).to eq("@type"=>"Person", "@id"=>"http://orcid.org/0000-0003-1419-2405", "givenName"=>"Martin", "familyName"=>"Fenner")
44
- expect(subject.name).to eq("Eating your own Dog Food")
45
- expect(subject.alternate_name).to eq("MS-49-3632-5083")
46
- expect(subject.description).to start_with("Eating your own dog food")
36
+ expect(subject.author).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
37
+ expect(subject.title).to eq("Eating your own Dog Food")
38
+ expect(subject.alternate_name).to eq("type"=>"Local accession number", "name"=>"MS-49-3632-5083")
39
+ expect(subject.description["text"]).to start_with("Eating your own dog food")
47
40
  expect(subject.date_published).to eq("2016-12-20")
48
41
  expect(subject.date_modified).to eq("2016-12-20")
49
- expect(subject.is_part_of).to eq("@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5438/0000-00ss")
50
- expect(subject.citation).to eq([{"@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5438/0012"},
51
- {"@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5438/55e5-t5c0"}])
52
- expect(subject.publisher).to eq("@type"=>"Organization", "name"=>"DataCite")
53
- expect(subject.provider).to eq("@type"=>"Organization", "name"=>"DataCite")
42
+ expect(subject.is_part_of).to eq("id"=>"https://doi.org/10.5438/0000-00ss", "relationType"=>"IsPartOf")
43
+ expect(subject.references).to eq([{"id"=>"https://doi.org/10.5438/0012", "relationType"=>"References"}, {"id"=>"https://doi.org/10.5438/55e5-t5c0", "relationType"=>"References"}])
44
+ expect(subject.publisher).to eq("DataCite")
45
+ expect(subject.provider).to eq("DataCite")
54
46
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
55
47
  end
56
48
 
@@ -62,12 +54,12 @@ describe Bolognese::Datacite, vcr: true do
62
54
  expect(subject.type).to eq("ScholarlyArticle")
63
55
  expect(subject.additional_type).to eq("ConferencePaper")
64
56
  expect(subject.resource_type_general).to eq("Text")
65
- expect(subject.author).to eq("@type"=>"Person", "givenName"=>"Nathaniel", "familyName"=>"Johnston")
66
- expect(subject.name).to eq("The Minimum Size of Qubit Unextendible Product Bases")
67
- expect(subject.description).to start_with("\n\tWe investigate the problem of constructing unextendible product bases in the qubit case")
57
+ expect(subject.author).to eq("type"=>"Person", "name"=>"Nathaniel Johnston", "givenName"=>"Nathaniel", "familyName"=>"Johnston")
58
+ expect(subject.title).to eq("The Minimum Size of Qubit Unextendible Product Bases")
59
+ expect(subject.description["text"]).to start_with("We investigate the problem of constructing unextendible product bases in the qubit case")
68
60
  expect(subject.date_published).to eq("2013")
69
- expect(subject.publisher).to eq("@type"=>"Organization", "name"=>"Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik GmbH, Wadern/Saarbruecken, Germany")
70
- expect(subject.provider).to eq("@type"=>"Organization", "name"=>"DataCite")
61
+ expect(subject.publisher).to eq("Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik GmbH, Wadern/Saarbruecken, Germany")
62
+ expect(subject.provider).to eq("DataCite")
71
63
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.1")
72
64
  end
73
65
 
@@ -79,14 +71,14 @@ describe Bolognese::Datacite, vcr: true do
79
71
  expect(subject.type).to eq("SoftwareSourceCode")
80
72
  expect(subject.additional_type).to eq("Software")
81
73
  expect(subject.resource_type_general).to eq("Software")
82
- expect(subject.author).to eq("@type"=>"Agent", "name"=>"Kristian Garza")
83
- expect(subject.name).to eq("Analysis Tools for Crossover Experiment of UI using Choice Architecture")
84
- expect(subject.description).to start_with("<p>&nbsp;</p>\n\n<p>This tools are used to analyse the data produced by the Crosssover Experiment")
85
- expect(subject.license).to eq(["info:eu-repo/semantics/openAccess", "https://creativecommons.org/licenses/by-nc-sa/4.0/"])
74
+ expect(subject.author).to eq("type"=>"Person", "name"=>"Kristian Garza", "givenName"=>"Kristian", "familyName"=>"Garza")
75
+ expect(subject.title).to eq("Analysis Tools for Crossover Experiment of UI using Choice Architecture")
76
+ expect(subject.description["text"]).to start_with("This tools are used to analyse the data produced by the Crosssover Experiment")
77
+ expect(subject.license).to eq([{"url"=>"info:eu-repo/semantics/openAccess", "name"=>"Open Access"}, {"url"=>"https://creativecommons.org/licenses/by-nc-sa/4.0/", "name"=>"Creative Commons Attribution-NonCommercial-ShareAlike"}])
86
78
  expect(subject.date_published).to eq("2016-03-27")
87
- expect(subject.citation).to eq("@type"=>"CreativeWork", "@id"=>"https://github.com/kjgarza/frame_experiment_analysis/tree/v1.0")
88
- expect(subject.publisher).to eq("@type"=>"Organization", "name"=>"Zenodo")
89
- expect(subject.provider).to eq("@type"=>"Organization", "name"=>"DataCite")
79
+ expect(subject.references).to eq("id"=>"https://github.com/kjgarza/frame_experiment_analysis/tree/v1.0", "relationType"=>"IsSupplementTo")
80
+ expect(subject.publisher).to eq("Zenodo")
81
+ expect(subject.provider).to eq("DataCite")
90
82
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
91
83
  end
92
84
 
@@ -99,14 +91,14 @@ describe Bolognese::Datacite, vcr: true do
99
91
  expect(subject.additional_type).to eq("Dataset")
100
92
  expect(subject.resource_type_general).to eq("Dataset")
101
93
  expect(subject.author.count).to eq(11)
102
- expect(subject.author.first).to eq("@type"=>"Agent", "@id"=>"http://orcid.org/0000-0002-2410-9671", "name"=>"Alexander Junge")
103
- expect(subject.name).to eq("RAIN v1")
104
- expect(subject.description).to start_with("<div><b>RAIN: RNA–protein Association and Interaction Networks")
105
- expect(subject.license).to eq("https://creativecommons.org/licenses/by/4.0/")
94
+ expect(subject.author.first).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0002-2410-9671", "name"=>"Alexander Junge", "givenName"=>"Alexander", "familyName"=>"Junge")
95
+ expect(subject.title).to eq("RAIN v1")
96
+ expect(subject.description["text"]).to start_with("<b>RAIN: RNA–protein Association and Interaction Networks")
97
+ expect(subject.license).to eq("url"=>"https://creativecommons.org/licenses/by/4.0/", "name"=>"CC-BY")
106
98
  expect(subject.date_published).to eq("2016")
107
- expect(subject.same_as).to eq("@type"=>"CreativeWork", "@id"=>"https://doi.org/10.6084/m9.figshare.4234751")
108
- expect(subject.publisher).to eq("@type"=>"Organization", "name"=>"Figshare")
109
- expect(subject.provider).to eq("@type"=>"Organization", "name"=>"DataCite")
99
+ expect(subject.is_identical_to).to eq("id"=>"https://doi.org/10.6084/m9.figshare.4234751", "relationType"=>"IsIdenticalTo")
100
+ expect(subject.publisher).to eq("Figshare")
101
+ expect(subject.provider).to eq("DataCite")
110
102
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
111
103
  end
112
104
 
@@ -118,16 +110,14 @@ describe Bolognese::Datacite, vcr: true do
118
110
  expect(subject.type).to eq("Dataset")
119
111
  expect(subject.additional_type).to eq("Dataset")
120
112
  expect(subject.resource_type_general).to eq("Dataset")
121
- expect(subject.author).to eq([{"@type"=>"Person", "givenName"=>"Najko", "familyName"=>"Jahn"},
122
- {"@type"=>"Person", "givenName"=>"Martin", "familyName"=>"Fenner"},
123
- {"@type"=>"Person", "givenName"=>"Harry", "familyName"=>"Dimitropoulos"},
124
- {"@type"=>"Person", "givenName"=>"Jochen", "familyName"=>"Schirrwagen"}])
125
- expect(subject.name).to eq("Publication FP7 Funding Acknowledgment - PLOS OpenAIRE")
126
- expect(subject.description).to start_with("The dataset contains a sample of metadata describing papers")
113
+ expect(subject.author.length).to eq(4)
114
+ expect(subject.author.first).to eq("type"=>"Person", "name"=>"Najko Jahn", "givenName"=>"Najko", "familyName"=>"Jahn")
115
+ expect(subject.title).to eq("Publication FP7 Funding Acknowledgment - PLOS OpenAIRE")
116
+ expect(subject.description["text"]).to start_with("The dataset contains a sample of metadata describing papers")
127
117
  expect(subject.date_published).to eq("2013-04-03")
128
- expect(subject.publisher).to eq("@type"=>"Organization", "name"=>"OpenAIRE Orphan Record Repository")
129
- expect(subject.funder).to eq("@type"=>"Organization", "name"=>"European Commission")
130
- expect(subject.provider).to eq("@type"=>"Organization", "name"=>"DataCite")
118
+ expect(subject.publisher).to eq("OpenAIRE Orphan Record Repository")
119
+ expect(subject.funder).to eq("name" => "European Commission")
120
+ expect(subject.provider).to eq("DataCite")
131
121
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
132
122
  end
133
123
 
@@ -140,13 +130,13 @@ describe Bolognese::Datacite, vcr: true do
140
130
  expect(subject.additional_type).to eq("Project")
141
131
  expect(subject.resource_type_general).to eq("Collection")
142
132
  expect(subject.author.length).to eq(24)
143
- expect(subject.author.first).to eq("@type"=>"Person", "@id"=>"http://orcid.org/0000-0001-5331-6592", "givenName"=>"Adam", "familyName"=>"Farquhar")
144
- expect(subject.name).to eq("Technical and Human Infrastructure for Open Research (THOR)")
145
- expect(subject.description).to start_with("\n<p>Five years ago, a global infrastructure")
133
+ expect(subject.author.first).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0001-5331-6592", "name"=>"Farquhar, Adam", "givenName"=>"Adam", "familyName"=>"Farquhar")
134
+ expect(subject.title).to eq("Technical and Human Infrastructure for Open Research (THOR)")
135
+ expect(subject.description["text"]).to start_with("Five years ago, a global infrastructure")
146
136
  expect(subject.date_published).to eq("2015")
147
- expect(subject.publisher).to eq("@type"=>"Organization", "name"=>"DataCite")
148
- expect(subject.funder).to eq("@type"=>"Organization", "@id"=>"https://doi.org/10.13039/501100000780", "name"=>"European Commission")
149
- expect(subject.provider).to eq("@type"=>"Organization", "name"=>"DataCite")
137
+ expect(subject.publisher).to eq("DataCite")
138
+ expect(subject.funder).to eq("identifier"=>"https://doi.org/10.13039/501100000780", "name"=>"European Commission")
139
+ expect(subject.provider).to eq("DataCite")
150
140
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
151
141
 
152
142
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
@@ -171,13 +161,13 @@ describe Bolognese::Datacite, vcr: true do
171
161
  expect(subject.type).to eq("ScholarlyArticle")
172
162
  expect(subject.additional_type).to eq("BlogPosting")
173
163
  expect(subject.resource_type_general).to eq("Text")
174
- expect(subject.author).to eq("@type"=>"Person", "@id"=>"http://orcid.org/0000-0003-1419-2405", "givenName"=>"Martin", "familyName"=>"Fenner")
175
- expect(subject.name).to eq("Eating your own Dog Food")
176
- expect(subject.alternate_name).to eq("MS-49-3632-5083")
164
+ expect(subject.author).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
165
+ expect(subject.title).to eq("Eating your own Dog Food")
166
+ expect(subject.alternate_name).to eq("type"=>"Local accession number", "name"=>"MS-49-3632-5083")
177
167
  expect(subject.date_published).to eq("2016-12-20")
178
- expect(subject.is_part_of).to eq("@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5438/0000-00ss")
179
- expect(subject.citation).to eq([{"@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5438/0012"}, {"@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5438/55e5-t5c0"}])
180
- expect(subject.provider).to eq("@type"=>"Organization", "name"=>"DataCite")
168
+ expect(subject.is_part_of).to eq("id"=>"https://doi.org/10.5438/0000-00ss", "relationType"=>"IsPartOf")
169
+ expect(subject.references).to eq([{"id"=>"https://doi.org/10.5438/0012", "relationType"=>"References"}, {"id"=>"https://doi.org/10.5438/55e5-t5c0", "relationType"=>"References"}])
170
+ expect(subject.provider).to eq("DataCite")
181
171
  end
182
172
 
183
173
  it "missing creator" do
@@ -198,23 +188,17 @@ describe Bolognese::Datacite, vcr: true do
198
188
  expect(subject.type).to eq("Dataset")
199
189
  expect(subject.additional_type).to eq("DataPackage")
200
190
  expect(subject.resource_type_general).to eq("Dataset")
201
- expect(subject.author).to eq([{"@type"=>"Person", "givenName"=>"Benjamin", "familyName"=>"Ollomo"},
202
- {"@type"=>"Person", "givenName"=>"Patrick", "familyName"=>"Durand"},
203
- {"@type"=>"Person", "givenName"=>"Franck", "familyName"=>"Prugnolle"},
204
- {"@type"=>"Person", "givenName"=>"Emmanuel J. P.", "familyName"=>"Douzery"},
205
- {"@type"=>"Person", "givenName"=>"Céline", "familyName"=>"Arnathau"},
206
- {"@type"=>"Person", "givenName"=>"Dieudonné", "familyName"=>"Nkoghe"},
207
- {"@type"=>"Person", "givenName"=>"Eric", "familyName"=>"Leroy"},
208
- {"@type"=>"Person", "givenName"=>"François", "familyName"=>"Renaud"}])
209
- expect(subject.name).to eq("Data from: A new malaria agent in African hominids.")
210
- expect(subject.alternate_name).to eq("Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.")
211
- expect(subject.license).to eq("http://creativecommons.org/publicdomain/zero/1.0/")
191
+ expect(subject.author.length).to eq(8)
192
+ expect(subject.author.first).to eq("type"=>"Person", "name"=>"Benjamin Ollomo", "givenName"=>"Benjamin", "familyName"=>"Ollomo")
193
+ expect(subject.title).to eq("Data from: A new malaria agent in African hominids.")
194
+ expect(subject.alternate_name).to eq("type"=>"citation", "name"=>"Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.")
195
+ expect(subject.license).to eq("url"=>"http://creativecommons.org/publicdomain/zero/1.0/")
212
196
  expect(subject.date_published).to eq("2011")
213
- expect(subject.has_part).to eq([{"@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5061/dryad.8515/1"},
214
- {"@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5061/dryad.8515/2"}])
215
- expect(subject.citation).to eq("@type"=>"CreativeWork", "@id"=>"https://doi.org/10.1371/journal.ppat.1000446")
216
- expect(subject.publisher).to eq("@type"=>"Organization", "name"=>"Dryad Digital Repository")
217
- expect(subject.provider).to eq("@type"=>"Organization", "name"=>"DataCite")
197
+ expect(subject.has_part).to eq([{"id"=>"https://doi.org/10.5061/dryad.8515/1", "relationType"=>"HasPart"},
198
+ {"id"=>"https://doi.org/10.5061/dryad.8515/2", "relationType"=>"HasPart"}])
199
+ expect(subject.references).to eq("id"=>"https://doi.org/10.1371/journal.ppat.1000446", "relationType"=>"IsReferencedBy")
200
+ expect(subject.publisher).to eq("Dryad Digital Repository")
201
+ expect(subject.provider).to eq("DataCite")
218
202
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
219
203
 
220
204
  datacite = Maremma.from_xml(subject.datacite).fetch("resource", {})
@@ -232,10 +216,10 @@ describe Bolognese::Datacite, vcr: true do
232
216
  expect(json["@id"]).to eq("https://doi.org/10.5063/f1m61h5x")
233
217
  expect(json["@type"]).to eq("SoftwareSourceCode")
234
218
  expect(json["identifier"]).to eq("https://doi.org/10.5063/f1m61h5x")
235
- expect(json["agents"]).to eq("@type"=>"Person", "givenName"=>"Matthew B.", "familyName"=>"Jones")
219
+ expect(json["agents"]).to eq("type"=>"Person", "name"=>"Matthew B. Jones", "givenName"=>"Matthew B.", "familyName"=>"Jones")
236
220
  expect(json["title"]).to eq("dataone: R interface to the DataONE network of data repositories")
237
221
  expect(json["datePublished"]).to eq("2016")
238
- expect(json["publisher"]).to eq("@type"=>"Organization", "name"=>"KNB Data Repository")
222
+ expect(json["publisher"]).to eq("KNB Data Repository")
239
223
  end
240
224
  end
241
225
 
@@ -17,7 +17,7 @@ describe Bolognese::Datacite, vcr: true do
17
17
  it "insert" do
18
18
  xml = Nokogiri::XML::Builder.new { |xml| subject.insert_creators(xml) }.to_xml
19
19
  response = Maremma.from_xml(xml)
20
- expect(response.dig("creators", "creator").first).to eq("creatorName"=>"Ollomo, Benjamin", "givenName"=>"Benjamin", "familyName"=>"Ollomo")
20
+ expect(response.dig("creators", "creator").first).to eq("creatorName"=>"Benjamin Ollomo", "givenName"=>"Benjamin", "familyName"=>"Ollomo")
21
21
  end
22
22
  end
23
23
 
@@ -83,7 +83,7 @@ describe Bolognese::Datacite, vcr: true do
83
83
  it "insert" do
84
84
  xml = Nokogiri::XML::Builder.new { |xml| subject.insert_alternate_identifiers(xml) }.to_xml
85
85
  response = Maremma.from_xml(xml)
86
- expect(response.dig("alternateIdentifiers", "alternateIdentifier")).to eq("alternateIdentifierType"=>"Local accession number", "__content__"=>"Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.")
86
+ expect(response.dig("alternateIdentifiers", "alternateIdentifier")).to eq("alternateIdentifierType"=>"citation", "__content__"=>"Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.")
87
87
  end
88
88
  end
89
89
 
@@ -112,16 +112,11 @@ describe Bolognese::Datacite, vcr: true do
112
112
  end
113
113
 
114
114
  context "insert_related_identifiers" do
115
- it "rel_identifiers" do
116
- expect(subject.rel_identifiers).to eq([{"__content__"=>"https://doi.org/10.5061/dryad.8515/1",
117
- "related_identifier_type"=>"DOI",
118
- "relation_type"=>"HasPart"},
119
- {"__content__"=>"https://doi.org/10.5061/dryad.8515/2",
120
- "related_identifier_type"=>"DOI",
121
- "relation_type"=>"HasPart"},
122
- {"__content__"=>"https://doi.org/10.1371/journal.ppat.1000446",
123
- "related_identifier_type"=>"DOI",
124
- "relation_type"=>"References"}])
115
+ it "related_identifier" do
116
+ expect(subject.related_identifier).to eq([{"id"=>"https://doi.org/10.5061/dryad.8515/1", "relationType"=>"HasPart"},
117
+ {"id"=>"https://doi.org/10.5061/dryad.8515/2", "relationType"=>"HasPart"},
118
+ {"id"=>"https://doi.org/10.1371/journal.ppat.1000446",
119
+ "relationType"=>"IsReferencedBy"}])
125
120
  end
126
121
 
127
122
  it "insert" do
@@ -134,7 +129,7 @@ describe Bolognese::Datacite, vcr: true do
134
129
  "relationType"=>"HasPart",
135
130
  "__content__"=>"https://doi.org/10.5061/dryad.8515/2"},
136
131
  {"relatedIdentifierType"=>"DOI",
137
- "relationType"=>"References",
132
+ "relationType"=>"IsReferencedBy",
138
133
  "__content__"=>"https://doi.org/10.1371/journal.ppat.1000446"}])
139
134
  end
140
135
  end
@@ -143,7 +138,7 @@ describe Bolognese::Datacite, vcr: true do
143
138
  it "insert" do
144
139
  xml = Nokogiri::XML::Builder.new { |xml| subject.insert_rights_list(xml) }.to_xml
145
140
  response = Maremma.from_xml(xml)
146
- expect(response.dig("rightsList", "rights")).to eq("rightsURI"=>"http://creativecommons.org/publicdomain/zero/1.0/", "__content__"=>"Public Domain (CC0 1.0)")
141
+ expect(response.dig("rightsList", "rights")).to eq("rightsURI"=>"http://creativecommons.org/publicdomain/zero/1.0/")
147
142
  end
148
143
  end
149
144
 
@@ -0,0 +1,49 @@
1
+ {
2
+ "id": "https://doi.org/10.5438/4k3m-nyvg",
3
+ "doi": "10.5438/4K3M-NYVG",
4
+ "creator": {
5
+ "type": "Person",
6
+ "id": "http://orcid.org/0000-0003-1419-2405",
7
+ "name": "Fenner, Martin",
8
+ "givenName": "Martin",
9
+ "familyName": "Fenner"
10
+ },
11
+ "title": "Eating your own Dog Food",
12
+ "publisher": "DataCite",
13
+ "publication-year": "2016",
14
+ "resource-type-general": "Text",
15
+ "resource-type": "BlogPosting",
16
+ "subject": [
17
+ "datacite",
18
+ "doi",
19
+ "metadata"
20
+ ],
21
+ "date-created": "2016-12-20",
22
+ "date-published": "2016-12-20",
23
+ "date-modified": "2016-12-20",
24
+ "alternate-identifier": {
25
+ "type": "Local accession number",
26
+ "name": "MS-49-3632-5083"
27
+ },
28
+ "related_identifier": [
29
+ {
30
+ "id": "https://doi.org/10.5438/0012",
31
+ "relationType": "References"
32
+ },
33
+ {
34
+ "id": "https://doi.org/10.5438/55e5-t5c0",
35
+ "relationType": "References"
36
+ },
37
+ {
38
+ "id": "https://doi.org/10.5438/0000-00ss",
39
+ "relationType": "IsPartOf"
40
+ }
41
+ ],
42
+ "version": "1.0",
43
+ "description": {
44
+ "type": "Abstract",
45
+ "text": "Eating your own dog food is a slang term to describe that an organization should itself use the products and services it provides. For DataCite this means that we should use DOIs with appropriate metadata and strategies for long-term preservation for..."
46
+ },
47
+ "schemaVersion": "http://datacite.org/schema/kernel-4",
48
+ "provider": "DataCite"
49
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "id": "https://doi.org/10.5063/f1m61h5x",
3
+ "doi": "10.5063/F1M61H5X",
4
+ "creator": {
5
+ "type": "Person",
6
+ "name": "Matthew B. Jones",
7
+ "givenName": "Matthew B.",
8
+ "familyName": "Jones"
9
+ },
10
+ "title": "dataone: R interface to the DataONE network of data repositories",
11
+ "publisher": "KNB Data Repository",
12
+ "publication-year": "2016",
13
+ "resource-type-general": "Software",
14
+ "resource-type": "Software",
15
+ "date-published": "2016",
16
+ "schemaVersion": "http://datacite.org/schema/kernel-3",
17
+ "provider": "DataCite"
18
+ }
@@ -0,0 +1,214 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://doi.crossref.org/doiRA/10.5061/dryad.8515
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Maremma - https://github.com/datacite/maremma
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: ''
18
+ headers:
19
+ Server:
20
+ - Apache-Coyote/1.1
21
+ Crossref-Deployment-Name:
22
+ - svc1-1
23
+ Content-Type:
24
+ - application/json;charset=UTF-8
25
+ Content-Language:
26
+ - en-US
27
+ Content-Length:
28
+ - '56'
29
+ Date:
30
+ - Mon, 27 Feb 2017 20:46:45 GMT
31
+ Connection:
32
+ - close
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ [
37
+ {
38
+ "DOI": "10.5061/dryad.8515",
39
+ "RA": "DataCite"
40
+ }
41
+ ]
42
+ http_version:
43
+ recorded_at: Mon, 27 Feb 2017 20:46:46 GMT
44
+ - request:
45
+ method: get
46
+ uri: https://doi.org/10.5061/dryad.8515
47
+ body:
48
+ encoding: US-ASCII
49
+ string: ''
50
+ headers:
51
+ User-Agent:
52
+ - Maremma - https://github.com/datacite/maremma
53
+ Accept:
54
+ - application/vnd.datacite.datacite+xml
55
+ response:
56
+ status:
57
+ code: 303
58
+ message: ''
59
+ headers:
60
+ Server:
61
+ - Apache-Coyote/1.1
62
+ Vary:
63
+ - Accept
64
+ Location:
65
+ - http://data.datacite.org/10.5061%2Fdryad.8515
66
+ Expires:
67
+ - Mon, 27 Feb 2017 21:33:17 GMT
68
+ Content-Type:
69
+ - text/html;charset=utf-8
70
+ Content-Length:
71
+ - '175'
72
+ Date:
73
+ - Mon, 27 Feb 2017 20:46:54 GMT
74
+ body:
75
+ encoding: UTF-8
76
+ string: |-
77
+ <html><head><title>Handle Redirect</title></head>
78
+ <body><a href="http://data.datacite.org/10.5061%2Fdryad.8515">http://data.datacite.org/10.5061%2Fdryad.8515</a></body></html>
79
+ http_version:
80
+ recorded_at: Mon, 27 Feb 2017 20:46:54 GMT
81
+ - request:
82
+ method: get
83
+ uri: http://data.datacite.org/10.5061%2Fdryad.8515
84
+ body:
85
+ encoding: US-ASCII
86
+ string: ''
87
+ headers:
88
+ User-Agent:
89
+ - Maremma - https://github.com/datacite/maremma
90
+ Accept:
91
+ - application/vnd.datacite.datacite+xml
92
+ response:
93
+ status:
94
+ code: 301
95
+ message: ''
96
+ headers:
97
+ Server:
98
+ - openresty/1.11.2.2
99
+ Date:
100
+ - Mon, 27 Feb 2017 20:46:54 GMT
101
+ Content-Type:
102
+ - text/html
103
+ Content-Length:
104
+ - '191'
105
+ Connection:
106
+ - keep-alive
107
+ Location:
108
+ - https://data.datacite.org/10.5061%2Fdryad.8515
109
+ body:
110
+ encoding: UTF-8
111
+ string: "<html>\r\n<head><title>301 Moved Permanently</title></head>\r\n<body
112
+ bgcolor=\"white\">\r\n<center><h1>301 Moved Permanently</h1></center>\r\n<hr><center>openresty/1.11.2.2</center>\r\n</body>\r\n</html>\r\n"
113
+ http_version:
114
+ recorded_at: Mon, 27 Feb 2017 20:46:54 GMT
115
+ - request:
116
+ method: get
117
+ uri: https://data.datacite.org/10.5061%2Fdryad.8515
118
+ body:
119
+ encoding: US-ASCII
120
+ string: ''
121
+ headers:
122
+ User-Agent:
123
+ - Maremma - https://github.com/datacite/maremma
124
+ Accept:
125
+ - application/vnd.datacite.datacite+xml
126
+ response:
127
+ status:
128
+ code: 200
129
+ message: ''
130
+ headers:
131
+ Server:
132
+ - openresty/1.11.2.2
133
+ Date:
134
+ - Mon, 27 Feb 2017 20:46:55 GMT
135
+ Content-Type:
136
+ - application/vnd.datacite.datacite+xml
137
+ Content-Length:
138
+ - '2601'
139
+ Connection:
140
+ - keep-alive
141
+ Cache-Control:
142
+ - no-transform, max-age=3600
143
+ Last-Modified:
144
+ - Sat, 04 Feb 2017 17:54:37 GMT
145
+ Vary:
146
+ - Accept
147
+ Access-Control-Allow-Origin:
148
+ - "*"
149
+ Access-Control-Allow-Methods:
150
+ - GET, POST, OPTIONS
151
+ body:
152
+ encoding: ASCII-8BIT
153
+ string: !binary |-
154
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291
155
+ cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwt
156
+ MyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVt
157
+ YS1pbnN0YW5jZSIgeG1sbnM6bWV0cz0iaHR0cDovL3d3dy5sb2MuZ292L01F
158
+ VFMvIiB4bWxuczpkc3BhY2U9Imh0dHA6Ly93d3cuZHNwYWNlLm9yZy94bWxu
159
+ cy9kc3BhY2UvZGltIiB4bWxuczpkaW09Imh0dHA6Ly93d3cuZHNwYWNlLm9y
160
+ Zy94bWxucy9kc3BhY2UvZGltIiB4bWxuczpkcnlhZD0iaHR0cDovL3B1cmwu
161
+ b3JnL2RyeWFkL3Rlcm1zLyIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8v
162
+ ZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMyBodHRwOi8vc2NoZW1hLmRh
163
+ dGFjaXRlLm9yZy9tZXRhL2tlcm5lbC0zL21ldGFkYXRhLnhzZCI+ICA8aWRl
164
+ bnRpZmllciBpZGVudGlmaWVyVHlwZT0iRE9JIj4xMC41MDYxL0RSWUFELjg1
165
+ MTU8L2lkZW50aWZpZXI+ICA8dmVyc2lvbj4xPC92ZXJzaW9uPiAgPGNyZWF0
166
+ b3JzPiAgICA8Y3JlYXRvcj4gICAgICA8Y3JlYXRvck5hbWU+T2xsb21vLCBC
167
+ ZW5qYW1pbjwvY3JlYXRvck5hbWU+ICAgIDwvY3JlYXRvcj4gICAgPGNyZWF0
168
+ b3I+ICAgICAgPGNyZWF0b3JOYW1lPkR1cmFuZCwgUGF0cmljazwvY3JlYXRv
169
+ ck5hbWU+ICAgIDwvY3JlYXRvcj4gICAgPGNyZWF0b3I+ICAgICAgPGNyZWF0
170
+ b3JOYW1lPlBydWdub2xsZSwgRnJhbmNrPC9jcmVhdG9yTmFtZT4gICAgPC9j
171
+ cmVhdG9yPiAgICA8Y3JlYXRvcj4gICAgICA8Y3JlYXRvck5hbWU+RG91emVy
172
+ eSwgRW1tYW51ZWwgSi4gUC48L2NyZWF0b3JOYW1lPiAgICA8L2NyZWF0b3I+
173
+ ICAgIDxjcmVhdG9yPiAgICAgIDxjcmVhdG9yTmFtZT5Bcm5hdGhhdSwgQ8Op
174
+ bGluZTwvY3JlYXRvck5hbWU+ICAgIDwvY3JlYXRvcj4gICAgPGNyZWF0b3I+
175
+ ICAgICAgPGNyZWF0b3JOYW1lPk5rb2doZSwgRGlldWRvbm7DqTwvY3JlYXRv
176
+ ck5hbWU+ICAgIDwvY3JlYXRvcj4gICAgPGNyZWF0b3I+ICAgICAgPGNyZWF0
177
+ b3JOYW1lPkxlcm95LCBFcmljPC9jcmVhdG9yTmFtZT4gICAgPC9jcmVhdG9y
178
+ PiAgICA8Y3JlYXRvcj4gICAgICA8Y3JlYXRvck5hbWU+UmVuYXVkLCBGcmFu
179
+ w6dvaXM8L2NyZWF0b3JOYW1lPiAgICA8L2NyZWF0b3I+ICA8L2NyZWF0b3Jz
180
+ PiAgPHRpdGxlcz4gICAgPHRpdGxlPkRhdGEgZnJvbTogQSBuZXcgbWFsYXJp
181
+ YSBhZ2VudCBpbiBBZnJpY2FuIGhvbWluaWRzLjwvdGl0bGU+ICA8L3RpdGxl
182
+ cz4gIDxwdWJsaXNoZXI+RHJ5YWQgRGlnaXRhbCBSZXBvc2l0b3J5PC9wdWJs
183
+ aXNoZXI+ICA8cHVibGljYXRpb25ZZWFyPjIwMTE8L3B1YmxpY2F0aW9uWWVh
184
+ cj4gIDxzdWJqZWN0cz4gICAgPHN1YmplY3Q+UGh5bG9nZW55PC9zdWJqZWN0
185
+ PiAgICA8c3ViamVjdD5NYWxhcmlhPC9zdWJqZWN0PiAgICA8c3ViamVjdD5Q
186
+ YXJhc2l0ZXM8L3N1YmplY3Q+ICAgIDxzdWJqZWN0PlRheG9ub215PC9zdWJq
187
+ ZWN0PiAgICA8c3ViamVjdD5NaXRvY2hvbmRyaWFsIGdlbm9tZTwvc3ViamVj
188
+ dD4gICAgPHN1YmplY3Q+QWZyaWNhPC9zdWJqZWN0PiAgICA8c3ViamVjdD5Q
189
+ bGFzbW9kaXVtPC9zdWJqZWN0PiAgPC9zdWJqZWN0cz4gIDxyZXNvdXJjZVR5
190
+ cGUgcmVzb3VyY2VUeXBlR2VuZXJhbD0iRGF0YXNldCI+RGF0YVBhY2thZ2U8
191
+ L3Jlc291cmNlVHlwZT4gIDxhbHRlcm5hdGVJZGVudGlmaWVycz4gICAgPGFs
192
+ dGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9ImNp
193
+ dGF0aW9uIj5PbGxvbW8gQiwgRHVyYW5kIFAsIFBydWdub2xsZSBGLCBEb3V6
194
+ ZXJ5IEVKUCwgQXJuYXRoYXUgQywgTmtvZ2hlIEQsIExlcm95IEUsIFJlbmF1
195
+ ZCBGICgyMDA5KSBBIG5ldyBtYWxhcmlhIGFnZW50IGluIEFmcmljYW4gaG9t
196
+ aW5pZHMuIFBMb1MgUGF0aG9nZW5zIDUoNSk6IGUxMDAwNDQ2LjwvYWx0ZXJu
197
+ YXRlSWRlbnRpZmllcj4gIDwvYWx0ZXJuYXRlSWRlbnRpZmllcnM+ICA8cmVs
198
+ YXRlZElkZW50aWZpZXJzPiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRl
199
+ ZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSGFzUGFydCI+
200
+ MTAuNTA2MS9EUllBRC44NTE1LzE8L3JlbGF0ZWRJZGVudGlmaWVyPiAgICA8
201
+ cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0ki
202
+ IHJlbGF0aW9uVHlwZT0iSGFzUGFydCI+MTAuNTA2MS9EUllBRC44NTE1LzI8
203
+ L3JlbGF0ZWRJZGVudGlmaWVyPiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVs
204
+ YXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSXNSZWZl
205
+ cmVuY2VkQnkiPjEwLjEzNzEvSk9VUk5BTC5QUEFULjEwMDA0NDY8L3JlbGF0
206
+ ZWRJZGVudGlmaWVyPiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElk
207
+ ZW50aWZpZXJUeXBlPSJQTUlEIiByZWxhdGlvblR5cGU9IklzUmVmZXJlbmNl
208
+ ZEJ5Ij4xOTQ3ODg3NzwvcmVsYXRlZElkZW50aWZpZXI+ICA8L3JlbGF0ZWRJ
209
+ ZGVudGlmaWVycz4gIDxyaWdodHNMaXN0PiAgICA8cmlnaHRzIHJpZ2h0c1VS
210
+ ST0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3pl
211
+ cm8vMS4wLyIvPiAgPC9yaWdodHNMaXN0PjwvcmVzb3VyY2U+
212
+ http_version:
213
+ recorded_at: Mon, 27 Feb 2017 20:46:54 GMT
214
+ recorded_with: VCR 3.0.3