cirneco 0.9.9 → 0.9.10

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: 977e01bece7a6b13b9ab899296595d456f327155
4
- data.tar.gz: 1866e6bd450420a19388117cd633ebe77d28db89
3
+ metadata.gz: ba54856720e148fbd651935fb11b291f3a847587
4
+ data.tar.gz: e8d37feb201d2090e0036e03ad7cb5ee2af6c287
5
5
  SHA512:
6
- metadata.gz: e27bdd14dfa0d81ac5c5e5c670c0772c19a7f61815f9422073200ce830ec123a989fcf99591b7654f0ea298e0f517c9bb1572bedf993730c85ce6c88e249f743
7
- data.tar.gz: e2b994a8959c40c627d4c6d8ab7658c1fd0460b193a3d9b39cef00b68f5777815b1e3b50b8690099bc156ad60617e2e5a251a84adb64592997b3170e946ac832
6
+ metadata.gz: 6ba7f30ecb5b6ac6984ffa21436cdd19a3a26ef68dcd54a0053cb03f98d54a128a600a7141e815c492b1696a66c32826a3fdf0d9850c0ab8aa50a2a2017a2c2b
7
+ data.tar.gz: 3285770a11b8065c8033f24a8eba5e9e542c7f46e88db948384fbd62257e42f3f2fa637de12ceb90ec3c9e62185a666b98927d6863025761d8e51c20df1665ef
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cirneco (0.9.9)
4
+ cirneco (0.9.10)
5
5
  activesupport (~> 4.2, >= 4.2.5)
6
6
  base32-crockford-checksum (~> 0.2.2)
7
7
  bergamasco (~> 0.3)
@@ -22,7 +22,7 @@ GEM
22
22
  tzinfo (~> 1.1)
23
23
  addressable (2.3.8)
24
24
  base32-crockford-checksum (0.2.3)
25
- bergamasco (0.3.10)
25
+ bergamasco (0.3.11)
26
26
  activesupport (~> 4.2, >= 4.2.5)
27
27
  addressable (~> 2.3.8)
28
28
  builder (~> 3.2, >= 3.2.2)
@@ -108,12 +108,12 @@ module Cirneco
108
108
  filename, build_path, source_path = filepath_from_url(url, options)
109
109
 
110
110
  metadata = generate_metadata_for_work(build_path, options)
111
- return "DOI #{metadata["doi"]} not changed for #{filename}" if metadata["doi"] && metadata["date_issued"]
111
+ return "DOI #{metadata["doi"]} not changed for #{filename}" if metadata["doi"] && metadata["date_updated"] == metadata["date_issued"]
112
112
 
113
113
  response = post_metadata_for_work(metadata, options)
114
114
  return "Errors for DOI #{metadata["doi"]}: #{response.body['errors'].first['title']}\n" if response.body['errors'].present?
115
115
 
116
- new_metadata = Bergamasco::Markdown.update_file(source_path, "doi" => metadata["doi"], "published" => true)
116
+ new_metadata = Bergamasco::Markdown.update_file(source_path, "doi" => metadata["doi"], "date" => metadata["date_updated"])
117
117
  "DOI #{new_metadata["doi"]} minted for #{filename}"
118
118
  end
119
119
 
@@ -122,12 +122,12 @@ module Cirneco
122
122
  filename, build_path, source_path = filepath_from_url(url, options)
123
123
 
124
124
  metadata = generate_metadata_for_work(build_path, options)
125
- return "DOI #{metadata["doi"]} not changed for #{filename}" if metadata["doi"] && metadata["date_issued"]
125
+ return "DOI #{metadata["doi"]} not changed for #{filename}" if metadata["doi"] && metadata["date_updated"] == metadata["date_issued"]
126
126
 
127
127
  response = post_metadata_for_work(metadata, options)
128
128
  return "Errors for DOI #{metadata["doi"]}: #{response.body['errors'].first['title']}\n" if response.body['errors'].present?
129
129
 
130
- new_metadata = Bergamasco::Markdown.update_file(source_path, "doi" => metadata["doi"], "published" => false)
130
+ new_metadata = Bergamasco::Markdown.update_file(source_path, "doi" => metadata["doi"], "date" => metadata["date_updated"])
131
131
  "DOI #{new_metadata["doi"]} minted and hidden for #{filename}"
132
132
  end
133
133
 
@@ -183,7 +183,7 @@ module Cirneco
183
183
  return { "error" => "Error: no schema.org metadata found" } unless json.present?
184
184
 
185
185
  metadata = ActiveSupport::JSON.decode(json.text)
186
-
186
+ return { "error" => "Error: blog post not published" } if metadata["published"].to_s == "false"
187
187
  return { "error" => "Error: required metadata missing" } unless ["name", "author", "publisher", "datePublished", "@type"].all? { |k| metadata.key? k }
