bolognese 0.9.27 → 0.9.28

Sign up to get free protection for your applications and to get access to all the features.
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