commonmeta-ruby 3.0.0 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +59 -59
- data/Gemfile.lock +10 -23
- data/README.md +307 -210
- data/commonmeta.gemspec +5 -12
- data/lib/commonmeta/author_utils.rb +1 -1
- data/lib/commonmeta/crossref_utils.rb +3 -1
- data/lib/commonmeta/readers/cff_reader.rb +1 -1
- data/lib/commonmeta/utils.rb +2 -2
- data/lib/commonmeta/version.rb +1 -1
- data/lib/commonmeta/writers/datacite_writer.rb +7 -14
- data/lib/commonmeta.rb +0 -4
- data/spec/writers/datacite_writer_spec.rb +1 -0
- metadata +17 -133
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9b9a5c37f7800cb3eeee4bbe8a343562b5c3ea466a0fec8621af95c5132f749
|
4
|
+
data.tar.gz: c50ad3cda6d44ee2f1e513c4e6ba36adb829d95bd2c07eb6e76b86f8ebbf2ddb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a3afb6655cef3dfc742e826ae43ff1cde17e8d852b9d2c3c465cd5a9ac8c1c8480dd0e81a888561acc4ea311dfd7968a150c2dabd04b09bb77dcef47632252d
|
7
|
+
data.tar.gz: dc70555987515a2193c7dec735395fef12d9fa71ce9f1d70a621404ce947e2c8ec09f53c92fa5b7785a675e54d6854ab4b1674bb612514b21481548a873dcad9
|
data/CHANGELOG.md
CHANGED
@@ -1,123 +1,123 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## [
|
3
|
+
## [v3.0.1](https://github.com/front-matter/commonmeta-ruby/tree/v3.0.1) (2023-03-20)
|
4
4
|
|
5
|
-
[Full Changelog](https://github.com/front-matter/
|
5
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.9.0...v3.0.1)
|
6
6
|
|
7
7
|
**Merged pull requests:**
|
8
8
|
|
9
|
-
- Bump rack from 2.2.5 to 2.2.6.2 [\#21](https://github.com/front-matter/
|
10
|
-
- Bump activesupport from 7.0.4 to 7.0.4.1 [\#20](https://github.com/front-matter/
|
9
|
+
- Bump rack from 2.2.5 to 2.2.6.2 [\#21](https://github.com/front-matter/commonmeta-ruby/pull/21) ([dependabot[bot]](https://github.com/apps/dependabot))
|
10
|
+
- Bump activesupport from 7.0.4 to 7.0.4.1 [\#20](https://github.com/front-matter/commonmeta-ruby/pull/20) ([dependabot[bot]](https://github.com/apps/dependabot))
|
11
11
|
|
12
|
-
## [v2.9.0](https://github.com/front-matter/
|
12
|
+
## [v2.9.0](https://github.com/front-matter/commonmeta-ruby/tree/v2.9.0) (2022-11-23)
|
13
13
|
|
14
|
-
[Full Changelog](https://github.com/front-matter/
|
14
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.8.2...v2.9.0)
|
15
15
|
|
16
|
-
## [v2.8.2](https://github.com/front-matter/
|
16
|
+
## [v2.8.2](https://github.com/front-matter/commonmeta-ruby/tree/v2.8.2) (2022-11-23)
|
17
17
|
|
18
|
-
[Full Changelog](https://github.com/front-matter/
|
18
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.8.0...v2.8.2)
|
19
19
|
|
20
|
-
## [v2.8.0](https://github.com/front-matter/
|
20
|
+
## [v2.8.0](https://github.com/front-matter/commonmeta-ruby/tree/v2.8.0) (2022-11-22)
|
21
21
|
|
22
|
-
[Full Changelog](https://github.com/front-matter/
|
22
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.6.5...v2.8.0)
|
23
23
|
|
24
|
-
## [v2.6.5](https://github.com/front-matter/
|
24
|
+
## [v2.6.5](https://github.com/front-matter/commonmeta-ruby/tree/v2.6.5) (2022-10-04)
|
25
25
|
|
26
|
-
[Full Changelog](https://github.com/front-matter/
|
26
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.6.4...v2.6.5)
|
27
27
|
|
28
|
-
## [v2.6.4](https://github.com/front-matter/
|
28
|
+
## [v2.6.4](https://github.com/front-matter/commonmeta-ruby/tree/v2.6.4) (2022-10-04)
|
29
29
|
|
30
|
-
[Full Changelog](https://github.com/front-matter/
|
30
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.6.3...v2.6.4)
|
31
31
|
|
32
|
-
## [v2.6.3](https://github.com/front-matter/
|
32
|
+
## [v2.6.3](https://github.com/front-matter/commonmeta-ruby/tree/v2.6.3) (2022-10-04)
|
33
33
|
|
34
|
-
[Full Changelog](https://github.com/front-matter/
|
34
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.5.1...v2.6.3)
|
35
35
|
|
36
|
-
## [v2.5.1](https://github.com/front-matter/
|
36
|
+
## [v2.5.1](https://github.com/front-matter/commonmeta-ruby/tree/v2.5.1) (2022-09-18)
|
37
37
|
|
38
|
-
[Full Changelog](https://github.com/front-matter/
|
38
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.5.0...v2.5.1)
|
39
39
|
|
40
|
-
## [v2.5.0](https://github.com/front-matter/
|
40
|
+
## [v2.5.0](https://github.com/front-matter/commonmeta-ruby/tree/v2.5.0) (2022-09-18)
|
41
41
|
|
42
|
-
[Full Changelog](https://github.com/front-matter/
|
42
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.4.2...v2.5.0)
|
43
43
|
|
44
44
|
**Fixed bugs:**
|
45
45
|
|
46
|
-
- Incomplete URL substring sanitization [\#12](https://github.com/front-matter/
|
47
|
-
- Incomplete URL substring sanitization [\#11](https://github.com/front-matter/
|
48
|
-
- Incomplete URL substring sanitization [\#10](https://github.com/front-matter/
|
46
|
+
- Incomplete URL substring sanitization [\#12](https://github.com/front-matter/commonmeta-ruby/issues/12)
|
47
|
+
- Incomplete URL substring sanitization [\#11](https://github.com/front-matter/commonmeta-ruby/issues/11)
|
48
|
+
- Incomplete URL substring sanitization [\#10](https://github.com/front-matter/commonmeta-ruby/issues/10)
|
49
49
|
|
50
|
-
## [v2.4.2](https://github.com/front-matter/
|
50
|
+
## [v2.4.2](https://github.com/front-matter/commonmeta-ruby/tree/v2.4.2) (2022-08-24)
|
51
51
|
|
52
|
-
[Full Changelog](https://github.com/front-matter/
|
52
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.4.1...v2.4.2)
|
53
53
|
|
54
|
-
## [v2.4.1](https://github.com/front-matter/
|
54
|
+
## [v2.4.1](https://github.com/front-matter/commonmeta-ruby/tree/v2.4.1) (2022-08-24)
|
55
55
|
|
56
|
-
[Full Changelog](https://github.com/front-matter/
|
56
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.4...v2.4.1)
|
57
57
|
|
58
|
-
## [v2.4](https://github.com/front-matter/
|
58
|
+
## [v2.4](https://github.com/front-matter/commonmeta-ruby/tree/v2.4) (2022-08-24)
|
59
59
|
|
60
|
-
[Full Changelog](https://github.com/front-matter/
|
60
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.3.1...v2.4)
|
61
61
|
|
62
|
-
## [v2.3.1](https://github.com/front-matter/
|
62
|
+
## [v2.3.1](https://github.com/front-matter/commonmeta-ruby/tree/v2.3.1) (2022-08-14)
|
63
63
|
|
64
|
-
[Full Changelog](https://github.com/front-matter/
|
64
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v.2.3...v2.3.1)
|
65
65
|
|
66
|
-
## [v.2.3](https://github.com/front-matter/
|
66
|
+
## [v.2.3](https://github.com/front-matter/commonmeta-ruby/tree/v.2.3) (2022-06-19)
|
67
67
|
|
68
|
-
[Full Changelog](https://github.com/front-matter/
|
68
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.2.9...v.2.3)
|
69
69
|
|
70
|
-
## [v2.2.9](https://github.com/front-matter/
|
70
|
+
## [v2.2.9](https://github.com/front-matter/commonmeta-ruby/tree/v2.2.9) (2022-06-19)
|
71
71
|
|
72
|
-
[Full Changelog](https://github.com/front-matter/
|
72
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.2.7...v2.2.9)
|
73
73
|
|
74
|
-
## [v2.2.7](https://github.com/front-matter/
|
74
|
+
## [v2.2.7](https://github.com/front-matter/commonmeta-ruby/tree/v2.2.7) (2021-12-23)
|
75
75
|
|
76
|
-
[Full Changelog](https://github.com/front-matter/
|
76
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.2.6...v2.2.7)
|
77
77
|
|
78
|
-
## [v2.2.6](https://github.com/front-matter/
|
78
|
+
## [v2.2.6](https://github.com/front-matter/commonmeta-ruby/tree/v2.2.6) (2021-12-23)
|
79
79
|
|
80
|
-
[Full Changelog](https://github.com/front-matter/
|
80
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.2.5...v2.2.6)
|
81
81
|
|
82
|
-
## [v2.2.5](https://github.com/front-matter/
|
82
|
+
## [v2.2.5](https://github.com/front-matter/commonmeta-ruby/tree/v2.2.5) (2021-12-09)
|
83
83
|
|
84
|
-
[Full Changelog](https://github.com/front-matter/
|
84
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.2.4...v2.2.5)
|
85
85
|
|
86
|
-
## [v2.2.4](https://github.com/front-matter/
|
86
|
+
## [v2.2.4](https://github.com/front-matter/commonmeta-ruby/tree/v2.2.4) (2021-12-09)
|
87
87
|
|
88
|
-
[Full Changelog](https://github.com/front-matter/
|
88
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.2.3...v2.2.4)
|
89
89
|
|
90
|
-
## [v2.2.3](https://github.com/front-matter/
|
90
|
+
## [v2.2.3](https://github.com/front-matter/commonmeta-ruby/tree/v2.2.3) (2021-12-08)
|
91
91
|
|
92
|
-
[Full Changelog](https://github.com/front-matter/
|
92
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/v2.2.2...v2.2.3)
|
93
93
|
|
94
|
-
## [v2.2.2](https://github.com/front-matter/
|
94
|
+
## [v2.2.2](https://github.com/front-matter/commonmeta-ruby/tree/v2.2.2) (2021-12-08)
|
95
95
|
|
96
|
-
[Full Changelog](https://github.com/front-matter/
|
96
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/2.2.1...v2.2.2)
|
97
97
|
|
98
|
-
## [2.2.1](https://github.com/front-matter/
|
98
|
+
## [2.2.1](https://github.com/front-matter/commonmeta-ruby/tree/2.2.1) (2021-12-07)
|
99
99
|
|
100
|
-
[Full Changelog](https://github.com/front-matter/
|
100
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/2.2...2.2.1)
|
101
101
|
|
102
|
-
## [2.2](https://github.com/front-matter/
|
102
|
+
## [2.2](https://github.com/front-matter/commonmeta-ruby/tree/2.2) (2021-12-07)
|
103
103
|
|
104
|
-
[Full Changelog](https://github.com/front-matter/
|
104
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/2.1...2.2)
|
105
105
|
|
106
|
-
## [2.1](https://github.com/front-matter/
|
106
|
+
## [2.1](https://github.com/front-matter/commonmeta-ruby/tree/2.1) (2021-12-07)
|
107
107
|
|
108
|
-
[Full Changelog](https://github.com/front-matter/
|
108
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/2.0.2...2.1)
|
109
109
|
|
110
|
-
## [2.0.2](https://github.com/front-matter/
|
110
|
+
## [2.0.2](https://github.com/front-matter/commonmeta-ruby/tree/2.0.2) (2021-12-06)
|
111
111
|
|
112
|
-
[Full Changelog](https://github.com/front-matter/
|
112
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/2.0.1...2.0.2)
|
113
113
|
|
114
|
-
## [2.0.1](https://github.com/front-matter/
|
114
|
+
## [2.0.1](https://github.com/front-matter/commonmeta-ruby/tree/2.0.1) (2021-12-06)
|
115
115
|
|
116
|
-
[Full Changelog](https://github.com/front-matter/
|
116
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/2.0...2.0.1)
|
117
117
|
|
118
|
-
## [2.0](https://github.com/front-matter/
|
118
|
+
## [2.0](https://github.com/front-matter/commonmeta-ruby/tree/2.0) (2021-12-06)
|
119
119
|
|
120
|
-
[Full Changelog](https://github.com/front-matter/
|
120
|
+
[Full Changelog](https://github.com/front-matter/commonmeta-ruby/compare/d1adb0353c9b3abd0b8f64fed5e0970cf03b537c...2.0)
|
121
121
|
|
122
122
|
|
123
123
|
|
data/Gemfile.lock
CHANGED
@@ -1,31 +1,24 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
commonmeta-ruby (3.0.
|
4
|
+
commonmeta-ruby (3.0.2)
|
5
5
|
activesupport (>= 4.2.5, < 8.0)
|
6
6
|
base32-url (>= 0.5.0, < 1)
|
7
|
-
benchmark_methods (~> 0.7)
|
8
7
|
bibtex-ruby (~> 6.0)
|
9
|
-
builder (~> 3.2, >= 3.2.
|
8
|
+
builder (~> 3.2, >= 3.2.4)
|
10
9
|
citeproc-ruby (~> 2.0)
|
11
|
-
colorize (~> 0.8.1)
|
12
|
-
concurrent-ruby (~> 1.1, >= 1.1.5)
|
13
10
|
csl-styles (~> 2.0)
|
14
11
|
dotenv (~> 2.1, >= 2.1.1)
|
15
12
|
edtf (~> 3.0, >= 3.0.4)
|
16
|
-
gender_detector (~> 0
|
13
|
+
gender_detector (~> 2.0)
|
17
14
|
http (~> 5.1, >= 5.1.1)
|
18
|
-
|
19
|
-
json-ld-preloaded (~> 3.1, >= 3.1.3)
|
15
|
+
json-ld-preloaded (~> 3.2, >= 3.2.2)
|
20
16
|
json_schemer (~> 0.2.23)
|
21
17
|
jsonlint (~> 0.3.0)
|
22
18
|
loofah (~> 2.19)
|
23
19
|
namae (~> 1.0)
|
24
|
-
|
25
|
-
|
26
|
-
oj_mimic_json (~> 1.0, >= 1.0.1)
|
27
|
-
postrank-uri (~> 1.0, >= 1.0.18)
|
28
|
-
public_suffix (= 2.0.5)
|
20
|
+
postrank-uri (~> 1.1)
|
21
|
+
public_suffix (~> 4.0, >= 4.0.7)
|
29
22
|
rdf-rdfxml (~> 3.2)
|
30
23
|
rdf-turtle (~> 3.2)
|
31
24
|
thor (~> 1.1, >= 1.1.0)
|
@@ -42,7 +35,6 @@ GEM
|
|
42
35
|
public_suffix (>= 2.0.2, < 6.0)
|
43
36
|
ast (2.4.2)
|
44
37
|
base32-url (0.6.0)
|
45
|
-
benchmark_methods (0.7)
|
46
38
|
bibtex-ruby (6.0.0)
|
47
39
|
latex-decode (~> 0.0)
|
48
40
|
builder (3.2.4)
|
@@ -53,7 +45,6 @@ GEM
|
|
53
45
|
csl (~> 2.0)
|
54
46
|
code-scanning-rubocop (0.6.1)
|
55
47
|
rubocop (~> 1.0)
|
56
|
-
colorize (0.8.1)
|
57
48
|
concurrent-ruby (1.2.2)
|
58
49
|
crack (0.4.5)
|
59
50
|
rexml
|
@@ -82,8 +73,7 @@ GEM
|
|
82
73
|
ffi-compiler (1.0.1)
|
83
74
|
ffi (>= 1.0.0)
|
84
75
|
rake
|
85
|
-
gender_detector (0.
|
86
|
-
unicode_utils (>= 1.3.0)
|
76
|
+
gender_detector (2.0.0)
|
87
77
|
haml (5.2.2)
|
88
78
|
temple (>= 0.8.0)
|
89
79
|
tilt
|
@@ -100,7 +90,6 @@ GEM
|
|
100
90
|
http-form_data (2.3.0)
|
101
91
|
i18n (1.12.0)
|
102
92
|
concurrent-ruby (~> 1.0)
|
103
|
-
iso8601 (0.9.1)
|
104
93
|
json (2.6.3)
|
105
94
|
json-canonicalization (0.3.1)
|
106
95
|
json-ld (3.2.3)
|
@@ -136,16 +125,15 @@ GEM
|
|
136
125
|
nokogiri (1.14.2-arm64-darwin)
|
137
126
|
racc (~> 1.4)
|
138
127
|
oj (3.14.2)
|
139
|
-
oj_mimic_json (1.0.1)
|
140
128
|
optimist (3.0.1)
|
141
129
|
parallel (1.22.1)
|
142
130
|
parser (3.2.1.1)
|
143
131
|
ast (~> 2.4.1)
|
144
|
-
postrank-uri (1.
|
132
|
+
postrank-uri (1.1)
|
145
133
|
addressable (>= 2.4.0)
|
146
134
|
nokogiri (>= 1.8.0)
|
147
|
-
public_suffix (>=
|
148
|
-
public_suffix (
|
135
|
+
public_suffix (>= 4.0.0, < 5)
|
136
|
+
public_suffix (4.0.7)
|
149
137
|
racc (1.6.2)
|
150
138
|
rack (2.2.6.4)
|
151
139
|
rack-test (2.1.0)
|
@@ -237,7 +225,6 @@ GEM
|
|
237
225
|
unf_ext (0.0.8.2)
|
238
226
|
unicode-display_width (2.4.2)
|
239
227
|
unicode-types (1.8.0)
|
240
|
-
unicode_utils (1.4.0)
|
241
228
|
uri_template (0.7.0)
|
242
229
|
vcr (6.1.0)
|
243
230
|
webmock (3.18.1)
|
data/README.md
CHANGED
@@ -84,128 +84,23 @@ All input is validated against the commonmeta JSON schema.
|
|
84
84
|
|
85
85
|
## Examples
|
86
86
|
|
87
|
-
Read Crossref:
|
87
|
+
Read Crossref XML and write as BibTeX:
|
88
88
|
|
89
89
|
```
|
90
|
-
commonmeta https://doi.org/10.7554/elife.01567 -t
|
90
|
+
commonmeta https://doi.org/10.7554/elife.01567 -f crossref_xml -t bibtex
|
91
91
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
<day>11</day>
|
105
|
-
<year>2014</year>
|
106
|
-
</publication_date>
|
107
|
-
<journal_volume>
|
108
|
-
<volume>3</volume>
|
109
|
-
</journal_volume>
|
110
|
-
</journal_issue>
|
111
|
-
<journal_article publication_type="full_text">
|
112
|
-
<titles>
|
113
|
-
<title>Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth</title>
|
114
|
-
</titles>
|
115
|
-
<contributors>
|
116
|
-
<person_name contributor_role="author" sequence="first">
|
117
|
-
<given_name>Martial</given_name>
|
118
|
-
<surname>Sankar</surname>
|
119
|
-
</person_name>
|
120
|
-
<person_name contributor_role="author" sequence="additional">
|
121
|
-
<given_name>Kaisa</given_name>
|
122
|
-
<surname>Nieminen</surname>
|
123
|
-
</person_name>
|
124
|
-
<person_name contributor_role="author" sequence="additional">
|
125
|
-
<given_name>Laura</given_name>
|
126
|
-
<surname>Ragni</surname>
|
127
|
-
</person_name>
|
128
|
-
<person_name contributor_role="author" sequence="additional">
|
129
|
-
<given_name>Ioannis</given_name>
|
130
|
-
<surname>Xenarios</surname>
|
131
|
-
</person_name>
|
132
|
-
<person_name contributor_role="author" sequence="additional">
|
133
|
-
<given_name>Christian S</given_name>
|
134
|
-
<surname>Hardtke</surname>
|
135
|
-
</person_name>
|
136
|
-
</contributors>
|
137
|
-
<publication_date media_type="online">
|
138
|
-
<month>02</month>
|
139
|
-
<day>11</day>
|
140
|
-
<year>2014</year>
|
141
|
-
</publication_date>
|
142
|
-
<publisher_item>
|
143
|
-
<identifier id_type="doi">10.7554/eLife.01567</identifier>
|
144
|
-
</publisher_item>
|
145
|
-
<crossmark>
|
146
|
-
<crossmark_version>1</crossmark_version>
|
147
|
-
<crossmark_policy>eLifesciences</crossmark_policy>
|
148
|
-
<crossmark_domains>
|
149
|
-
<crossmark_domain>
|
150
|
-
<domain>www.elifesciences.org</domain>
|
151
|
-
</crossmark_domain>
|
152
|
-
</crossmark_domains>
|
153
|
-
<crossmark_domain_exclusive>false</crossmark_domain_exclusive>
|
154
|
-
<custom_metadata>
|
155
|
-
<assertion name="received" label="Received" group_name="publication_history" group_label="Publication History" order="0">2013-09-20</assertion>
|
156
|
-
<assertion name="accepted" label="Accepted" group_name="publication_history" group_label="Publication History" order="1">2013-12-24</assertion>
|
157
|
-
<assertion name="published" label="Published" group_name="publication_history" group_label="Publication History" order="2">2014-02-11</assertion>
|
158
|
-
<program name="fundref">
|
159
|
-
<assertion name="fundgroup">
|
160
|
-
<assertion name="funder_name">SystemsX</assertion>
|
161
|
-
</assertion>
|
162
|
-
<assertion name="fundgroup">
|
163
|
-
<assertion name="funder_name">
|
164
|
-
EMBO
|
165
|
-
<assertion name="funder_identifier">http://dx.doi.org/10.13039/501100003043</assertion>
|
166
|
-
</assertion>
|
167
|
-
</assertion>
|
168
|
-
<assertion name="fundgroup">
|
169
|
-
<assertion name="funder_name">
|
170
|
-
Swiss National Science Foundation
|
171
|
-
<assertion name="funder_identifier">http://dx.doi.org/10.13039/501100001711</assertion>
|
172
|
-
</assertion>
|
173
|
-
</assertion>
|
174
|
-
<assertion name="fundgroup">
|
175
|
-
<assertion name="funder_name">
|
176
|
-
University of Lausanne
|
177
|
-
<assertion name="funder_identifier" provider="crossref">http://dx.doi.org/10.13039/501100006390</assertion>
|
178
|
-
</assertion>
|
179
|
-
</assertion>
|
180
|
-
</program>
|
181
|
-
<program name="AccessIndicators">
|
182
|
-
<license_ref applies_to="vor">http://creativecommons.org/licenses/by/3.0/</license_ref>
|
183
|
-
<license_ref applies_to="am">http://creativecommons.org/licenses/by/3.0/</license_ref>
|
184
|
-
<license_ref applies_to="tdm">http://creativecommons.org/licenses/by/3.0/</license_ref>
|
185
|
-
</program>
|
186
|
-
</custom_metadata>
|
187
|
-
</crossmark>
|
188
|
-
<doi_data>
|
189
|
-
<doi>10.7554/eLife.01567</doi>
|
190
|
-
<resource>http://elifesciences.org/lookup/doi/10.7554/eLife.01567</resource>
|
191
|
-
</doi_data>
|
192
|
-
<citation_list>
|
193
|
-
...
|
194
|
-
<citation key="22">
|
195
|
-
<author>Sankar</author>
|
196
|
-
<cYear>2014</cYear>
|
197
|
-
<doi>10.5061/dryad.b835k</doi>
|
198
|
-
</citation>
|
199
|
-
...
|
200
|
-
</citation_list>
|
201
|
-
<component_list>
|
202
|
-
...
|
203
|
-
</component_list>
|
204
|
-
</journal_article>
|
205
|
-
</journal>
|
206
|
-
</crossref>
|
207
|
-
</doi_record>
|
208
|
-
</doi_records>
|
92
|
+
@article{https://doi.org/10.7554/elife.01567,
|
93
|
+
doi = {10.7554/elife.01567},
|
94
|
+
url = {https://elifesciences.org/articles/01567},
|
95
|
+
author = {Sankar, Martial and Nieminen, Kaisa and Ragni, Laura and Xenarios, Ioannis and Hardtke, Christian S},
|
96
|
+
title = {Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth},
|
97
|
+
journal = {eLife},
|
98
|
+
volume = {3},
|
99
|
+
pages = {e01567},
|
100
|
+
publisher = {eLife Sciences Publications, Ltd},
|
101
|
+
year = {2014},
|
102
|
+
copyright = {CC-BY-3.0}
|
103
|
+
}
|
209
104
|
```
|
210
105
|
|
211
106
|
Convert Crossref to schema.org/JSON-LD:
|
@@ -408,102 +303,304 @@ commonmeta https://doi.org/10.7554/elife.01567
|
|
408
303
|
|
409
304
|
Convert Crossref to DataCite:
|
410
305
|
|
411
|
-
```
|
306
|
+
```sh
|
412
307
|
commonmeta https://doi.org/10.7554/elife.01567 -t datacite
|
413
308
|
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
309
|
+
{
|
310
|
+
"id": "https://doi.org/10.7554/elife.01567",
|
311
|
+
"doi": "10.7554/elife.01567",
|
312
|
+
"url": "https://elifesciences.org/articles/01567",
|
313
|
+
"types": {
|
314
|
+
"resourceTypeGeneral": "JournalArticle",
|
315
|
+
"bibtex": "article",
|
316
|
+
"citeproc": "article-journal",
|
317
|
+
"ris": "JOUR",
|
318
|
+
"schemaOrg": "ScholarlyArticle"
|
319
|
+
},
|
320
|
+
"creators": [
|
321
|
+
{
|
322
|
+
"name": "Sankar, Martial",
|
323
|
+
"nameType": "Personal",
|
324
|
+
"givenName": "Martial",
|
325
|
+
"familyName": "Sankar",
|
326
|
+
"affiliation": [
|
327
|
+
{
|
328
|
+
"name": "Department of Plant Molecular Biology, University of Lausanne, Lausanne, Switzerland"
|
329
|
+
}
|
330
|
+
]
|
331
|
+
},
|
332
|
+
{
|
333
|
+
"name": "Nieminen, Kaisa",
|
334
|
+
"nameType": "Personal",
|
335
|
+
"givenName": "Kaisa",
|
336
|
+
"familyName": "Nieminen",
|
337
|
+
"affiliation": [
|
338
|
+
{
|
339
|
+
"name": "Department of Plant Molecular Biology, University of Lausanne, Lausanne, Switzerland"
|
340
|
+
}
|
341
|
+
]
|
342
|
+
},
|
343
|
+
{
|
344
|
+
"name": "Ragni, Laura",
|
345
|
+
"nameType": "Personal",
|
346
|
+
"givenName": "Laura",
|
347
|
+
"familyName": "Ragni",
|
348
|
+
"affiliation": [
|
349
|
+
{
|
350
|
+
"name": "Department of Plant Molecular Biology, University of Lausanne, Lausanne, Switzerland"
|
351
|
+
}
|
352
|
+
]
|
353
|
+
},
|
354
|
+
{
|
355
|
+
"name": "Xenarios, Ioannis",
|
356
|
+
"nameType": "Personal",
|
357
|
+
"givenName": "Ioannis",
|
358
|
+
"familyName": "Xenarios",
|
359
|
+
"affiliation": [
|
360
|
+
{
|
361
|
+
"name": "Vital-IT, Swiss Institute of Bioinformatics, Lausanne, Switzerland"
|
362
|
+
}
|
363
|
+
]
|
364
|
+
},
|
365
|
+
{
|
366
|
+
"name": "Hardtke, Christian S",
|
367
|
+
"nameType": "Personal",
|
368
|
+
"givenName": "Christian S",
|
369
|
+
"familyName": "Hardtke",
|
370
|
+
"affiliation": [
|
371
|
+
{
|
372
|
+
"name": "Department of Plant Molecular Biology, University of Lausanne, Lausanne, Switzerland"
|
373
|
+
}
|
374
|
+
]
|
375
|
+
}
|
376
|
+
],
|
377
|
+
"titles": [
|
378
|
+
{
|
379
|
+
"title": "Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"
|
380
|
+
}
|
381
|
+
],
|
382
|
+
"publisher": "eLife Sciences Publications, Ltd",
|
383
|
+
"container": {
|
384
|
+
"type": "Journal",
|
385
|
+
"title": "eLife",
|
386
|
+
"identifier": "2050-084X",
|
387
|
+
"identifierType": "ISSN",
|
388
|
+
"volume": "3"
|
389
|
+
},
|
390
|
+
"subjects": [
|
391
|
+
|
392
|
+
],
|
393
|
+
"contributors": [
|
394
|
+
|
395
|
+
],
|
396
|
+
"dates": [
|
397
|
+
{
|
398
|
+
"date": "2014-02-11",
|
399
|
+
"dateType": "Issued"
|
400
|
+
},
|
401
|
+
{
|
402
|
+
"date": "2022-03-26",
|
403
|
+
"dateType": "Updated"
|
404
|
+
}
|
405
|
+
],
|
406
|
+
"alternateIdentifiers": [
|
407
|
+
|
408
|
+
],
|
409
|
+
"rightsList": [
|
410
|
+
{
|
411
|
+
"rightsIdentifier": "cc-by-3.0",
|
412
|
+
"rightsUri": "https://creativecommons.org/licenses/by/3.0/legalcode",
|
413
|
+
"rights": "Creative Commons Attribution 3.0 Unported",
|
414
|
+
"rightsIdentifierScheme": "SPDX",
|
415
|
+
"schemeUri": "https://spdx.org/licenses/"
|
416
|
+
}
|
417
|
+
],
|
418
|
+
"descriptions": [
|
419
|
+
{
|
420
|
+
"description": "Among various advantages, their small size makes model organisms preferred subjects of investigation. Yet, even in model systems detailed analysis of numerous developmental processes at cellular level is severely hampered by their scale. For instance, secondary growth of Arabidopsis hypocotyls creates a radial pattern of highly specialized tissues that comprises several thousand cells starting from a few dozen. This dynamic process is difficult to follow because of its scale and because it can only be investigated invasively, precluding comprehensive understanding of the cell proliferation, differentiation, and patterning events involved. To overcome such limitation, we established an automated quantitative histology approach. We acquired hypocotyl cross-sections from tiled high-resolution images and extracted their information content using custom high-throughput image processing and segmentation. Coupled with automated cell type recognition through machine learning, we could establish a cellular resolution atlas that reveals vascular morphodynamics during secondary growth, for example equidistant phloem pole formation.",
|
421
|
+
"descriptionType": "Abstract"
|
422
|
+
}
|
423
|
+
],
|
424
|
+
"fundingReferences": [
|
425
|
+
{
|
426
|
+
"funderName": "SystemsX"
|
427
|
+
},
|
428
|
+
{
|
429
|
+
"funderName": "EMBO longterm post-doctoral fellowships"
|
430
|
+
},
|
431
|
+
{
|
432
|
+
"funderName": "Marie Heim-Voegtlin"
|
433
|
+
},
|
434
|
+
{
|
435
|
+
"funderName": "University of Lausanne",
|
436
|
+
"funderIdentifier": "https://doi.org/10.13039/501100006390",
|
437
|
+
"funderIdentifierType": "Crossref Funder ID"
|
438
|
+
},
|
439
|
+
{
|
440
|
+
"funderName": "SystemsX"
|
441
|
+
},
|
442
|
+
{
|
443
|
+
"funderName": "EMBO",
|
444
|
+
"funderIdentifier": "https://doi.org/10.13039/501100003043",
|
445
|
+
"funderIdentifierType": "Crossref Funder ID"
|
446
|
+
},
|
447
|
+
{
|
448
|
+
"funderName": "Swiss National Science Foundation",
|
449
|
+
"funderIdentifier": "https://doi.org/10.13039/501100001711",
|
450
|
+
"funderIdentifierType": "Crossref Funder ID"
|
451
|
+
},
|
452
|
+
{
|
453
|
+
"funderName": "University of Lausanne",
|
454
|
+
"funderIdentifier": "https://doi.org/10.13039/501100006390",
|
455
|
+
"funderIdentifierType": "Crossref Funder ID"
|
456
|
+
}
|
457
|
+
],
|
458
|
+
"relatedIdentifiers": [
|
459
|
+
{
|
460
|
+
"relatedIdentifier": "https://doi.org/10.1038/nature02100",
|
461
|
+
"relatedIdentifierType": "DOI",
|
462
|
+
"relationType": "References"
|
463
|
+
},
|
464
|
+
{
|
465
|
+
"relatedIdentifier": "https://doi.org/10.1534/genetics.109.104976",
|
466
|
+
"relatedIdentifierType": "DOI",
|
467
|
+
"relationType": "References"
|
468
|
+
},
|
469
|
+
{
|
470
|
+
"relatedIdentifier": "https://doi.org/10.1034/j.1399-3054.2002.1140413.x",
|
471
|
+
"relatedIdentifierType": "DOI",
|
472
|
+
"relationType": "References"
|
473
|
+
},
|
474
|
+
{
|
475
|
+
"relatedIdentifier": "https://doi.org/10.1162/089976601750399335",
|
476
|
+
"relatedIdentifierType": "DOI",
|
477
|
+
"relationType": "References"
|
478
|
+
},
|
479
|
+
{
|
480
|
+
"relatedIdentifier": "https://doi.org/10.1007/bf00994018",
|
481
|
+
"relatedIdentifierType": "DOI",
|
482
|
+
"relationType": "References"
|
483
|
+
},
|
484
|
+
{
|
485
|
+
"relatedIdentifier": "https://doi.org/10.1242/dev.119.1.71",
|
486
|
+
"relatedIdentifierType": "DOI",
|
487
|
+
"relationType": "References"
|
488
|
+
},
|
489
|
+
{
|
490
|
+
"relatedIdentifier": "https://doi.org/10.1016/j.semcdb.2009.09.009",
|
491
|
+
"relatedIdentifierType": "DOI",
|
492
|
+
"relationType": "References"
|
493
|
+
},
|
494
|
+
{
|
495
|
+
"relatedIdentifier": "https://doi.org/10.1242/dev.091314",
|
496
|
+
"relatedIdentifierType": "DOI",
|
497
|
+
"relationType": "References"
|
498
|
+
},
|
499
|
+
{
|
500
|
+
"relatedIdentifier": "https://doi.org/10.1371/journal.pgen.1002997",
|
501
|
+
"relatedIdentifierType": "DOI",
|
502
|
+
"relationType": "References"
|
503
|
+
},
|
504
|
+
{
|
505
|
+
"relatedIdentifier": "https://doi.org/10.1038/msb.2010.25",
|
506
|
+
"relatedIdentifierType": "DOI",
|
507
|
+
"relationType": "References"
|
508
|
+
},
|
509
|
+
{
|
510
|
+
"relatedIdentifier": "https://doi.org/10.1016/j.biosystems.2012.07.004",
|
511
|
+
"relatedIdentifierType": "DOI",
|
512
|
+
"relationType": "References"
|
513
|
+
},
|
514
|
+
{
|
515
|
+
"relatedIdentifier": "https://doi.org/10.1016/j.pbi.2005.11.013",
|
516
|
+
"relatedIdentifierType": "DOI",
|
517
|
+
"relationType": "References"
|
518
|
+
},
|
519
|
+
{
|
520
|
+
"relatedIdentifier": "https://doi.org/10.1105/tpc.110.076083",
|
521
|
+
"relatedIdentifierType": "DOI",
|
522
|
+
"relationType": "References"
|
523
|
+
},
|
524
|
+
{
|
525
|
+
"relatedIdentifier": "https://doi.org/10.1073/pnas.0808444105",
|
526
|
+
"relatedIdentifierType": "DOI",
|
527
|
+
"relationType": "References"
|
528
|
+
},
|
529
|
+
{
|
530
|
+
"relatedIdentifier": "https://doi.org/10.1016/0092-8674(89)90900-8",
|
531
|
+
"relatedIdentifierType": "DOI",
|
532
|
+
"relationType": "References"
|
533
|
+
},
|
534
|
+
{
|
535
|
+
"relatedIdentifier": "https://doi.org/10.1126/science.1066609",
|
536
|
+
"relatedIdentifierType": "DOI",
|
537
|
+
"relationType": "References"
|
538
|
+
},
|
539
|
+
{
|
540
|
+
"relatedIdentifier": "https://doi.org/10.1104/pp.104.040212",
|
541
|
+
"relatedIdentifierType": "DOI",
|
542
|
+
"relationType": "References"
|
543
|
+
},
|
544
|
+
{
|
545
|
+
"relatedIdentifier": "https://doi.org/10.1038/nbt1206-1565",
|
546
|
+
"relatedIdentifierType": "DOI",
|
547
|
+
"relationType": "References"
|
548
|
+
},
|
549
|
+
{
|
550
|
+
"relatedIdentifier": "https://doi.org/10.1073/pnas.77.3.1516",
|
551
|
+
"relatedIdentifierType": "DOI",
|
552
|
+
"relationType": "References"
|
553
|
+
},
|
554
|
+
{
|
555
|
+
"relatedIdentifier": "https://doi.org/10.1093/bioinformatics/btq046",
|
556
|
+
"relatedIdentifierType": "DOI",
|
557
|
+
"relationType": "References"
|
558
|
+
},
|
559
|
+
{
|
560
|
+
"relatedIdentifier": "https://doi.org/10.1105/tpc.111.084020",
|
561
|
+
"relatedIdentifierType": "DOI",
|
562
|
+
"relationType": "References"
|
563
|
+
},
|
564
|
+
{
|
565
|
+
"relatedIdentifier": "https://doi.org/10.5061/dryad.b835k",
|
566
|
+
"relatedIdentifierType": "DOI",
|
567
|
+
"relationType": "References"
|
568
|
+
},
|
569
|
+
{
|
570
|
+
"relatedIdentifier": "https://doi.org/10.1016/j.cub.2008.02.070",
|
571
|
+
"relatedIdentifierType": "DOI",
|
572
|
+
"relationType": "References"
|
573
|
+
},
|
574
|
+
{
|
575
|
+
"relatedIdentifier": "https://doi.org/10.1111/j.1469-8137.2010.03236.x",
|
576
|
+
"relatedIdentifierType": "DOI",
|
577
|
+
"relationType": "References"
|
578
|
+
},
|
579
|
+
{
|
580
|
+
"relatedIdentifier": "https://doi.org/10.1007/s00138-011-0345-9",
|
581
|
+
"relatedIdentifierType": "DOI",
|
582
|
+
"relationType": "References"
|
583
|
+
},
|
584
|
+
{
|
585
|
+
"relatedIdentifier": "https://doi.org/10.1016/j.cell.2012.02.048",
|
586
|
+
"relatedIdentifierType": "DOI",
|
587
|
+
"relationType": "References"
|
588
|
+
},
|
589
|
+
{
|
590
|
+
"relatedIdentifier": "https://doi.org/10.1038/ncb2764",
|
591
|
+
"relatedIdentifierType": "DOI",
|
592
|
+
"relationType": "References"
|
593
|
+
}
|
594
|
+
],
|
595
|
+
"schemaVersion": "http://datacite.org/schema/kernel-4",
|
596
|
+
"agency": "Crossref",
|
597
|
+
"state": "findable"
|
598
|
+
}
|
502
599
|
```
|
503
600
|
|
504
601
|
Convert Crossref to BibTeX:
|
505
602
|
|
506
|
-
```
|
603
|
+
```sh
|
507
604
|
commonmeta https://doi.org/10.7554/elife.01567 -t bibtex
|
508
605
|
|
509
606
|
@article{https://doi.org/10.7554/elife.01567,
|
@@ -518,7 +615,7 @@ commonmeta https://doi.org/10.7554/elife.01567 -t bibtex
|
|
518
615
|
|
519
616
|
|
520
617
|
|
521
|
-
Convert DataCite
|
618
|
+
Convert DataCite to schema.org/JSON-LD:
|
522
619
|
|
523
620
|
```sh
|
524
621
|
commonmeta 10.5061/DRYAD.8515
|
data/commonmeta.gemspec
CHANGED
@@ -20,28 +20,21 @@ Gem::Specification.new do |s|
|
|
20
20
|
# Declare dependencies here, rather than in the Gemfile
|
21
21
|
s.add_dependency 'activesupport', '>= 4.2.5', '< 8.0'
|
22
22
|
s.add_dependency 'base32-url', '>= 0.5.0', '< 1'
|
23
|
-
s.add_dependency 'benchmark_methods', '~> 0.7'
|
24
23
|
s.add_dependency 'bibtex-ruby', '~> 6.0'
|
25
|
-
s.add_dependency 'builder', '~> 3.2', '>= 3.2.
|
24
|
+
s.add_dependency 'builder', '~> 3.2', '>= 3.2.4'
|
26
25
|
s.add_dependency 'citeproc-ruby', '~> 2.0'
|
27
|
-
s.add_dependency 'colorize', '~> 0.8.1'
|
28
|
-
s.add_dependency 'concurrent-ruby', '~> 1.1', '>= 1.1.5'
|
29
26
|
s.add_dependency 'csl-styles', '~> 2.0'
|
30
27
|
s.add_dependency 'dotenv', '~> 2.1', '>= 2.1.1'
|
31
28
|
s.add_dependency 'edtf', '~> 3.0', '>= 3.0.4'
|
32
|
-
s.add_dependency 'gender_detector', '~> 0
|
29
|
+
s.add_dependency 'gender_detector', '~> 2.0'
|
33
30
|
s.add_dependency 'http', '~> 5.1', '>= 5.1.1'
|
34
|
-
s.add_dependency '
|
35
|
-
s.add_dependency 'json-ld-preloaded', '~> 3.1', '>= 3.1.3'
|
31
|
+
s.add_dependency 'json-ld-preloaded', '~> 3.2', '>= 3.2.2'
|
36
32
|
s.add_dependency 'jsonlint', '~> 0.3.0'
|
37
33
|
s.add_dependency 'json_schemer', '~> 0.2.23'
|
38
34
|
s.add_dependency 'loofah', '~> 2.19'
|
39
35
|
s.add_dependency 'namae', '~> 1.0'
|
40
|
-
s.add_dependency '
|
41
|
-
s.add_dependency '
|
42
|
-
s.add_dependency 'oj_mimic_json', '~> 1.0', '>= 1.0.1'
|
43
|
-
s.add_dependency 'postrank-uri', '~> 1.0', '>= 1.0.18'
|
44
|
-
s.add_dependency 'public_suffix', '2.0.5'
|
36
|
+
s.add_dependency 'postrank-uri', '~> 1.1'
|
37
|
+
s.add_dependency 'public_suffix', '~> 4.0', '>= 4.0.7'
|
45
38
|
s.add_dependency 'rdf-rdfxml', '~> 3.2'
|
46
39
|
s.add_dependency 'rdf-turtle', '~> 3.2'
|
47
40
|
s.add_dependency 'thor', '~> 1.1', '>= 1.1.0'
|
@@ -27,7 +27,9 @@ module Commonmeta
|
|
27
27
|
|
28
28
|
def crossref_errors(xml: nil)
|
29
29
|
filepath = File.expand_path('../../resources/crossref/crossref5.3.1.xsd', __dir__)
|
30
|
-
|
30
|
+
File.open(filepath, 'r') do |f|
|
31
|
+
schema = Nokogiri::XML::Schema(f)
|
32
|
+
end
|
31
33
|
|
32
34
|
schema.validate(Nokogiri::XML(xml, nil, 'UTF-8')).map(&:to_s).unwrap
|
33
35
|
rescue Nokogiri::XML::SyntaxError => e
|
@@ -32,7 +32,7 @@ module Commonmeta
|
|
32
32
|
id = normalize_id(options[:doi] || meta.fetch('doi',
|
33
33
|
nil) || Array.wrap(meta.fetch('identifiers', nil)).find do |i|
|
34
34
|
i['type'] == 'doi'
|
35
|
-
end.fetch('value', nil))
|
35
|
+
end.to_h.fetch('value', nil))
|
36
36
|
url = normalize_id(meta.fetch('repository-code', nil))
|
37
37
|
creators = cff_creators(Array.wrap(meta.fetch('authors', nil)))
|
38
38
|
|
data/lib/commonmeta/utils.rb
CHANGED
@@ -1053,10 +1053,10 @@ module Commonmeta
|
|
1053
1053
|
end
|
1054
1054
|
|
1055
1055
|
# parsing of incomplete iso8601 timestamps such as 2015-04 is broken
|
1056
|
-
# in standard library
|
1056
|
+
# in standard library, so we use the edtf gem
|
1057
1057
|
# return nil if invalid iso8601 timestamp
|
1058
1058
|
def get_datetime_from_iso8601(iso8601_time)
|
1059
|
-
|
1059
|
+
Date.edtf(iso8601_time).to_time.utc
|
1060
1060
|
rescue StandardError
|
1061
1061
|
nil
|
1062
1062
|
end
|
data/lib/commonmeta/version.rb
CHANGED
@@ -72,22 +72,15 @@ module Commonmeta
|
|
72
72
|
def datacite_reference(reference)
|
73
73
|
return nil unless reference.present? || !reference.is_a?(Hash)
|
74
74
|
|
75
|
-
|
76
|
-
doi = nil
|
77
|
-
url = nil
|
75
|
+
related_identifier = reference['doi'] || reference['url']
|
78
76
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
else
|
83
|
-
doi = key
|
84
|
-
end
|
85
|
-
end
|
77
|
+
return nil unless related_identifier.present?
|
78
|
+
|
79
|
+
related_identifier_type = reference['doi'] ? 'DOI' : 'URL'
|
86
80
|
|
87
|
-
{ 'relatedIdentifier' =>
|
88
|
-
'relatedIdentifierType' =>
|
89
|
-
'relationType' => 'References'
|
90
|
-
'relatedMetadataScheme' => 'citeproc+json' }.compact
|
81
|
+
{ 'relatedIdentifier' => related_identifier,
|
82
|
+
'relatedIdentifierType' => related_identifier_type,
|
83
|
+
'relationType' => 'References' }.compact
|
91
84
|
end
|
92
85
|
end
|
93
86
|
end
|
data/lib/commonmeta.rb
CHANGED
@@ -5,18 +5,14 @@ require 'active_support/all'
|
|
5
5
|
require 'nokogiri'
|
6
6
|
ActiveSupport::XmlMini.backend = 'Nokogiri'
|
7
7
|
require 'http'
|
8
|
-
require 'multi_json'
|
9
8
|
require 'postrank-uri'
|
10
9
|
require 'bibtex'
|
11
|
-
require 'colorize'
|
12
10
|
require 'loofah'
|
13
11
|
require 'json/ld'
|
14
12
|
require 'rdf/turtle'
|
15
13
|
require 'rdf/rdfxml'
|
16
14
|
require 'logger'
|
17
|
-
require 'iso8601'
|
18
15
|
require 'jsonlint'
|
19
|
-
require 'benchmark_methods'
|
20
16
|
require 'gender_detector'
|
21
17
|
require 'citeproc/ruby'
|
22
18
|
require 'citeproc'
|
@@ -13,6 +13,7 @@ describe Commonmeta::Metadata, vcr: true do
|
|
13
13
|
'resourceTypeGeneral' => 'JournalArticle', 'ris' => 'JOUR', 'schemaOrg' => 'ScholarlyArticle')
|
14
14
|
expect(datacite.fetch('titles')).to eq([{ 'title' => 'Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth' }])
|
15
15
|
expect(datacite.fetch('relatedIdentifiers').length).to eq(27)
|
16
|
+
expect(datacite.fetch('relatedIdentifiers').first).to eq("relatedIdentifier"=>"https://doi.org/10.1038/nature02100", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
|
16
17
|
expect(datacite.fetch('rightsList')).to eq([{ 'rights' => 'Creative Commons Attribution 3.0 Unported',
|
17
18
|
'rightsIdentifier' => 'cc-by-3.0',
|
18
19
|
'rightsIdentifierScheme' => 'SPDX',
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commonmeta-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Fenner
|
@@ -50,20 +50,6 @@ dependencies:
|
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '1'
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: benchmark_methods
|
55
|
-
requirement: !ruby/object:Gem::Requirement
|
56
|
-
requirements:
|
57
|
-
- - "~>"
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
version: '0.7'
|
60
|
-
type: :runtime
|
61
|
-
prerelease: false
|
62
|
-
version_requirements: !ruby/object:Gem::Requirement
|
63
|
-
requirements:
|
64
|
-
- - "~>"
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version: '0.7'
|
67
53
|
- !ruby/object:Gem::Dependency
|
68
54
|
name: bibtex-ruby
|
69
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,7 +73,7 @@ dependencies:
|
|
87
73
|
version: '3.2'
|
88
74
|
- - ">="
|
89
75
|
- !ruby/object:Gem::Version
|
90
|
-
version: 3.2.
|
76
|
+
version: 3.2.4
|
91
77
|
type: :runtime
|
92
78
|
prerelease: false
|
93
79
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -97,7 +83,7 @@ dependencies:
|
|
97
83
|
version: '3.2'
|
98
84
|
- - ">="
|
99
85
|
- !ruby/object:Gem::Version
|
100
|
-
version: 3.2.
|
86
|
+
version: 3.2.4
|
101
87
|
- !ruby/object:Gem::Dependency
|
102
88
|
name: citeproc-ruby
|
103
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,40 +98,6 @@ dependencies:
|
|
112
98
|
- - "~>"
|
113
99
|
- !ruby/object:Gem::Version
|
114
100
|
version: '2.0'
|
115
|
-
- !ruby/object:Gem::Dependency
|
116
|
-
name: colorize
|
117
|
-
requirement: !ruby/object:Gem::Requirement
|
118
|
-
requirements:
|
119
|
-
- - "~>"
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version: 0.8.1
|
122
|
-
type: :runtime
|
123
|
-
prerelease: false
|
124
|
-
version_requirements: !ruby/object:Gem::Requirement
|
125
|
-
requirements:
|
126
|
-
- - "~>"
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
version: 0.8.1
|
129
|
-
- !ruby/object:Gem::Dependency
|
130
|
-
name: concurrent-ruby
|
131
|
-
requirement: !ruby/object:Gem::Requirement
|
132
|
-
requirements:
|
133
|
-
- - "~>"
|
134
|
-
- !ruby/object:Gem::Version
|
135
|
-
version: '1.1'
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: 1.1.5
|
139
|
-
type: :runtime
|
140
|
-
prerelease: false
|
141
|
-
version_requirements: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - "~>"
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '1.1'
|
146
|
-
- - ">="
|
147
|
-
- !ruby/object:Gem::Version
|
148
|
-
version: 1.1.5
|
149
101
|
- !ruby/object:Gem::Dependency
|
150
102
|
name: csl-styles
|
151
103
|
requirement: !ruby/object:Gem::Requirement
|
@@ -206,14 +158,14 @@ dependencies:
|
|
206
158
|
requirements:
|
207
159
|
- - "~>"
|
208
160
|
- !ruby/object:Gem::Version
|
209
|
-
version: 0
|
161
|
+
version: '2.0'
|
210
162
|
type: :runtime
|
211
163
|
prerelease: false
|
212
164
|
version_requirements: !ruby/object:Gem::Requirement
|
213
165
|
requirements:
|
214
166
|
- - "~>"
|
215
167
|
- !ruby/object:Gem::Version
|
216
|
-
version: 0
|
168
|
+
version: '2.0'
|
217
169
|
- !ruby/object:Gem::Dependency
|
218
170
|
name: http
|
219
171
|
requirement: !ruby/object:Gem::Requirement
|
@@ -234,40 +186,26 @@ dependencies:
|
|
234
186
|
- - ">="
|
235
187
|
- !ruby/object:Gem::Version
|
236
188
|
version: 5.1.1
|
237
|
-
- !ruby/object:Gem::Dependency
|
238
|
-
name: iso8601
|
239
|
-
requirement: !ruby/object:Gem::Requirement
|
240
|
-
requirements:
|
241
|
-
- - "~>"
|
242
|
-
- !ruby/object:Gem::Version
|
243
|
-
version: 0.9.1
|
244
|
-
type: :runtime
|
245
|
-
prerelease: false
|
246
|
-
version_requirements: !ruby/object:Gem::Requirement
|
247
|
-
requirements:
|
248
|
-
- - "~>"
|
249
|
-
- !ruby/object:Gem::Version
|
250
|
-
version: 0.9.1
|
251
189
|
- !ruby/object:Gem::Dependency
|
252
190
|
name: json-ld-preloaded
|
253
191
|
requirement: !ruby/object:Gem::Requirement
|
254
192
|
requirements:
|
255
193
|
- - "~>"
|
256
194
|
- !ruby/object:Gem::Version
|
257
|
-
version: '3.
|
195
|
+
version: '3.2'
|
258
196
|
- - ">="
|
259
197
|
- !ruby/object:Gem::Version
|
260
|
-
version: 3.
|
198
|
+
version: 3.2.2
|
261
199
|
type: :runtime
|
262
200
|
prerelease: false
|
263
201
|
version_requirements: !ruby/object:Gem::Requirement
|
264
202
|
requirements:
|
265
203
|
- - "~>"
|
266
204
|
- !ruby/object:Gem::Version
|
267
|
-
version: '3.
|
205
|
+
version: '3.2'
|
268
206
|
- - ">="
|
269
207
|
- !ruby/object:Gem::Version
|
270
|
-
version: 3.
|
208
|
+
version: 3.2.2
|
271
209
|
- !ruby/object:Gem::Dependency
|
272
210
|
name: jsonlint
|
273
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -325,93 +263,39 @@ dependencies:
|
|
325
263
|
- !ruby/object:Gem::Version
|
326
264
|
version: '1.0'
|
327
265
|
- !ruby/object:Gem::Dependency
|
328
|
-
name:
|
329
|
-
requirement: !ruby/object:Gem::Requirement
|
330
|
-
requirements:
|
331
|
-
- - "~>"
|
332
|
-
- !ruby/object:Gem::Version
|
333
|
-
version: '1.14'
|
334
|
-
- - ">="
|
335
|
-
- !ruby/object:Gem::Version
|
336
|
-
version: 1.14.2
|
337
|
-
type: :runtime
|
338
|
-
prerelease: false
|
339
|
-
version_requirements: !ruby/object:Gem::Requirement
|
340
|
-
requirements:
|
341
|
-
- - "~>"
|
342
|
-
- !ruby/object:Gem::Version
|
343
|
-
version: '1.14'
|
344
|
-
- - ">="
|
345
|
-
- !ruby/object:Gem::Version
|
346
|
-
version: 1.14.2
|
347
|
-
- !ruby/object:Gem::Dependency
|
348
|
-
name: oj
|
349
|
-
requirement: !ruby/object:Gem::Requirement
|
350
|
-
requirements:
|
351
|
-
- - "~>"
|
352
|
-
- !ruby/object:Gem::Version
|
353
|
-
version: '3.10'
|
354
|
-
type: :runtime
|
355
|
-
prerelease: false
|
356
|
-
version_requirements: !ruby/object:Gem::Requirement
|
357
|
-
requirements:
|
358
|
-
- - "~>"
|
359
|
-
- !ruby/object:Gem::Version
|
360
|
-
version: '3.10'
|
361
|
-
- !ruby/object:Gem::Dependency
|
362
|
-
name: oj_mimic_json
|
266
|
+
name: postrank-uri
|
363
267
|
requirement: !ruby/object:Gem::Requirement
|
364
268
|
requirements:
|
365
269
|
- - "~>"
|
366
270
|
- !ruby/object:Gem::Version
|
367
|
-
version: '1.
|
368
|
-
- - ">="
|
369
|
-
- !ruby/object:Gem::Version
|
370
|
-
version: 1.0.1
|
271
|
+
version: '1.1'
|
371
272
|
type: :runtime
|
372
273
|
prerelease: false
|
373
274
|
version_requirements: !ruby/object:Gem::Requirement
|
374
275
|
requirements:
|
375
276
|
- - "~>"
|
376
277
|
- !ruby/object:Gem::Version
|
377
|
-
version: '1.
|
378
|
-
- - ">="
|
379
|
-
- !ruby/object:Gem::Version
|
380
|
-
version: 1.0.1
|
278
|
+
version: '1.1'
|
381
279
|
- !ruby/object:Gem::Dependency
|
382
|
-
name:
|
280
|
+
name: public_suffix
|
383
281
|
requirement: !ruby/object:Gem::Requirement
|
384
282
|
requirements:
|
385
283
|
- - "~>"
|
386
284
|
- !ruby/object:Gem::Version
|
387
|
-
version: '
|
285
|
+
version: '4.0'
|
388
286
|
- - ">="
|
389
287
|
- !ruby/object:Gem::Version
|
390
|
-
version:
|
288
|
+
version: 4.0.7
|
391
289
|
type: :runtime
|
392
290
|
prerelease: false
|
393
291
|
version_requirements: !ruby/object:Gem::Requirement
|
394
292
|
requirements:
|
395
293
|
- - "~>"
|
396
294
|
- !ruby/object:Gem::Version
|
397
|
-
version: '
|
295
|
+
version: '4.0'
|
398
296
|
- - ">="
|
399
297
|
- !ruby/object:Gem::Version
|
400
|
-
version:
|
401
|
-
- !ruby/object:Gem::Dependency
|
402
|
-
name: public_suffix
|
403
|
-
requirement: !ruby/object:Gem::Requirement
|
404
|
-
requirements:
|
405
|
-
- - '='
|
406
|
-
- !ruby/object:Gem::Version
|
407
|
-
version: 2.0.5
|
408
|
-
type: :runtime
|
409
|
-
prerelease: false
|
410
|
-
version_requirements: !ruby/object:Gem::Requirement
|
411
|
-
requirements:
|
412
|
-
- - '='
|
413
|
-
- !ruby/object:Gem::Version
|
414
|
-
version: 2.0.5
|
298
|
+
version: 4.0.7
|
415
299
|
- !ruby/object:Gem::Dependency
|
416
300
|
name: rdf-rdfxml
|
417
301
|
requirement: !ruby/object:Gem::Requirement
|