briard 2.1 → 2.2

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
  SHA256:
3
- metadata.gz: f0eaabf0817983f43847aef742367e1a768c3887931f69d093e7fd679523c6c8
4
- data.tar.gz: 8179d2fc9aae83af0df2f2b0033752d348184d55548168e32ec013c7db57be0f
3
+ metadata.gz: 277672725deb5879eab67ba97ad3790a8af6444e3ff1d16f95c174f3f6229c8d
4
+ data.tar.gz: ea82a2e0a0cb6e1ecbdc85fae4502111dfc0b2c6a6e7a87ad8af0dea89def161
5
5
  SHA512:
6
- metadata.gz: bdb837a28824c3a70d683a1d56bfd84a40b0334b742cd591020c64fa25cc45a64f429dfafe0309c1f0e6bf0387082e04308b16b9b6c93153c168d787e6ced763
7
- data.tar.gz: 4a6e6d945558ca4b70a57d667e97c0994c1b25ea6f546f9f4caf5914052adaef41f3fc028757eb5cc647bc19f6d94ceedb951bdce75547853c8f02244781c27c
6
+ metadata.gz: d6172b62c3f60e047b0c11204d452919f7ce4a6348f50ecc8dafd2117c920600b06c2508d0af018d0aa88b8c96d0138978f0efdd8d8ce9ad621a91e4db296118
7
+ data.tar.gz: 881202c95ffad90050b687a581ffc87861397c7d861e47b898e609589243b7d3c773a8597004f54794899a8a917ea10827bf2350d64e78513a21fb39a496c916
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.1](https://github.com/front-matter/briard/tree/2.1) (2021-12-07)
4
+
5
+ [Full Changelog](https://github.com/front-matter/briard/compare/2.0.2...2.1)
6
+
3
7
  ## [2.0.2](https://github.com/front-matter/briard/tree/2.0.2) (2021-12-06)
4
8
 
5
9
  [Full Changelog](https://github.com/front-matter/briard/compare/2.0.1...2.0.2)
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- briard (2.1)
4
+ briard (2.2)
5
5
  activesupport (>= 4.2.5)
6
6
  benchmark_methods (~> 0.7)
7
7
  bibtex-ruby (>= 5.1.0)
data/README.md CHANGED
@@ -88,7 +88,7 @@ Briard reads and/or writes these metadata formats:
88
88
  <td>citation file format (cff)</td>
89
89
  <td>application/vnd.cff+yaml</td>
90
90
  <td>Yes</td>
91
- <td>No</td>
91
+ <td>Yes</td>
92
92
  </tr>
93
93
  <tr>
94
94
  <td><a href='https://jats.nlm.nih.gov/'>JATS</a></td>
@@ -21,7 +21,7 @@ require_relative 'readers/schema_org_reader'
21
21
  require_relative 'writers/bibtex_writer'
22
22
  require_relative 'writers/citation_writer'
23
23
  require_relative 'writers/citeproc_writer'
24
- # require_relative 'writers/cff_writer'
24
+ require_relative 'writers/cff_writer'
25
25
  require_relative 'writers/codemeta_writer'
26
26
  require_relative 'writers/crosscite_writer'
27
27
  require_relative 'writers/crossref_writer'
@@ -58,7 +58,7 @@ module Briard
58
58
  include Briard::Writers::BibtexWriter
59
59
  include Briard::Writers::CitationWriter
60
60
  include Briard::Writers::CiteprocWriter
61
- # include Briard::Writers::CffWriter
61
+ include Briard::Writers::CffWriter
62
62
  include Briard::Writers::CodemetaWriter
63
63
  include Briard::Writers::CrossciteWriter
64
64
  include Briard::Writers::CrossrefWriter
data/lib/briard/utils.rb CHANGED
@@ -506,10 +506,12 @@ module Briard
506
506
  "orcid"
507
507
  elsif /\A(http|https):\/(\/)?github\.com\/(.+)\/package.json\z/.match(id)
508
508
  "npm"
509
- elsif /\A(http|https):\/(\/)?github\.com\/(.+)\/CITATION.cff\z/.match(id)
510
- "cff"
511
509
  elsif /\A(http|https):\/(\/)?github\.com\/(.+)\/codemeta.json\z/.match(id)
512
510
  "codemeta"
511
+ elsif /\A(http|https):\/(\/)?github\.com\/(.+)\/CITATION.cff\z/.match(id)
512
+ "cff"
513
+ elsif /\A(http|https):\/(\/)?github\.com\/(.+)\z/.match(id)
514
+ "cff"
513
515
  else
514
516
  "schema_org"
515
517
  end
@@ -1,3 +1,3 @@
1
1
  module Briard
2
- VERSION = "2.1"
2
+ VERSION = "2.2"
3
3
  end
@@ -1,29 +1,27 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # module Briard
4
- # module Writers
5
- # module CffWriter
6
- # def cff
7
- # return nil unless valid? || show_errors
3
+ module Briard
4
+ module Writers
5
+ module CffWriter
6
+ def cff
7
+ return nil unless valid? || show_errors
8
+
9
+ # only use CFF for software
10
+ return nil unless types["resourceTypeGeneral"] == "Software"
8
11
 
9
- # hsh = {
10
- # "@context" => id.present? ? "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld" : nil,
11
- # "@type" => types.present? ? types["schemaOrg"] : nil,
12
- # "@id" => normalize_doi(doi),
13
- # "identifier" => to_schema_org_identifiers(identifiers),
14
- # "codeRepository" => url,
15
- # "name" => parse_attributes(titles, content: "title", first: true),
16
- # "authors" => creators,
17
- # "description" => parse_attributes(descriptions, content: "description", first: true),
18
- # "version" => version_info,
19
- # "tags" => subjects.present? ? Array.wrap(subjects).map { |k| parse_attributes(k, content: "subject", first: true) } : nil,
20
- # "datePublished" => get_date(dates, "Issued") || publication_year,
21
- # "dateModified" => get_date(dates, "Updated"),
22
- # "publisher" => publisher,
23
- # "license" => Array.wrap(rights_list).map { |l| l["rightsUri"] }.compact.unwrap,
24
- # }.compact
25
- # JSON.pretty_generate hsh.presence
26
- # end
27
- # end
28
- # end
29
- # end
12
+ hsh = {
13
+ "doi" => normalize_doi(doi),
14
+ "repository-code" => url,
15
+ "title" => parse_attributes(titles, content: "title", first: true),
16
+ "authors" => creators,
17
+ "abstract" => parse_attributes(descriptions, content: "description", first: true),
18
+ "version" => version_info,
19
+ "keywords" => subjects.present? ? Array.wrap(subjects).map { |k| parse_attributes(k, content: "subject", first: true) } : nil,
20
+ "date-released" => get_date(dates, "Issued") || publication_year,
21
+ "license" => Array.wrap(rights_list).map { |l| l["rightsUri"] }.compact.unwrap,
22
+ }.compact
23
+ hsh.to_yaml
24
+ end
25
+ end
26
+ end
27
+ end
@@ -44,6 +44,11 @@ describe Briard::CLI do
44
44
  expect(subject.find_from_format_by_id(id)).to eq("cff")
45
45
  end
46
46
 
47
+ it "cff repository url" do
48
+ id = "https://github.com/citation-file-format/ruby-cff"
49
+ expect(subject.find_from_format_by_id(id)).to eq("cff")
50
+ end
51
+
47
52
  it "codemeta" do
48
53
  id = "https://github.com/datacite/maremma/blob/master/codemeta.json"
49
54
  expect(subject.find_from_format_by_id(id)).to eq("codemeta")
@@ -0,0 +1,75 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://raw.githubusercontent.com/citation-file-format/ruby-cff/main/CITATION.cff
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.9.6; mailto:info@front-matter.io)
12
+ Accept:
13
+ - application/json;charset=UTF-8
14
+ Accept-Encoding:
15
+ - gzip,deflate
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Connection:
22
+ - keep-alive
23
+ Content-Length:
24
+ - '1100'
25
+ Cache-Control:
26
+ - max-age=300
27
+ Content-Security-Policy:
28
+ - default-src 'none'; style-src 'unsafe-inline'; sandbox
29
+ Content-Type:
30
+ - text/plain; charset=utf-8
31
+ Etag:
32
+ - W/"0c65d88dd50bd96382850237735a8e2d6c0826d4497c8aafd6c28a2bacdb4127"
33
+ Strict-Transport-Security:
34
+ - max-age=31536000
35
+ X-Content-Type-Options:
36
+ - nosniff
37
+ X-Frame-Options:
38
+ - deny
39
+ X-Xss-Protection:
40
+ - 1; mode=block
41
+ X-Github-Request-Id:
42
+ - 5F70:4B14:BA3342:CA71F6:61AF4743
43
+ Content-Encoding:
44
+ - gzip
45
+ Accept-Ranges:
46
+ - bytes
47
+ Date:
48
+ - Tue, 07 Dec 2021 11:36:35 GMT
49
+ Via:
50
+ - 1.1 varnish
51
+ X-Served-By:
52
+ - cache-hhn4051-HHN
53
+ X-Cache:
54
+ - MISS
55
+ X-Cache-Hits:
56
+ - '0'
57
+ X-Timer:
58
+ - S1638876995.131742,VS0,VE231
59
+ Vary:
60
+ - Authorization,Accept-Encoding,Origin
61
+ Access-Control-Allow-Origin:
62
+ - "*"
63
+ X-Fastly-Request-Id:
64
+ - 6d84e483d6e3bfe288100e18fcf8daf4bab75805
65
+ Expires:
66
+ - Tue, 07 Dec 2021 11:41:35 GMT
67
+ Source-Age:
68
+ - '0'
69
+ body:
70
+ encoding: ASCII-8BIT
71
+ string: !binary |-
72
+ H4sIAAAAAAAAA5VW247bNhB911cMkJcWCGVJ67UkP3Xj7Xa3uRXZDYo80tLIIkyLAknZcf4mj/2O/FiHlC9bW0lcw4ZkcjjXwznzAp5qYWD28HTz9PD+XVhUFVRCImy4gUIjt1jCfAu6m2+Z2/xlDVGYh9GvYfAC/sDVFGprWzMdjZzIAlcmVHoxci8jkieh2d3dUagQlluhGuaMsErpFbfhQti6m4dCjYKAzrA1akMyU4jDJIyCFRrDFziFhwq2qoPO4NEf0bg1DRully+hlchpl6wgCEuSolmArREqJaXauH8rtLzklgdWWElKP5Am5yO8EXPN9Tbgc2M1L+y0T43sl6HVai1KNMD7I6KxqCteIFgFK96ItpOULZjtIoQ7l8Y7H6FPqQl4Z2ulzTRgUPGVkFvWcApuCvdcNLQPsBBrbParH9QctaVVpQtRHnPo//osR/Rh9EtYfn2VsTSPcxLnFZkT3gkXA8LHRviU2i2oCt7ypqjRkPcv4eNr8sWZ6wX7XAwFcItrlKolLcESt5Ts0ofhykAPAkopLL0YVdkN174CXomTQYNcF/Vh87mc6Yyl4PmcPLZO1aE87KCjB2SPFVqmWgUHhHgsBqUSBJYovE6yePQFG1WqMI6zcZSmASlDptEDg5KYREnMoozFWSBFgY2h0G9aThlhDmsaW0WJUnrLuLai8jj4McKfHSlUiUfxHawLtRqE/WiPYdJQocamQJ9Tu21JySFZADugDtXFVXsPKoBTWN3qziy90AmyHi22NW/8xk/BdcXGeXLN0mScDdh4bDlfmnMTf3ZaC84buA8vM5OwNJqM2Tia5ANmZnWHcK+axbmldyjkpSayLJ2wdBJNBkwcLuH3ruH/voinFl7xJeqBVLnHpfqTSZawSZ4kQ/qlUztQ7taBS19qIk7oLZ7kmT+AKy4k4bHXEc69jd8WbtVBe8CNv4WUYlFTyx7w5feFuhB3MUuvxwmLkmyoWn99+0fjF/bYfftKz3M7t5y69aUAj9JsTEmNcn9gg3O6z88uctmaGqVQR6IacOi1atSaS7U+9+VG4mfelJdWIGbXSZ6zqyR3RSbOaagRCdzf8b4/UMvz2shkh+fNj6KKx304xFmFFu2RDgpFlWypp79/cF3V82NB/IiFby+07Vqy40ouJexarXHU4SSH2lB4sWPXcRrnV+mwYztTNHE8d2232g8DP/PiSE7Oo0EGcRuOQ84EjF86pzBf6xMFn27evvmv+AmTub1z5vM2e7Kkzn0YNM7GL5oySGUrSSFY/LwbIGBD+IO6o2mDAQGKxo6ipqZF9EacOZdHn2k66Z31sVEi9x6EMCOOotTv6RwK7qQL2dEyZXblJip6Cg0HYhNkmoYciRYUbdGhZaM2UNOPlgulNUFHbvuxqz97tOeHKPq6qlETKQjKxdGvH9XyO8ztb+mBu2cz9uoTGxN1A5zMjf8CsnKrBdwKAAA=
73
+ http_version:
74
+ recorded_at: Tue, 07 Dec 2021 11:36:35 GMT
75
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,61 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.datacite.org/dois/10.5281/zenodo.10164?include=media,client
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.9.6; mailto:info@front-matter.io)
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ Accept-Encoding:
15
+ - gzip,deflate
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Tue, 07 Dec 2021 11:05:59 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Connection:
26
+ - keep-alive
27
+ Status:
28
+ - 200 OK
29
+ X-Anonymous-Consumer:
30
+ - 'true'
31
+ Cache-Control:
32
+ - max-age=0, private, must-revalidate
33
+ Vary:
34
+ - Accept-Encoding
35
+ Content-Encoding:
36
+ - gzip
37
+ Etag:
38
+ - W/"947aba8bfca9218fef3f4988fa5bdd3c"
39
+ X-Runtime:
40
+ - '0.302320'
41
+ X-Request-Id:
42
+ - 4cb01d85-ff8d-4234-897b-2287abb71e06
43
+ X-Powered-By:
44
+ - Phusion Passenger(R) 6.0.12
45
+ Server:
46
+ - nginx/1.18.0 + Phusion Passenger(R) 6.0.12
47
+ Access-Control-Allow-Credentials:
48
+ - 'true'
49
+ Access-Control-Allow-Methods:
50
+ - GET, POST, PUT, PATCH, DELETE, OPTIONS
51
+ Access-Control-Allow-Headers:
52
+ - Accept,Access-Control-Allow-Origin,Access-Control-Expose-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Headers,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With
53
+ Access-Control-Expose-Headers:
54
+ - Authorization
55
+ body:
56
+ encoding: ASCII-8BIT
57
+ string: !binary |-
58
+ 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
59
+ http_version:
60
+ recorded_at: Tue, 07 Dec 2021 11:05:59 GMT
61
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,61 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.datacite.org/dois/10.5281/zenodo.10164?include=media,client
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.9.6; mailto:info@front-matter.io)
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ Accept-Encoding:
15
+ - gzip,deflate
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Tue, 07 Dec 2021 11:17:12 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Connection:
26
+ - keep-alive
27
+ Status:
28
+ - 200 OK
29
+ X-Anonymous-Consumer:
30
+ - 'true'
31
+ Cache-Control:
32
+ - max-age=0, private, must-revalidate
33
+ Vary:
34
+ - Accept-Encoding
35
+ Content-Encoding:
36
+ - gzip
37
+ Etag:
38
+ - W/"070d2decac0427635f0901582d71fbc5"
39
+ X-Runtime:
40
+ - '0.253152'
41
+ X-Request-Id:
42
+ - 7294dd2f-47d7-41c1-b27a-dcec91214345
43
+ X-Powered-By:
44
+ - Phusion Passenger(R) 6.0.12
45
+ Server:
46
+ - nginx/1.18.0 + Phusion Passenger(R) 6.0.12
47
+ Access-Control-Allow-Credentials:
48
+ - 'true'
49
+ Access-Control-Allow-Methods:
50
+ - GET, POST, PUT, PATCH, DELETE, OPTIONS
51
+ Access-Control-Allow-Headers:
52
+ - Accept,Access-Control-Allow-Origin,Access-Control-Expose-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Headers,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With
53
+ Access-Control-Expose-Headers:
54
+ - Authorization
55
+ body:
56
+ encoding: ASCII-8BIT
57
+ string: !binary |-
58
+ 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
59
+ http_version:
60
+ recorded_at: Tue, 07 Dec 2021 11:17:12 GMT
61
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,61 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.datacite.org/dois/10.5281/zenodo.15497?include=media,client
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.9.6; mailto:info@front-matter.io)
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ Accept-Encoding:
15
+ - gzip,deflate
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Tue, 07 Dec 2021 11:17:11 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Connection:
26
+ - keep-alive
27
+ Status:
28
+ - 200 OK
29
+ X-Anonymous-Consumer:
30
+ - 'true'
31
+ Cache-Control:
32
+ - max-age=0, private, must-revalidate
33
+ Vary:
34
+ - Accept-Encoding
35
+ Content-Encoding:
36
+ - gzip
37
+ Etag:
38
+ - W/"1efc7894df6207f4acc17d2ba66e6d48"
39
+ X-Runtime:
40
+ - '0.809856'
41
+ X-Request-Id:
42
+ - 4055a210-ae16-4e1f-a15a-08331dd796e2
43
+ X-Powered-By:
44
+ - Phusion Passenger(R) 6.0.12
45
+ Server:
46
+ - nginx/1.18.0 + Phusion Passenger(R) 6.0.12
47
+ Access-Control-Allow-Credentials:
48
+ - 'true'
49
+ Access-Control-Allow-Methods:
50
+ - GET, POST, PUT, PATCH, DELETE, OPTIONS
51
+ Access-Control-Allow-Headers:
52
+ - Accept,Access-Control-Allow-Origin,Access-Control-Expose-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Headers,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With
53
+ Access-Control-Expose-Headers:
54
+ - Authorization
55
+ body:
56
+ encoding: ASCII-8BIT
57
+ string: !binary |-
58
+ H4sIALdCr2EAA9wZ23LiyPVXVDwltTYWwtjGbwbbIAYw5o5296HVaouG1qXUEiCm/EX5jPxYzmlJXGzPZjapSip5mBp0+tyv3cffSw6JSen+e4k7pftSRS/XjLvK1Z75gROUK7Xr+m3pohSnIYNTJ+ASvkgcR9xOYiaRDoA/Jgwj9sZ3x3MAyeQtA31A5Q7zY/7GWQRsf/0dxIiYRT6JmfnxhEaMxIH6+l7yiYe6tbgvL7RZAGpFwA2h40zrAdAFPhEAdfmG+f2M4ID6Rjwu0v6RDZoIOgpOYh74IKRk+jLmcZLE2iYIIu0b6HWpMV8bxRER3HflWyo5JRfat4nWZQkIudCqul45fDSYcPnf/1b6PdPsg0XvFwczHKa1oiCI2YU2TGzm/5QpBeaZJQdO/01z2iwVSNAmvs9+ypYC88yWjM1/3hAAA3/BskxTP0GbEYkFkffaiHuJULpoD74D/4gAcVIbB4Gwg532DCp1iWSRNgoZjaNA0iBMFW7fi7SnXcgi7oFEWUJJYWILLpeQk/clS9UGGEwDPybcR+D39xyHKpkLRgBo6JUa1pS9AglFeQCNKtCgKBio8dwG/AX8kexSNy4rd6XsNA+KKWXCHKWOIL6bEBegfiJE1gNUwUfQBO5LzZfeAGhtbscMq9njkqK+PGZhFFCAkCjmVGAsJV0yj7xELjoveIu3JGKjIIkoawYOIkRMqk/UosXAWkiLI2rpHTHA08w5D9D3DAzOOKg/SsJQMHTqOCh9QQZIyzgO5f3VlcvjZWKXaeBdbVUvcKH2r6QK7lUcMXa1qZT1sv4Vm1zeZNhVvpJ8z3JXvwWRR4pIbEBPlaqZCyPuLmPZ5TLOlFefwKZnjrUup8yXyhkKPIn4ia5BCIfKReUgcq9EhiyvgLLwLzunkKGzO8c9sD7zhsfjLw5GiiPGYPA4L2FBH5R9AVW0B0qZlB+U5f5bcM+Sy4iFwZWEiAMzKpXuOT76ymGSRjzEqOUpeQRgCH0ecyI0cDmD2tGCNy1eMi0LizZI4yWUW0joGlJTA2erU1KUHoHakseyxHOhKlCeViA7Vl5ZVSnycAKaIEhRXmiSMQ19Ca48Zkc5zxkeFHlSOjMoT4sHW0IDorGy12VBN8hKtkiRxHegOQ3ZG4uYT4vM2XmY9IPH+rU927qON02pITb2Svd7o+ttJ20I2+tvrJZIrL3uO/Oh1x27/mB//W3Q7ghq1CvU6wuzvYztVm3/4i/3ZKxz0h7q9DHYdKtO1Ulr1V5a21CPbnqrh21vVF+MJ7vxwlgKe/YUk1lt77Sek4Ux4QWfwagTOO3h9oXfgexnfTHrh05rktjVjt+t9lekNY0Xo3pkzTuJNdvG/abpsnY/fPHzs8luszCedTKrJ3+eV+OAT41+YM0qy643XIKOKzIfiq5XT620Hlvz4bJrxIJ6NWE3db27etrYsynwR9ynBPRZm6vrb2bz4Y7MhsL2h6HlCUF5I7Ra08RpCY/Mpum0LbYW+Gz4VO8A/q7XvK70Vu6uWw3B9/W1nV7v+uPXWn+/3ZzxyXkvqh2xmA831O/90uQP7hksw0GYO2j1U2v2rIPdL4tZRQzWTmj7PWk+OxuIK/Dbbg5069rSnk0Kfq75uPPJ3BJ2Dp9C3J3WNB0062fwE3wPZIR2W5zKuusaFuAJySaf8JeWZ4V2S4DvMP9qHdvv6+DvijN/hbysb8BvXYxRdwQ5yRtjp91Z2piX1b7H5v1wYTxJ8ymemk874aBOfOv29phvjZ41nxrW7BrOO8JuOeH2RoIuzx74UZJZnidukPmpWV9Rbwp61NMD7OA781TnA97Ye46tcW1tjRptCrpCfoFfO5WFN01O+WV4pzFxQqi5JKcfOTPQD+JgGQL0rWW+y3XAuFqAR2a72hfy/t99a1pzITM5y6UNNfcn/GouZrXEGv+0XwtZ/5s+fTyp47wnDNpD6Hk7Qfe5jx53qKsEW8eAJxfz3o353A/t+RR+D0PbuHZfZ7W1+QR9GfwCM2FvPg83trHjdtV1h9ADQe8lNaYp0G2tWV+HPNwvjPqWjRoN23t1x14FcKbXFPoEAX9D39qDrrncrHd1q2d63dH2lIOP9gR7i8j7H/S9M7iycbeFWgFf9DP/CwH2mr/AfIFeecBfZbbULMivgm69wF539IP6NlvYs6cTNm8ImBcdWu1XrNkrH6zMbW88iXuPZtwbuxADxMvyAGw55XUHMdjb1Wm6MDI+5sl8VD1+4oA9cD7b1k0BM9UfVhfzjjD5Xcav9Syxp9res25NxBryFOJshZBD+2Ot/AjHdCFOOuYb6jQ6nRNiWKOtSd30ga5p/qJmc7t3003rN0APM/Eun4WQMwbMtubdYd78kGc+eyAn/1jnxx3U9g59uz6jP5lV4DfMOWE9ndvzNbxTxGg6WW85+thuZfVQzNHRvD925o2tDXMd6aatOz7wlrrTbuzVHcAQOoH86MK9xh7VqxAztNHHewjcB0BXyOu0Dvk8Fd3qYtddPSQ9qKkf6Fnkwh/aCXel0DKWOtV3Ia2+ntgufIjH3izOK9PR6PP9aQM1lBS5lN8/MPdBTl+Arv3RFHJ1XelMm41eAUedyMyBu0zvn8ub1Tx7HwpnVEmteQPkAo/ZM95RVsBfyX+d9VfWvL83V7UBfkNvWEGu7ynWZ8636D/F9xhq1nnMcgXuPHvoSyFtq5o8yWmoIaOfknlDxdH88F3E9XXW2WMPXVTBVm5J5zHedjxHf9FFAj0lhLpSOQO1voe5uLE40LcmLoV7IOQI9K9GzWktN9CLt3AHjBYzB+rewj6t8GBGLOG+sifzHv5em+3zfmhhz2vlPa/9sefBnJg/3NpeZ08f4cHebsC9UKj8o+l11i/bwwD0WttGvwL3RPBtlrfdZmNvzSZ4X9q+GDVOqw+3J/HP7maeuj8lx9wVm2Ou3nl2+/W2W33wrOrrLfYliBPMBLHNZlNRq+d+xb6l8nbeBxmdFfZkeFgkkTh50OXrMnzSRYwGkXNVbM7wvQ8PlwmiZw9Nj8UE93rT4v1ZKx7hB0gpf9wgGj7aFeMM52rNIp+Jy2t8WqpHZ8GXywca8w18x1HC4DTO1glv3HeILbKnPJHHF++Gs20zSHx48OrZl3yBR/GY4+NSbSaCrS8C4hyRCsgHxKh4LeWYFbVrUM+qI20B+UAbkig+IuHXy9uJVplLPgFOcdTGkTlnm5Nx5eb+unKvG2Vd1y1lugtPe9Dya7xqgVcsego0DHXoHPgb+qV+e2ncjnX9Xq/fG/WMrliCoHlLHqpVDBWcoYbfz7e4FOJX3hcrpHx5m+HCGxzXSFGw4Y5aKn2mPJIUaBmRxxxOPlH88cY4o3l/P4mfPLLAVeExZh/gGKavYC9vH4B5uD7iHqJ4BkdVuE9F4qC3f/0Zh31ceOerzcOKTqaeHWClNp+G/bL11H95fAFwWuznqier7GJhyySc0mVZGy0J5svFhy1IxkWzEy6cbKsRhCzCLZ5GcMERCqag3PeDDcGS1CSLNpwyLV6SWGM+lqPUolwQ+OJCkxQNghSF308TDaKrloY5I7VJVYHQ4kCTqFe2TlkGW4qbGC8RMXc4cAkF90mUHrjjDziU2l/Qz4rqZFEp/5rphAz9INYwiMVah+1AHe67p/KJ0IJIy1ealzaIdjRcKUkeBxEHo3Lag3QaeF6CayMmy79Fv/m58/5dH9wjL+hmXKS5O1CqCEDbmHCBakiPCPHZDdyHKG2hcrQNAY3jFHHzxaCWZR/aHLNdDBqF0FscaAcMdSJwFFxoWHbwn9LKIy6GnUaBhP9A3htnmBUoH62hTFkNkQkFSVFJHn3WCVm5LNagkznQ7h3NTjWPrJUep84s8LEs7UOWxczF7ENUDz+DY+QwNJH6BVnBVPLkCy4NFPcpRkzwdea9pySCRCa+1oSYcYkFWj5xM1FrQiUzYgnknPK780m7cul0P/1rifm4wc8KNt/BHTImxeIKPIJ/2Lkv4TKS8IiVVcnT5cVxrKoOXs06xWHqOgFXkxHaXOX2pnJzNay+DmpVwEVOToA1XsxG6WdL+h/O7dKHQVK91CuXBgwI416/vb++KwbEx2lwc2ncIJJhHKYB9BTceeKC9ZHIpQ2KOCcXgPNB/dXo+JdGQPbnvLMWfj4GTglz1Hdsur+//wMAAP//AwCuI0ZAaRwAAA==
59
+ http_version:
60
+ recorded_at: Tue, 07 Dec 2021 11:17:11 GMT
61
+ recorded_with: VCR 3.0.3
@@ -132,5 +132,37 @@ describe Briard::Metadata, vcr: true do
132
132
  "rightsUri"=>"http://www.apache.org/licenses/LICENSE-2.0",
