bolognese 0.9.27 → 0.9.28

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4cdd174ccc29708dbf4316c8f70a659ecd9240a4
4
- data.tar.gz: cd64d7fcfc6e67b3eac91d3f4287c4edfc7d55b1
3
+ metadata.gz: c0c56ee5d9e7e6c6b05cf7dc7fa782bc332aaac1
4
+ data.tar.gz: a49d7460ee9d3fba26acc953df4e7a9d8c053a32
5
5
  SHA512:
6
- metadata.gz: e300a595aa5e7d82e865269d8a07d7cc2ed1215e15e1444ff75f1c04e58fc94931665f38bfaa501836cf1144ba13ce59e9aceb92ea95022598f99e169ef9b780
7
- data.tar.gz: c13719adb731b9aa0b9fd5b12c08d1ef57c865ee2292faf6938fc7e8024e77d12309d9b4f71d4fa73915a9cb34ebde60fc37f23150c4dd8fabb2b876866e369a
6
+ metadata.gz: 82bf48a194cdd0d9bc38cdb5e530ac8482a64ff0aae041274577555211e2444887a426dcb198a76efe3896098cb8130265f280c67a358023c3497fa71c84c3c7
7
+ data.tar.gz: a38601783170cc7d9782dbfea068297f04288b8866511bfdbec151156a434d40cf44e07ab744c7d8b61b1c84e4509600aa7650b43beba13dedef845aabcd230e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bolognese (0.9.27)
4
+ bolognese (0.9.28)
5
5
  activesupport (>= 4.2.5, < 6)
6
6
  benchmark_methods (~> 0.7)
7
7
  bibtex-ruby (~> 4.1)
@@ -72,14 +72,14 @@ module Bolognese
72
72
  :related_identifier, :reverse, :citeproc_type, :ris_type, :volume, :issue,
73
73
  :name_detector
74
74
 
75
- def initialize(input: nil, from: nil, regenerate: false)
75
+ def initialize(input: nil, from: nil, regenerate: false, **options)
76
76
  id = normalize_id(input)
77
77
 
78
78
  if id.present?
79
79
  @from = from || find_from_format(id: id)
80
80
 
81
81
  # generate name for method to call dynamically
82
- string = @from.present? ? send("get_" + @from, id: id) : nil
82
+ string = @from.present? ? send("get_" + @from, id: id, search_url: options[:search_url]) : nil
83
83
  elsif File.exist?(input)
84
84
  ext = File.extname(input)
85
85
  if %w(.bib .ris .xml .json).include?(ext)
@@ -1,7 +1,7 @@
1
1
  module Bolognese
2
2
  module Readers
3
3
  module CodemetaReader
4
- def get_codemeta(id: nil)
4
+ def get_codemeta(id: nil, **options)
5
5
  return nil unless id.present?
6
6
  id = normalize_id(id)
7
7
  response = Maremma.get(github_as_codemeta_url(id), accept: "json", raw: true)
@@ -62,7 +62,7 @@ module Bolognese
62
62
 
63
63
  CONTACT_EMAIL = "tech@datacite.org"
64
64
 
65
- def get_crossref(id: nil)
65
+ def get_crossref(id: nil, **options)
66
66
  return nil unless id.present?
67
67
 
68
68
  doi = doi_from_url(id)
@@ -1,12 +1,12 @@
1
1
  module Bolognese
2
2
  module Readers
3
3
  module DataciteReader
4
- def get_datacite(id: nil)
4
+ def get_datacite(id: nil, **options)
5
5
  return nil unless id.present?
6
6
 
7
7
  doi = doi_from_url(id)
8
- url = ENV['SEARCH_URL'].presence || "https://search.datacite.org"
9
- url += "/api?q=doi:#{doi}&fl=doi,xml,media,minted,updated&wt=json"
8
+ url = options.fetch(:search_url, nil).presence || "https://search.datacite.org/api"
9
+ url += "?q=doi:#{doi}&fl=doi,xml,media,minted,updated&wt=json"
10
10
 