188
188
 
189
189
  # required metadata
@@ -197,7 +197,7 @@ module Cirneco
197
197
  metadata["creators"] = format_authors(metadata["author"])
198
198
 
199
199
  metadata["publisher"] = metadata.fetch("publisher", {}).fetch("name", nil)
200
- metadata["publication_year"] = metadata.fetch("datePublished", "")[0..3].to_i
200
+ metadata["publication_year"] = metadata["datePublished"][0..3].to_i
201
201
 
202
202
  resource_type_general = case metadata["@type"]
203
203
  when "Dataset" then "Dataset"
@@ -309,7 +309,7 @@ module Cirneco
309
309
  return { "error" => "Error: no schema.org metadata found" } unless json.present?
310
310
 
311
311
  metadata = ActiveSupport::JSON.decode(json.text)
312
-
312
+ return { "error" => "Error: blog post not published" } if metadata["published"].to_s == "false"
313
313
  return { "error" => "Error: required metadata missing" } unless ["name", "author", "publisher", "datePublished", "@type"].all? { |k| metadata.key? k }
314
314
 
315
315
  # required metadata
@@ -1,3 +1,3 @@
1
1
  module Cirneco
2
- VERSION = "0.9.9"
2
+ VERSION = "0.9.10"
3
3
  end
@@ -75,6 +75,11 @@ describe Cirneco::Work, vcr: true, :order => :defined do
75
75
  expect(response.body["data"]).to eq("http://www.datacite.org")
76
76
  end
77
77
 
78
+ it 'should get doi not found' do
79
+ response = subject.get_doi("10.5072/0000-03V", options)
80
+ expect(response.status).to eq(404)
81
+ end
82
+
78
83
  it 'username missing' do
79
84
  options = { username: username, sandbox: true }
80
85
  response = subject.get_doi(doi, options)
@@ -2,7 +2,7 @@
2
2
  layout: post
3
3
  title: Cool DOI's
4
4
  author: mfenner
5
- date: 2016-12-15
5
+ date: '2016-12-15'
6
6
  tags:
7
7
  - doi
8
8
  - featured
@@ -6,7 +6,7 @@ author:
6
6
  - lrueda
7
7
  - kgarza
8
8
  - mfenner
9
- date: 2015-08-03
9
+ date: '2015-08-03'
10
10
  accession_number: MS-25-1785
11
11
  doi: 10.5072/0000-00SS
12
12
  published: false
@@ -0,0 +1,44 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://mds-sandbox.datacite.org/doi/10.5072/0000-03V
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
+ Authorization:
15
+ - Basic <MDS_TOKEN>
16
+ response:
17
+ status:
18
+ code: 404
19
+ message: ''
20
+ headers:
21
+ Server:
22
+ - openresty/1.11.2.1
23
+ Date:
24
+ - Tue, 03 Jan 2017 21:51:50 GMT
25
+ Content-Length:
26
+ - '13'
27
+ Connection:
28
+ - keep-alive
29
+ Pragma:
30
+ - no-cache
31
+ Expires:
32
+ - Thu, 01 Jan 1970 00:00:00 GMT
33
+ Cache-Control:
34
+ - no-cache, no-store
35
+ Access-Control-Allow-Origin:
36
+ - "*"
37
+ Access-Control-Allow-Methods:
38
+ - GET, POST, OPTIONS
39
+ body:
40
+ encoding: UTF-8
41
+ string: DOI not found
42
+ http_version:
43
+ recorded_at: Tue, 03 Jan 2017 21:51:50 GMT
44
+ recorded_with: VCR 3.0.3
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cirneco
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.9
4
+ version: 0.9.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-03 00:00:00.000000000 Z
11
+ date: 2017-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma
@@ -418,6 +418,7 @@ files:
418
418
  - spec/fixtures/vcr_cassettes/Cirneco_Doi/mint_and_hide_DOIs/mints_dois_for_list_of_urls.yml
419
419
  - spec/fixtures/vcr_cassettes/Cirneco_Work/DOI_API/get/should_get_all_dois.yml
420
420
  - spec/fixtures/vcr_cassettes/Cirneco_Work/DOI_API/get/should_get_doi.yml
421
+ - spec/fixtures/vcr_cassettes/Cirneco_Work/DOI_API/get/should_get_doi_not_found.yml
421
422
  - spec/fixtures/vcr_cassettes/Cirneco_Work/DOI_API/put/should_put_doi.yml
422
423
  - spec/fixtures/vcr_cassettes/Cirneco_Work/Media_API/get/should_get_media.yml
423
424
  - spec/fixtures/vcr_cassettes/Cirneco_Work/Media_API/post/should_post_media.yml