133
133
  "schemeUri"=>"https://spdx.org/licenses/"}])
134
134
  end
135
+
136
+ it "ruby-cff repository url" do
137
+ input = "https://github.com/citation-file-format/ruby-cff"
138
+ subject = Briard::Metadata.new(input: input)
139
+ expect(subject.valid?).to be true
140
+ expect(subject.id).to eq("https://doi.org/10.5281/zenodo.1184077")
141
+ expect(subject.url).to eq("https://github.com/citation-file-format/ruby-cff")
142
+ expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article-journal", "resourceTypeGeneral"=>"Software", "ris"=>"COMP", "schemaOrg"=>"SoftwareSourceCode")
143
+ expect(subject.creators).to eq([{"affiliation"=>[{"name"=>"The University of Manchester, UK"}], "familyName"=>"Haines", "givenName"=>"Robert", "name"=>"Haines, Robert", "nameIdentifiers"=>
144
+ [{"nameIdentifier"=>"https://orcid.org/0000-0002-9538-7919",
145
+ "nameIdentifierScheme"=>"ORCID",
146
+ "schemeUri"=>"https://orcid.org"}], "nameType"=>"Personal"}, {"name"=>"The Ruby Citation File Format Developers", "nameType"=>"Organizational"}])
147
+ expect(subject.titles).to eq([{"title"=>"Ruby CFF Library"}])
148
+ expect(subject.descriptions.first["description"]).to start_with("This library provides a Ruby interface to manipulate Citation File Format files")
149
+ expect(subject.subjects).to eq([{"subject"=>"ruby"},
150
+ {"subject"=>"credit"},
151
+ {"subject"=>"software citation"},
152
+ {"subject"=>"research software"},
153
+ {"subject"=>"software sustainability"},
154
+ {"subject"=>"metadata"},
155
+ {"subject"=>"citation file format"},
156
+ {"subject"=>"CFF"}])
157
+ expect(subject.version_info).to eq("0.9.0")
158
+ expect(subject.dates).to eq([{"date"=>"2021-08-18", "dateType"=>"Issued"}])
159
+ expect(subject.publication_year).to eq("2021")
160
+ expect(subject.publisher).to eq("GitHub")
161
+ expect(subject.rights_list).to eq([{"rights"=>"Apache License 2.0",
162
+ "rightsIdentifier"=>"apache-2.0",
163
+ "rightsIdentifierScheme"=>"SPDX",
164
+ "rightsUri"=>"http://www.apache.org/licenses/LICENSE-2.0",
165
+ "schemeUri"=>"https://spdx.org/licenses/"}])
166
+ end
135
167
  end