11
11
  response = Maremma.get url
12
12
  attributes = response.body.dig("data", "response", "docs").first
@@ -59,7 +59,7 @@ module Bolognese
59
59
  }
60
60
  end
61
61
 
62
- def get_schema_org(id: nil)
62
+ def get_schema_org(id: nil, **options)
63
63
  return nil unless id.present?
64
64
 
65
65
  id = normalize_id(id)
@@ -1,3 +1,3 @@
1
1
  module Bolognese
2
- VERSION = "0.9.27"
2
+ VERSION = "0.9.28"
3
3
  end
@@ -0,0 +1,107 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.datacite.org/prefixes/10.5286
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
+ Access-Control-Allow-Headers:
20
+ - Content-Type,Accept,Accept-Encoding,Origin,User-Agent,Cache-Control,Keep-Alive
21
+ Access-Control-Allow-Methods:
22
+ - GET, POST, OPTIONS
23
+ Access-Control-Allow-Origin:
24
+ - "*"
25
+ Access-Control-Max-Age:
26
+ - '1728000'
27
+ Cache-Control:
28
+ - max-age=0, private, must-revalidate
29
+ Content-Type:
30
+ - application/vnd.api+json; charset=utf-8
31
+ Date:
32
+ - Sun, 25 Jun 2017 12:45:30 GMT
33
+ Etag:
34
+ - W/"be181a297e99f2daa28e8ee93e167f12"
35
+ Server:
36
+ - openresty/1.11.2.2
37
+ Status:
38
+ - 200 OK
39
+ Vary:
40
+ - Accept-Encoding
41
+ Via:
42
+ - kong/0.10.3
43
+ X-Content-Type-Options:
44
+ - nosniff
45
+ X-Frame-Options:
46
+ - SAMEORIGIN
47
+ X-Kong-Proxy-Latency:
48
+ - '1'
49
+ X-Kong-Upstream-Latency:
50
+ - '332'
51
+ X-Powered-By:
52
+ - Phusion Passenger 5.1.5
53
+ X-Ratelimit-Limit-Hour:
54
+ - '100000'
55
+ X-Ratelimit-Remaining-Hour:
56
+ - '99994'
57
+ X-Request-Id:
58
+ - e779f0c8-de88-4f60-aeee-6d3315faefd2
59
+ X-Runtime:
60
+ - '0.330449'
61
+ X-Xss-Protection:
62
+ - 1; mode=block
63
+ Content-Length:
64
+ - '124'
65
+ Connection:
66
+ - keep-alive
67
+ body:
68
+ encoding: UTF-8
69
+ string: '{"data":{"id":"10.5286","type":"prefixes","attributes":{"registration-agency":"DataCite","updated":"2016-09-21T20:27:14Z"}}}'
70
+ http_version:
71
+ recorded_at: Sun, 25 Jun 2017 12:45:30 GMT
72
+ - request:
73
+ method: get
74
+ uri: https://search.test.datacite.org/api?fl=doi,xml,media,minted,updated&q=doi:10.5286/topcat/isis/1/datacollection/84974338&wt=json
75
+ body:
76
+ encoding: US-ASCII
77
+ string: ''
78
+ headers:
79
+ User-Agent:
80
+ - Maremma - https://github.com/datacite/maremma
81
+ Accept:
82
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
83
+ response:
84
+ status:
85
+ code: 200
86
+ message: ''
87
+ headers:
88
+ Access-Control-Allow-Methods:
89
+ - GET, POST, OPTIONS
90
+ Access-Control-Allow-Origin:
91
+ - "*"
92
+ Content-Type:
93
+ - application/json;charset=UTF-8
94
+ Date:
95
+ - Sun, 25 Jun 2017 12:45:30 GMT
96
+ Server:
97
+ - openresty/1.11.2.2
98
+ Connection:
99
+ - keep-alive
100
+ body:
101
+ encoding: UTF-8
102
+ string: '{"responseHeader":{"status":0,"QTime":1},"response":{"numFound":1,"start":0,"docs":[{"xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+PGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNTI4Ni90b3BjYXQvaXNpcy8xL0RhdGFDb2xsZWN0aW9uLzg0OTc0MzM4PC9pZGVudGlmaWVyPjx0aXRsZXM+PHRpdGxlIHhtbDpsYW5nPSJlbi1nYiI+RXhwbG9yaW5nIHRoZSBwb3RlbnRpYWwgb2YgZW5lcmd5LWRlcGVuZGVudCBuZXV0cm9uIGltYWdpbmcgPC90aXRsZT48L3RpdGxlcz48ZGVzY3JpcHRpb25zPjxkZXNjcmlwdGlvbiBkZXNjcmlwdGlvblR5cGU9IkFic3RyYWN0IiB4bWw6bGFuZz0iZW4tZ2IiPldlIHdvdWxkIGxpa2UgdG8gZXhwbG9yZSB0aGUgcG90ZW50aWFsIG9mIGVuZXJneS1kZXBlbmRlbnQgbmV1dHJvbiBpbWFnaW5nLCBpbiB2aWV3IG9mIHRoZSBmdXR1cmUgQnJhZ2cgZWRnZSB0cmFuc21pc3Npb24gYW5hbHlzaXMgb3B0aW9ucyBvbiBJTUFUIGFuZCBMQVJNT1IuIFRoZSBleHBlcmltZW50cyB3aWxsIHVzZSB0aGUgbGF0ZXN0IG5ldXRyb24gc2Vuc2l0aXZlIG1pY3JvY2hhbm5lbCBwbGF0ZSAoTUNQKSBkZXRlY3Rpb24gc3lzdGVtLCBjaGFyYWN0ZXJpemUgaXRzIHBlcmZvcm1hbmNlIG9uIGEgVFMtMiBuZXV0cm9uIGJlYW0gYW5kIHByb2R1Y2UgZGF0YSBzZXRzIGZvciBkZXZlbG9waW5nIGRhdGEgcHJvY2Vzc2luZyBhbmQgY29ycmVjdGlvbnMgcHJvY2VkdXJlcyBmb3IgZW5lcmd5LXJlc29sdmVkIG5ldXRyb24gcmFkaW9ncmFwaHkgYW5kIHRvbW9ncmFwaHkuIERhdGEgc2V0cyB3aWxsIGJlIGNvbGxlY3RlZCBvbiBhIHJhbmdlIG9mIHN0YW5kYXJkIHNhbXBsZXMgYW5kIGVuZ2luZWVyaW5nIGFsbG95cyBvZiB2YXJ5aW5nIGNvbXBvc2l0aW9uIGFuZCBnZW9tZXRyeSwgdG8gdmVyaWZ5IHRoZSB1c2VmdWxuZXNzIG9mIG5ldXRyb24gaW1hZ2luZyBmb3IgcGhhc2UsIGdyYWluIGFuZCBzdHJhaW4gbWFwcGluZyBpbiBlbmdpbmVlcmluZyBhbGxveXMuIFdlIGFzayBmb3IgYSB0b3RhbCBvZiAxMiBkYXlzIG9uIExBUk1PUi48L2Rlc2NyaXB0aW9uPjwvZGVzY3JpcHRpb25zPjxjcmVhdG9ycz48Y3JlYXRvcj48Y3JlYXRvck5hbWU+RHIgV2luZnJpZWQgS29ja2VsbWFubjwvY3JlYXRvck5hbWU+PC9jcmVhdG9yPjxjcmVhdG9yPjxjcmVhdG9yTmFtZT5EciBSb2JlcnQgRGFsZ2xpZXNoPC9jcmVhdG9yTmFtZT48L2NyZWF0b3I+PGNyZWF0b3I+PGNyZWF0b3JOYW1lPkRyIFRyaWVzdGlubyBNaW5uaXRpPC9jcmVhdG9yTmFtZT48L2NyZWF0b3I+PGNyZWF0b3I+PGNyZWF0b3JOYW1lPlByb2Zlc3NvciBLZW5pY2hpIFdhdGFuYWJlPC9jcmVhdG9yTmFtZT48L2NyZWF0b3I+PGNyZWF0b3I+PGNyZWF0b3JOYW1lPk1yIFJhbmdnaSBSYW1hZGhhbjwvY3JlYXRvck5hbWU+PC9jcmVhdG9yPjxjcmVhdG9yPjxjcmVhdG9yTmFtZT5NciBUb20gR293bGFuZDwvY3JlYXRvck5hbWU+PC9jcmVhdG9yPjwvY3JlYXRvcnM+PGRhdGVzPjxkYXRlIGRhdGVUeXBlPSJBdmFpbGFibGUiPjIwMTctMDYtMjM8L2RhdGU+PC9kYXRlcz48cHVibGlzaGVyPklTSVM8L3B1Ymxpc2hlcj48cHVibGljYXRpb25ZZWFyPjIwMTc8L3B1YmxpY2F0aW9uWWVhcj48cmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUdlbmVyYWw9IkRhdGFzZXQiPkV4cGVyaW1lbnQgRGF0YTwvcmVzb3VyY2VUeXBlPjxyaWdodHNMaXN0PjxyaWdodHMgcmlnaHRzVVJJPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS80LjAvIj5DcmVhdGl2ZSBDb21tb25zIC0gQXR0cmlidXRpb24gNC4wIEludGVybmF0aW9uYWw8L3JpZ2h0cz48L3JpZ2h0c0xpc3Q+PC9yZXNvdXJjZT4=","minted":"2017-06-23T14:30:35Z","updated":"2017-06-23T14:30:35Z","doi":"10.5286/TOPCAT/ISIS/1/DATACOLLECTION/84974338"}]}}
103
+
104
+ '
105
+ http_version:
106
+ recorded_at: Sun, 25 Jun 2017 12:45:30 GMT
107
+ recorded_with: VCR 3.0.3
@@ -259,6 +259,28 @@ describe Bolognese::Metadata, vcr: true do
259
259
  expect(subject.valid?).to be false