136
168
  end
@@ -1,45 +1,65 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # require 'spec_helper'
3
+ require 'spec_helper'
4
4
 
5
- # describe Briard::Metadata, vcr: true do
6
- # context "write metadata as codemeta" do
7
- # # it "SoftwareSourceCode DataCite JSON" do
8
- # # input = fixture_path + "datacite_software.json"
9
- # # subject = Briard::Metadata.new(input: input, from: "datacite_json")
10
- # # expect(subject.valid?).to be true
11
- # # json = JSON.parse(subject.codemeta)
12
- # # expect(json["@context"]).to eq("https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld")
13
- # # expect(json["@id"]).to eq("https://doi.org/10.5063/f1m61h5x")
14
- # # expect(json["@type"]).to eq("SoftwareSourceCode")
15
- # # expect(json["identifier"]).to eq("https://doi.org/10.5063/f1m61h5x")
16
- # # expect(json["agents"]).to eq("type"=>"Person", "name"=>"Matthew B. Jones", "givenName"=>"Matthew B.", "familyName"=>"Jones")
17
- # # expect(json["title"]).to eq("dataone: R interface to the DataONE network of data repositories")
18
- # # expect(json["datePublished"]).to eq("2016")
19
- # # expect(json["publisher"]).to eq("KNB Data Repository")
20
- # # end
5
+ describe Briard::Metadata, vcr: true do
6
+ context "write metadata as cff" do
7
+ it "SoftwareSourceCode Zenodo" do
8
+ input = "https://doi.org/10.5281/zenodo.10164"
9
+ subject = Briard::Metadata.new(input: input, from: "datacite")
10
+ expect(subject.valid?).to be true
11
+ json = Psych.safe_load(subject.cff, permitted_classes: [Date])
12
+ expect(json["doi"]).to eq("https://doi.org/10.5281/zenodo.10164")
13
+ expect(json["authors"]).to eq([{"affiliation"=>[{"name"=>"Juelich Supercomputing Centre, Jülich, Germany"}],
14
+ "familyName"=>"Klatt",
15
+ "givenName"=>"Torbjörn",
16
+ "name"=>"Klatt, Torbjörn"},
17
+ {"affiliation"=>[{"name"=>"Juelich Supercomputing Centre, Jülich, Germany"}],
18
+ "familyName"=>"Moser",
19
+ "givenName"=>"Dieter",
20
+ "name"=>"Moser, Dieter"},
21
+ {"affiliation"=>[{"name"=>"Juelich Supercomputing Centre, Jülich, Germany"}],
22
+ "familyName"=>"Speck",
23
+ "givenName"=>"Robert",
24
+ "name"=>"Speck, Robert"}])
25
+ expect(json["title"]).to eq("Pypint -- Python Framework For Parallel-In-Time Methods")
26
+ expect(json["abstract"]).to eq("<em>PyPinT</em> is a framework for Parallel-in-Time integration routines. The main purpose of <em>PyPinT</em> is to provide a framework for educational use and prototyping new parallel-in-time algorithms. As well it will aid in developing a high-performance C++ implementation for massively parallel computers providing the benefits of parallel-in-time routines to a zoo of time integrators in various applications.")
27
+ expect(json["date-released"]).to eq("2014-05-27")
28
+ expect(json["repository-code"]).to eq("https://zenodo.org/record/10164")
29
+ expect(json["keywords"]).to eq(["Parallel-in-Time Integration", "Spectral Deferred Corrections", "Multigrid", "Multi-Level Spectral Deferred Corrections", "Python Framework"])
30
+ expect(json["license"]).to eq(["http://www.opensource.org/licenses/MIT", "info:eu-repo/semantics/openAccess"])
31
+ end
21
32
 