260
260
  end
261
261
 
262
+ it "DOI in test system" do
263
+ input = "https://doi.org/10.5286/TOPCAT/ISIS/1/DATACOLLECTION/84974338"
264
+ search_url = "https://search.test.datacite.org/api"
265
+ subject = Bolognese::Metadata.new(input: input, search_url: search_url)
266
+ expect(subject.valid?).to be true
267
+ expect(subject.id).to eq("https://doi.org/10.5286/topcat/isis/1/datacollection/84974338")
268
+ expect(subject.type).to eq("Dataset")
269
+ expect(subject.additional_type).to eq("Experiment Data")
270
+ expect(subject.resource_type_general).to eq("Dataset")
271
+ expect(subject.author).to eq([{"name"=>"Dr Winfried Kockelmann"},
272
+ {"name"=>"Dr Robert Dalgliesh"},
273
+ {"name"=>"Dr Triestino Minniti"},
274
+ {"name"=>"Professor Kenichi Watanabe"},
275
+ {"name"=>"Mr Ranggi Ramadhan"},
276
+ {"name"=>"Mr Tom Gowland"}])
277
+ expect(subject.title["text"]).to eq("Exploring the potential of energy-dependent neutron imaging")
278
+ expect(subject.date_published).to eq("2017")
279
+ expect(subject.publisher).to eq("ISIS")
280
+ expect(subject.provider).to eq("DataCite")
281
+ expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
282
+ end
283
+
262
284
  # it "missing creator" do
263
285
  # string = IO.read(fixture_path + "datacite_missing_creator.xml")
264
286
  # subject = Bolognese::Metadata.new(string: string, regenerate: true)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bolognese
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.27
4
+ version: 0.9.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
@@ -590,6 +590,7 @@ files:
590
590
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/not_found_error.yml
591
591
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/posted_content.yml
592
592
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/BlogPosting.yml
593
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_test_system.yml
593
594
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_not_found.yml
594
595
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Dataset.yml
595
596
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding.yml