22
- # it "SoftwareSourceCode DataCite" do
23
- # input = "https://doi.org/10.5063/f1m61h5x"
24
- # subject = Briard::Metadata.new(input: input, from: "datacite")
25
- # expect(subject.valid?).to be true
26
- # json = JSON.parse(subject.codemeta)
27
- # expect(json["@context"]).to eq("https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld")
28
- # expect(json["@id"]).to eq("https://doi.org/10.5063/f1m61h5x")
29
- # expect(json["@type"]).to eq("SoftwareSourceCode")
30
- # expect(json["authors"]).to eq([{"name"=>"Jones, Matthew B.; Slaughter, Peter; Nahf, Rob; Boettiger, Carl ; Jones, Chris; Read, Jordan; Walker, Lauren; Hart, Edmund; Chamberlain, Scott", "nameIdentifiers" => [], "affiliation" => []}])
31
- # expect(json["name"]).to eq("dataone: R interface to the DataONE network of data repositories")
32
- # expect(json["datePublished"]).to eq("2016")
33
- # expect(json["publisher"]).to eq("KNB Data Repository")
34
- # end
35
-
36
- # it "SoftwareSourceCode DataCite check codemeta v2" do
37
- # input = "https://doi.org/10.5063/f1m61h5x"
38
- # subject = Briard::Metadata.new(input: input, from: "datacite")
39
- # expect(subject.valid?).to be true
40
- # json = JSON.parse(subject.codemeta)
41
- # expect(json["agents"]).to be_nil
42
- # expect(json["title"]).to be_nil
43
- # end
44
- # end
45
- # end
33
+ it "SoftwareSourceCode also Zenodo" do
34
+ input = "https://doi.org/10.5281/zenodo.15497"
35
+ subject = Briard::Metadata.new(input: input, from: "datacite")
36
+ expect(subject.valid?).to be true
37
+ json = Psych.safe_load(subject.cff, permitted_classes: [Date])
38
+ expect(json["doi"]).to eq("https://doi.org/10.5281/zenodo.15497")
39
+ expect(json["authors"]).to eq([{"affiliation"=>
40
+ [{"name"=>
41
+ "Instituut voor Kern- en Stralingsfysica, KU Leuven, 3001 Leuven, België"}],
42
+ "familyName"=>"Gins",
43
+ "givenName"=>"Wouter",
44
+ "name"=>"Gins, Wouter"},
45
+ {"affiliation"=>
46
+ [{"name"=>
47
+ "Instituut voor Kern- en Stralingsfysica, KU Leuven, 3001 Leuven, België"}],
48
+ "familyName"=>"de Groote",
49
+ "givenName"=>"Ruben",
50
+ "name"=>"de Groote, Ruben"},
51
+ {"affiliation"=>
52
+ [{"name"=>
53
+ "Instituut voor Kern- en Stralingsfysica, KU Leuven, 3001 Leuven, België"}],
54
+ "familyName"=>"Heylen",
55
+ "givenName"=>"Hanne",
56
+ "name"=>"Heylen, Hanne"}])
57
+ expect(json["title"]).to eq("Satlas: Simulation And Analysis Toolbox For Laser Spectroscopy And Nmr Experiments")
58
+ expect(json["abstract"]).to eq("Initial release of the satlas Python package for the analysis and simulation for laser spectroscopy experiments. For the documentation, see http://woutergins.github.io/satlas/")
59
+ expect(json["date-released"]).to eq("2015-02-18")
60
+ expect(json["repository-code"]).to eq("https://zenodo.org/record/15497")
61
+ expect(json["keywords"]).to be_nil
62
+ expect(json["license"]).to eq(["http://www.opensource.org/licenses/MIT", "info:eu-repo/semantics/openAccess"])
63
+ end
64
+ end
65
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: briard
3
3
  version: !ruby/object:Gem::Version
4
- version: '2.1'
4
+ version: '2.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
@@ -968,6 +968,7 @@ files:
968
968
  - spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/cff-converter-python.yml
969
969
  - spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/pidgraph-notebooks-python.yml
970
970
  - spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/ruby-cff.yml
971
+ - spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/ruby-cff_repository_url.yml
971
972
  - spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/maremma.yml
972
973
  - spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/metadata_reports.yml
973
974
  - spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml
@@ -1211,6 +1212,9 @@ files:
1211
1212
  - spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/text.yml
1212
1213
  - spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_data_citation.yml
1213
1214
  - spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_pages.yml
1215
+ - spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/SoftwareSourceCode_DataCite.yml
1216
+ - spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/SoftwareSourceCode_Zenodo.yml
1217
+ - spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/SoftwareSourceCode_also_Zenodo.yml
1214
1218
  - spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Dataset.yml
1215
1219
  - spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article.yml
1216
1220
  - spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml