commonmeta-ruby 3.5.2 → 3.5.4
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 +4 -4
- data/Gemfile.lock +5 -5
- data/lib/commonmeta/cli.rb +7 -1
- data/lib/commonmeta/metadata_utils.rb +2 -0
- data/lib/commonmeta/readers/json_feed_reader.rb +11 -0
- data/lib/commonmeta/version.rb +1 -1
- data/lib/commonmeta/writers/commonmeta_writer.rb +11 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_blog_id_for_json_feed_item_id/by_blog_post_id.yml +132 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_blog_id_for_json_feed_item_id/not_found.yml +49 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_commonmeta/with_data_citation.yml +247 -0
- data/spec/readers/json_feed_reader_spec.rb +12 -0
- data/spec/writers/commonmeta_writer_spec.rb +43 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c42c11b4ae0ee7743906d829813c5686e64359da51743c886b96dce34935556e
|
4
|
+
data.tar.gz: 2ab7d6c4fce7c9d33fb546a002cbad7c1220a8576cd2e73eb2341b39259eae9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f95088f184873a000063b3ea5bbc426723c3782d33b98956d07eeac152ba24c0445ad491b85b95aa7369df8c4705d867780d18d7ac92225839ef7133e8d7ee6e
|
7
|
+
data.tar.gz: 5e836d35579afa5921c4e342b6d66f2b5059b5f8165194d1508e45b9c92060f1ac67bdbffd87477650c1bc48f8defd10daeea19a42ca5b52c3590162ddffab94
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
commonmeta-ruby (3.5.
|
4
|
+
commonmeta-ruby (3.5.4)
|
5
5
|
activesupport (>= 4.2.5, < 8.0)
|
6
6
|
addressable (~> 2.8.1, < 2.8.2)
|
7
7
|
base32-url (>= 0.7.0, < 1)
|
@@ -73,7 +73,7 @@ GEM
|
|
73
73
|
feedparser (2.2.0)
|
74
74
|
logutils (>= 0.6.1)
|
75
75
|
textutils (>= 1.0.0)
|
76
|
-
ffi (1.
|
76
|
+
ffi (1.16.2)
|
77
77
|
ffi-compiler (1.0.1)
|
78
78
|
ffi (>= 1.0.0)
|
79
79
|
rake
|
@@ -179,7 +179,7 @@ GEM
|
|
179
179
|
rspec-xsd (0.1.0)
|
180
180
|
nokogiri (~> 1.6)
|
181
181
|
rspec (~> 3)
|
182
|
-
rubocop (1.56.
|
182
|
+
rubocop (1.56.4)
|
183
183
|
base64 (~> 0.1.1)
|
184
184
|
json (~> 2.3)
|
185
185
|
language_server-protocol (>= 3.17.0)
|
@@ -202,7 +202,7 @@ GEM
|
|
202
202
|
rubocop-ast (>= 0.4.0)
|
203
203
|
rubocop-rake (0.6.0)
|
204
204
|
rubocop (~> 1.0)
|
205
|
-
rubocop-rspec (2.24.
|
205
|
+
rubocop-rspec (2.24.1)
|
206
206
|
rubocop (~> 1.33)
|
207
207
|
rubocop-capybara (~> 2.17)
|
208
208
|
rubocop-factory_bot (~> 2.22)
|
@@ -232,7 +232,7 @@ GEM
|
|
232
232
|
unf_ext
|
233
233
|
unf_ext (0.0.8.2)
|
234
234
|
unicode-display_width (2.4.2)
|
235
|
-
unicode-types (1.
|
235
|
+
unicode-types (1.9.0)
|
236
236
|
uuidtools (2.2.0)
|
237
237
|
vcr (6.2.0)
|
238
238
|
webmock (3.19.1)
|
data/lib/commonmeta/cli.rb
CHANGED
@@ -26,7 +26,7 @@ module Commonmeta
|
|
26
26
|
|
27
27
|
desc "", "convert metadata"
|
28
28
|
method_option :from, aliases: "-f"
|
29
|
-
method_option :to, aliases: "-t", default: "
|
29
|
+
method_option :to, aliases: "-t", default: "commonmeta"
|
30
30
|
method_option :regenerate, type: :boolean, force: false
|
31
31
|
method_option :style, aliases: "-s", default: "apa"
|
32
32
|
method_option :locale, aliases: "-l", default: "en-US"
|
@@ -115,6 +115,12 @@ module Commonmeta
|
|
115
115
|
puts get_json_feed_by_blog(id)
|
116
116
|
end
|
117
117
|
|
118
|
+
desc "", "json_feed_blog_id"
|
119
|
+
|
120
|
+
def json_feed_blog_id(id)
|
121
|
+
puts get_json_feed_blog_id(id)
|
122
|
+
end
|
123
|
+
|
118
124
|
desc "", "update_ghost_post"
|
119
125
|
|
120
126
|
def update_ghost_post(id)
|
@@ -22,6 +22,7 @@ require_relative 'writers/bibtex_writer'
|
|
22
22
|
require_relative 'writers/citation_writer'
|
23
23
|
require_relative 'writers/cff_writer'
|
24
24
|
require_relative 'writers/codemeta_writer'
|
25
|
+
require_relative 'writers/commonmeta_writer'
|
25
26
|
require_relative 'writers/crossref_xml_writer'
|
26
27
|
require_relative 'writers/csl_writer'
|
27
28
|
require_relative 'writers/csv_writer'
|
@@ -56,6 +57,7 @@ module Commonmeta
|
|
56
57
|
include Commonmeta::Writers::CitationWriter
|
57
58
|
include Commonmeta::Writers::CffWriter
|
58
59
|
include Commonmeta::Writers::CodemetaWriter
|
60
|
+
include Commonmeta::Writers::CommonmetaWriter
|
59
61
|
include Commonmeta::Writers::CrossrefXmlWriter
|
60
62
|
include Commonmeta::Writers::CslWriter
|
61
63
|
include Commonmeta::Writers::CsvWriter
|
@@ -198,6 +198,17 @@ module Commonmeta
|
|
198
198
|
blog["items"].map { |item| item["id"] }.first
|
199
199
|
end
|
200
200
|
|
201
|
+
def get_json_feed_blog_id(id)
|
202
|
+
# get JSON Feed item by id and return blog id
|
203
|
+
|
204
|
+
url = json_feed_item_by_id_url(id)
|
205
|
+
response = HTTP.get(url)
|
206
|
+
return nil unless response.status.success?
|
207
|
+
|
208
|
+
post = JSON.parse(response.body.to_s)
|
209
|
+
post.to_h.dig("blog", "slug")
|
210
|
+
end
|
211
|
+
|
201
212
|
def get_doi_prefix_by_blog_id(blog_id)
|
202
213
|
# for generating a random DOI.
|
203
214
|
|
data/lib/commonmeta/version.rb
CHANGED
@@ -0,0 +1,132 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://rogue-scholar.org/api/posts/1898d2d7-4d87-4487-96c4-3073cf99e9a5
|
6
|
+
body:
|
7
|
+
encoding: ASCII-8BIT
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Connection:
|
11
|
+
- close
|
12
|
+
Host:
|
13
|
+
- rogue-scholar.org
|
14
|
+
User-Agent:
|
15
|
+
- http.rb/5.1.1
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Age:
|
22
|
+
- '0'
|
23
|
+
Cache-Control:
|
24
|
+
- public, max-age=0, must-revalidate
|
25
|
+
Content-Length:
|
26
|
+
- '8651'
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Date:
|
30
|
+
- Sun, 01 Oct 2023 12:54:48 GMT
|
31
|
+
Etag:
|
32
|
+
- '"cgg0qca1si6o1"'
|
33
|
+
Server:
|
34
|
+
- Vercel
|
35
|
+
Strict-Transport-Security:
|
36
|
+
- max-age=63072000
|
37
|
+
X-Matched-Path:
|
38
|
+
- "/api/posts/[[...params]]"
|
39
|
+
X-Vercel-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Vercel-Id:
|
42
|
+
- fra1::iad1::chhkb-1696164887801-9f1569e3d50b
|
43
|
+
Connection:
|
44
|
+
- close
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: '{"id":"1898d2d7-4d87-4487-96c4-3073cf99e9a5","doi":"https://doi.org/10.59350/63055-a8604","url":"http://sfmatheson.blogspot.com/2023/01/quintessence-of-dust-2023-restart-why.html","archive_url":null,"title":"Quintessence
|
48
|
+
of Dust 2023 restart: the why","summary":"It''s early January 2023, a little
|
49
|
+
before sunset in Tucson. Live image below, showing the glorious Santa Catalina
|
50
|
+
mountains (the snow on the upper reaches is more apparent earlier in the day)
|
51
|
+
and my dinner preparations (shrimp and veggies on the grill).I''ve decided
|
52
|
+
to start writing here at <i>Quintessence of Dust</i>, after another long hiatus.","content_html":"It''s
|
53
|
+
early January 2023, a little before sunset in Tucson. Live image below, showing
|
54
|
+
the glorious Santa Catalina mountains (the snow on the upper reaches is more
|
55
|
+
apparent earlier in the day) and my dinner preparations (shrimp and veggies
|
56
|
+
on the grill).<div><a href=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghgBx9BU21qMDFnLxgHmnsl6TQVfb3QCwOXrC1zcXq7WH9gN8E0TcH3pTslRBG6O8mb5gcuF9JVtDlJ2je6dFcfyzKE4OD38-ftr66nBxddo892_NkyuevrrX65ndSbwmXMaLh3F5yiqU1QIj8JtA8FLkKOcHOEVwVafz0rzh7PejbFzp3XT25nQxc/s4032/Jan%207.jpg\"><img
|
57
|
+
height=\"320\" src=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghgBx9BU21qMDFnLxgHmnsl6TQVfb3QCwOXrC1zcXq7WH9gN8E0TcH3pTslRBG6O8mb5gcuF9JVtDlJ2je6dFcfyzKE4OD38-ftr66nBxddo892_NkyuevrrX65ndSbwmXMaLh3F5yiqU1QIj8JtA8FLkKOcHOEVwVafz0rzh7PejbFzp3XT25nQxc/s320/Jan%207.jpg\"
|
58
|
+
width=\"240\" /></a></div><br /><div><div>I''ve decided to start writing here
|
59
|
+
at <i>Quintessence of Dust</i>, after another long hiatus. Here are some of
|
60
|
+
my reasons.</div><div><br /></div><div>1. I like to write, and I have things
|
61
|
+
to say, and I self-identify as an author. For eight years, I have co-organized
|
62
|
+
and taught in the <a href=\"https://meetings.cshl.edu/courses.aspx?course=C-WRITE&year=23\"
|
63
|
+
target=\"_blank\">Scientific Writing Retreat at Cold Spring Harbor Laboratory</a>.
|
64
|
+
I''m a writer and I need to write, if only for myself.</div><div><br /></div><div>2.
|
65
|
+
I have an idea for a book, along with some introductory work (but no sample
|
66
|
+
chapters yet) and writing here will help me develop those thoughts. The idea
|
67
|
+
is over twelve years old and has never faded away, which I take to mean that
|
68
|
+
I need to get it out of my system somehow.</div><div><br /></div><div>3. I
|
69
|
+
have other ideas kicking around in my head and most of them are worth writing
|
70
|
+
about. I have one new intellectual passion that is totally worth writing about:
|
71
|
+
<a href=\"https://skyislandalliance.org/the-sky-islands/\" target=\"_blank\">the
|
72
|
+
Sky Islands</a> that nearly surround us here in Tucson.</div><div><br /></div><div>4.
|
73
|
+
I have an exciting new job with great new people at <a href=\"https://plos.org/\"
|
74
|
+
target=\"_blank\">an organization</a> that''s all in for <a href=\"https://plos.org/open-science/\"
|
75
|
+
target=\"_blank\">open science</a>. I recently turned over the tens digit
|
76
|
+
on my age-o-meter. My kids will very soon be all out of college. (One is about
|
77
|
+
to start a postdoc!) All of this led, predictably, to a spasm of reflection
|
78
|
+
on projects and vision. One clear result is that I''m feeling more inspired.<span><a
|
79
|
+
name=\"more\"></a></span></div><div><br /></div><div>5. The demise of Twitter
|
80
|
+
has led to a lot of <a href=\"https://www.theatlantic.com/technology/archive/2022/11/twitter-facebook-social-media-decline/672074/\"
|
81
|
+
target=\"_blank\">useful commentary</a> about the nature of social media.
|
82
|
+
I left Facebook two years ago and all but left Twitter two months ago. I''m
|
83
|
+
on a <a href=\"https://fediscience.org/explore\" target=\"_blank\">good server
|
84
|
+
at Mastodon</a> and I like it; maybe microblogging there can satisfy my desire
|
85
|
+
for conversation and connection. But <a href=\"https://www.theverge.com/23513418/bring-back-personal-blogging\"
|
86
|
+
target=\"_blank\">this recent piece</a> at <i>The Verge</i> by <a href=\"https://moniquejudge.com/\"
|
87
|
+
target=\"_blank\">Monique Judge</a> convinced me that blogging could (again)
|
88
|
+
have a place in the future.</div><div><br /><div>Here''s her summary, emphasis
|
89
|
+
mine:</div><div><blockquote>At the end of the day, we don’t know what is going
|
90
|
+
to happen next with Twitter or any of these platforms. We don’t know what
|
91
|
+
changes <a href=\"https://www.techtarget.com/whatis/definition/Web-30\" target=\"_blank\">Web
|
92
|
+
3.0</a> is going to bring to the internet. We do know that <b>we will all
|
93
|
+
still be here, wanting to share our thoughts, talk about anything and everything,
|
94
|
+
and commune with our people</b>. Personal blogging is the simplest and fastest
|
95
|
+
way to do all of that. </blockquote></div><div>That''s what I want! A place
|
96
|
+
to write, and (if I''m lucky) a place to discuss and \"commune\" with people.
|
97
|
+
That used to happen a lot at <i>Quintessence of Dust</i>.<span></span></div></div></div><div><br
|
98
|
+
/></div><div>Okay, but why here? This blog is over 15 years old and was started
|
99
|
+
when I was a Christian believer. <a href=\"https://sfmatheson.blogspot.com/2007/08/kicking-off-my-blog.html\"
|
100
|
+
target=\"_blank\">Its founding themes</a> were anchored in a desire to help
|
101
|
+
Christians understand and enjoy biology, to help them shake free of misinformation
|
102
|
+
and dishonesty. It has twice languished through long hiatuses and was <a href=\"https://sfmatheson.blogspot.com/p/about.html\"
|
103
|
+
target=\"_blank\">remodeled</a> back in 2017 a few years after I deconverted.
|
104
|
+
Maybe it''s time to start anew? I think not, for many of those same reasons:
|
105
|
+
I''m still a biologist who loves science, still worried about misinformation,
|
106
|
+
and still rooted in the power of scientific explanation. I''m still a bardolator
|
107
|
+
and a Red Sox fan. <a href=\"https://sfmatheson.blogspot.com/p/about.html\">I''m
|
108
|
+
still me</a>, and <i>Quintessence of Dust</i> is still my blog. The new <a
|
109
|
+
href=\"https://sfmatheson.blogspot.com/p/about.html\" target=\"_blank\">About
|
110
|
+
page</a> is slightly remodeled from 2017, and hints at the next post, which
|
111
|
+
will outline some new goals and ongoing projects.</div><div><br /></div><div>A
|
112
|
+
final note on inspiration, from Imani Perry, writing in her newsletter (<a
|
113
|
+
href=\"https://newsletters.theatlantic.com/unsettled-territory/\" target=\"_blank\">Unsettled
|
114
|
+
Territory</a>) at <i>The Atlantic</i>. The piece is \"<a href=\"https://newsletters.theatlantic.com/unsettled-territory/63af3facace609003751bacc/becoming-writer-habit-journalism/\"
|
115
|
+
target=\"_blank\">Writing is a Democratic Art</a>.\" It''s for subscribers
|
116
|
+
only but here is her challenge:</div><div><blockquote>Thinking and writing
|
117
|
+
at a faster pace stretched me and gave me greater confidence. Sometimes I
|
118
|
+
changed my mind about what I’d written a day later. But that was okay; a newsletter
|
119
|
+
is a moment in time. Writing it each week gave me a lovely rhythm in what
|
120
|
+
has otherwise been a difficult and disorienting season in history. Feeling
|
121
|
+
stuck can get you stuck. But writing can, and should, inspire deeds.</blockquote></div>","published_at":1673233380,"updated_at":1680470227,"indexed_at":1689006804,"authors":[{"url":null,"name":"Stephen
|
122
|
+
Matheson"}],"image":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghgBx9BU21qMDFnLxgHmnsl6TQVfb3QCwOXrC1zcXq7WH9gN8E0TcH3pTslRBG6O8mb5gcuF9JVtDlJ2je6dFcfyzKE4OD38-ftr66nBxddo892_NkyuevrrX65ndSbwmXMaLh3F5yiqU1QIj8JtA8FLkKOcHOEVwVafz0rzh7PejbFzp3XT25nQxc/s320/Jan%207.jpg","tags":["Introduction"],"language":"en","reference":[],"relationships":[],"blog_id":"5764g49","blog_name":"Quintessence
|
123
|
+
of Dust","blog_slug":"sfmatheson","blog":{"id":"5764g49","title":"Quintessence
|
124
|
+
of Dust","description":"<i>Quintessence of Dust</i> explores science, society,
|
125
|
+
and human nature, focusing on genetics, development, evolution, neuroscience,
|
126
|
+
systems biology, and topics related to scientific literacy. I occasionally
|
127
|
+
discuss intelligent design, creationism, science denial, and other political/social
|
128
|
+
influences on scientific literacy. Additional topics: philosophy, baseball,
|
129
|
+
scientific culture, and Shakespeare. My main theme is <b><u>scientific explanation</u></b>.","language":"en","favicon":null,"feed_url":"http://sfmatheson.blogspot.com/feeds/posts/default","home_page_url":"http://sfmatheson.blogspot.com","user_id":"656f9875-3304-4056-935b-b29429e14222","created_at":"2023-04-18","feed_format":"application/atom+xml","license":"https://creativecommons.org/licenses/by/4.0/legalcode","generator":"Blogger
|
130
|
+
7.00","category":"socialSciences","prefix":"10.59350","modified_at":"2023-09-11T17:46:56+00:00","version":"https://jsonfeed.org/version/1.1","current_feed_url":null,"status":"active","issn":null,"backlog":0,"authors":null,"plan":"Team","slug":"sfmatheson","use_mastodon":false,"api":false,"funding":null,"archive_prefix":null,"use_api":null,"relative_url":null,"canonical_url":null}}'
|
131
|
+
recorded_at: Sun, 01 Oct 2023 12:54:48 GMT
|
132
|
+
recorded_with: VCR 6.2.0
|
data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_blog_id_for_json_feed_item_id/not_found.yml
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://rogue-scholar.org/api/posts/2b22bbba-bcba-4072-94cc-3f88442fff55
|
6
|
+
body:
|
7
|
+
encoding: ASCII-8BIT
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Connection:
|
11
|
+
- close
|
12
|
+
Host:
|
13
|
+
- rogue-scholar.org
|
14
|
+
User-Agent:
|
15
|
+
- http.rb/5.1.1
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 404
|
19
|
+
message: Not Found
|
20
|
+
headers:
|
21
|
+
Age:
|
22
|
+
- '0'
|
23
|
+
Cache-Control:
|
24
|
+
- public, max-age=0, must-revalidate
|
25
|
+
Content-Length:
|
26
|
+
- '28'
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Date:
|
30
|
+
- Sun, 01 Oct 2023 12:54:48 GMT
|
31
|
+
Etag:
|
32
|
+
- '"jtxxi9yf69s"'
|
33
|
+
Server:
|
34
|
+
- Vercel
|
35
|
+
Strict-Transport-Security:
|
36
|
+
- max-age=63072000
|
37
|
+
X-Matched-Path:
|
38
|
+
- "/api/posts/[[...params]]"
|
39
|
+
X-Vercel-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Vercel-Id:
|
42
|
+
- fra1::iad1::6plz2-1696164888551-86b03621bd39
|
43
|
+
Connection:
|
44
|
+
- close
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: '{"message":"Post not found"}'
|
48
|
+
recorded_at: Sun, 01 Oct 2023 12:54:48 GMT
|
49
|
+
recorded_with: VCR 6.2.0
|
@@ -0,0 +1,247 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://api.crossref.org/works/10.7554/elife.01567
|
6
|
+
body:
|
7
|
+
encoding: ASCII-8BIT
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Connection:
|
11
|
+
- close
|
12
|
+
Host:
|
13
|
+
- api.crossref.org
|
14
|
+
User-Agent:
|
15
|
+
- http.rb/5.1.1
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Sun, 01 Oct 2023 12:13:43 GMT
|
23
|
+
Content-Type:
|
24
|
+
- application/json
|
25
|
+
Transfer-Encoding:
|
26
|
+
- chunked
|
27
|
+
Access-Control-Expose-Headers:
|
28
|
+
- Link
|
29
|
+
Access-Control-Allow-Headers:
|
30
|
+
- X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language,
|
31
|
+
Accept-Ranges, Cache-Control
|
32
|
+
Access-Control-Allow-Origin:
|
33
|
+
- "*"
|
34
|
+
Server:
|
35
|
+
- Jetty(9.4.40.v20210413)
|
36
|
+
X-Ratelimit-Limit:
|
37
|
+
- '50'
|
38
|
+
X-Ratelimit-Interval:
|
39
|
+
- 1s
|
40
|
+
X-Api-Pool:
|
41
|
+
- public
|
42
|
+
X-Rate-Limit-Limit:
|
43
|
+
- '50'
|
44
|
+
X-Rate-Limit-Interval:
|
45
|
+
- 1s
|
46
|
+
Permissions-Policy:
|
47
|
+
- interest-cohort=()
|
48
|
+
Connection:
|
49
|
+
- close
|
50
|
+
body:
|
51
|
+
encoding: UTF-8
|
52
|
+
string: '{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,9,7]],"date-time":"2023-09-07T18:48:27Z","timestamp":1694112507116},"reference-count":27,"publisher":"eLife
|
53
|
+
Sciences Publications, Ltd","license":[{"start":{"date-parts":[[2014,2,11]],"date-time":"2014-02-11T00:00:00Z","timestamp":1392076800000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/3.0\/"},{"start":{"date-parts":[[2014,2,11]],"date-time":"2014-02-11T00:00:00Z","timestamp":1392076800000},"content-version":"am","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/3.0\/"},{"start":{"date-parts":[[2014,2,11]],"date-time":"2014-02-11T00:00:00Z","timestamp":1392076800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/3.0\/"},{"start":{"date-parts":[[2014,2,11]],"date-time":"2014-02-11T00:00:00Z","timestamp":1392076800000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/3.0\/"},{"start":{"date-parts":[[2014,2,11]],"date-time":"2014-02-11T00:00:00Z","timestamp":1392076800000},"content-version":"am","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/3.0\/"},{"start":{"date-parts":[[2014,2,11]],"date-time":"2014-02-11T00:00:00Z","timestamp":1392076800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by\/3.0\/"}],"funder":[{"name":"SystemsX"},{"name":"EMBO
|
54
|
+
longterm post-doctoral fellowships"},{"name":"Marie Heim-Voegtlin"},{"DOI":"10.13039\/501100006390","name":"University
|
55
|
+
of Lausanne","doi-asserted-by":"crossref"},{"name":"SystemsX"},{"DOI":"10.13039\/501100003043","name":"EMBO","doi-asserted-by":"publisher"},{"DOI":"10.13039\/501100001711","name":"Swiss
|
56
|
+
National Science Foundation","doi-asserted-by":"publisher"},{"DOI":"10.13039\/501100006390","name":"University
|
57
|
+
of Lausanne","doi-asserted-by":"crossref"}],"content-domain":{"domain":["www.elifesciences.org"],"crossmark-restriction":false},"short-container-title":[],"abstract":"<jats:p>Among
|
58
|
+
various advantages, their small size makes model organisms preferred subjects
|
59
|
+
of investigation. Yet, even in model systems detailed analysis of numerous
|
60
|
+
developmental processes at cellular level is severely hampered by their scale.
|
61
|
+
For instance, secondary growth of Arabidopsis hypocotyls creates a radial
|
62
|
+
pattern of highly specialized tissues that comprises several thousand cells
|
63
|
+
starting from a few dozen. This dynamic process is difficult to follow because
|
64
|
+
of its scale and because it can only be investigated invasively, precluding
|
65
|
+
comprehensive understanding of the cell proliferation, differentiation, and
|
66
|
+
patterning events involved. To overcome such limitation, we established an
|
67
|
+
automated quantitative histology approach. We acquired hypocotyl cross-sections
|
68
|
+
from tiled high-resolution images and extracted their information content
|
69
|
+
using custom high-throughput image processing and segmentation. Coupled with
|
70
|
+
automated cell type recognition through machine learning, we could establish
|
71
|
+
a cellular resolution atlas that reveals vascular morphodynamics during secondary
|
72
|
+
growth, for example equidistant phloem pole formation.<\/jats:p>","DOI":"10.7554\/elife.01567","type":"journal-article","created":{"date-parts":[[2014,2,11]],"date-time":"2014-02-11T16:29:04Z","timestamp":1392136144000},"source":"Crossref","is-referenced-by-count":31,"title":["Automated
|
73
|
+
quantitative histology reveals vascular morphodynamics during Arabidopsis
|
74
|
+
hypocotyl secondary growth"],"prefix":"10.7554","volume":"3","author":[{"given":"Martial","family":"Sankar","sequence":"first","affiliation":[{"name":"Department
|
75
|
+
of Plant Molecular Biology, University of Lausanne, Lausanne, Switzerland"}]},{"given":"Kaisa","family":"Nieminen","sequence":"additional","affiliation":[{"name":"Department
|
76
|
+
of Plant Molecular Biology, University of Lausanne, Lausanne, Switzerland"}]},{"given":"Laura","family":"Ragni","sequence":"additional","affiliation":[{"name":"Department
|
77
|
+
of Plant Molecular Biology, University of Lausanne, Lausanne, Switzerland"}]},{"given":"Ioannis","family":"Xenarios","sequence":"additional","affiliation":[{"name":"Vital-IT,
|
78
|
+
Swiss Institute of Bioinformatics, Lausanne, Switzerland"}]},{"given":"Christian
|
79
|
+
S","family":"Hardtke","sequence":"additional","affiliation":[{"name":"Department
|
80
|
+
of Plant Molecular Biology, University of Lausanne, Lausanne, Switzerland"}]}],"member":"4374","published-online":{"date-parts":[[2014,2,11]]},"reference":[{"key":"bib1","doi-asserted-by":"publisher","first-page":"181","DOI":"10.1038\/nature02100","article-title":"APL
|
81
|
+
regulates vascular tissue identity in Arabidopsis","volume":"426","author":"Bonke","year":"2003","journal-title":"Nature"},{"key":"bib2","doi-asserted-by":"publisher","first-page":"413","DOI":"10.1534\/genetics.109.104976","article-title":"In
|
82
|
+
the beginning was the worm","volume":"182","author":"Brenner","year":"2009","journal-title":"Genetics"},{"key":"bib3","doi-asserted-by":"publisher","first-page":"594","DOI":"10.1034\/j.1399-3054.2002.1140413.x","article-title":"Secondary
|
83
|
+
xylem development in Arabidopsis: a model for wood formation","volume":"114","author":"Chaffey","year":"2002","journal-title":"Physiologia
|
84
|
+
Plantarum"},{"key":"bib4","doi-asserted-by":"publisher","first-page":"2119","DOI":"10.1162\/089976601750399335","article-title":"Training
|
85
|
+
nu-support vector classifiers: theory and algorithms","volume":"13","author":"Chang","year":"2001","journal-title":"Neural
|
86
|
+
computation"},{"key":"bib5","doi-asserted-by":"crossref","first-page":"273","DOI":"10.1007\/BF00994018","article-title":"Support-vector
|
87
|
+
Networks","volume":"20","author":"Cortes","year":"1995","journal-title":"Machine
|
88
|
+
Learning"},{"key":"bib6","doi-asserted-by":"crossref","first-page":"71","DOI":"10.1242\/dev.119.1.71","article-title":"Cellular
|
89
|
+
organisation of the Arabidopsis thaliana root","volume":"119","author":"Dolan","year":"1993","journal-title":"Development"},{"key":"bib7","doi-asserted-by":"publisher","first-page":"1097","DOI":"10.1016\/j.semcdb.2009.09.009","article-title":"Stem
|
90
|
+
cell function during plant vascular development","volume":"20","author":"Elo","year":"2009","journal-title":"Seminars
|
91
|
+
in Cell & Developmental Biology"},{"key":"bib8","doi-asserted-by":"publisher","first-page":"2224","DOI":"10.1242\/dev.091314","article-title":"WOX4
|
92
|
+
and WOX14 act downstream of the PXY receptor kinase to regulate plant vascular
|
93
|
+
proliferation independently of any role in vascular organisation","volume":"140","author":"Etchells","year":"2013","journal-title":"Development"},{"key":"bib9","doi-asserted-by":"publisher","first-page":"e1002997","DOI":"10.1371\/journal.pgen.1002997","article-title":"Plant
|
94
|
+
vascular cell division is maintained by an interaction between PXY and ethylene
|
95
|
+
signalling","volume":"8","author":"Etchells","year":"2012","journal-title":"PLOS
|
96
|
+
Genetics"},{"key":"bib10","doi-asserted-by":"publisher","first-page":"370","DOI":"10.1038\/msb.2010.25","article-title":"Clustering
|
97
|
+
phenotype populations by genome-wide RNAi and multiparametric imaging","volume":"6","author":"Fuchs","year":"2010","journal-title":"Molecular
|
98
|
+
Systems Biology"},{"key":"bib11","doi-asserted-by":"publisher","first-page":"60","DOI":"10.1016\/j.biosystems.2012.07.004","article-title":"BaSAR-A
|
99
|
+
tool in R for frequency detection","volume":"110","author":"Granqvist","year":"2012","journal-title":"Bio
|
100
|
+
Systems"},{"key":"bib12","doi-asserted-by":"publisher","first-page":"55","DOI":"10.1016\/j.pbi.2005.11.013","article-title":"Developmental
|
101
|
+
mechanisms regulating secondary growth in woody plants","volume":"9","author":"Groover","year":"2006","journal-title":"Current
|
102
|
+
Opinion in Plant Biology"},{"key":"bib13","doi-asserted-by":"publisher","first-page":"2618","DOI":"10.1105\/tpc.110.076083","article-title":"TDIF
|
103
|
+
peptide signaling regulates vascular stem cell proliferation via the WOX4
|
104
|
+
homeobox gene in Arabidopsis","volume":"22","author":"Hirakawa","year":"2010","journal-title":"Plant
|
105
|
+
Cell"},{"key":"bib14","doi-asserted-by":"publisher","first-page":"15208","DOI":"10.1073\/pnas.0808444105","article-title":"Non-cell-autonomous
|
106
|
+
control of vascular stem cell fate by a CLE peptide\/receptor system","volume":"105","author":"Hirakawa","year":"2008","journal-title":"Proceedings
|
107
|
+
of the National Academy of Sciences of the United States of America"},{"key":"bib15","doi-asserted-by":"publisher","first-page":"263","DOI":"10.1016\/0092-8674(89)90900-8","article-title":"Arabidopsis,
|
108
|
+
a useful weed","volume":"56","author":"Meyerowitz","year":"1989","journal-title":"Cell"},{"key":"bib16","doi-asserted-by":"publisher","first-page":"1482","DOI":"10.1126\/science.1066609","article-title":"Plants
|
109
|
+
compared to animals: the broadest comparative study of development","volume":"295","author":"Meyerowitz","year":"2002","journal-title":"Science"},{"key":"bib17","doi-asserted-by":"publisher","first-page":"653","DOI":"10.1104\/pp.104.040212","article-title":"A
|
110
|
+
weed for wood? Arabidopsis as a genetic model for xylem development","volume":"135","author":"Nieminen","year":"2004","journal-title":"Plant
|
111
|
+
Physiol"},{"key":"bib18","doi-asserted-by":"publisher","first-page":"1565","DOI":"10.1038\/nbt1206-1565","article-title":"What
|
112
|
+
is a support vector machine?","volume":"24","author":"Noble","year":"2006","journal-title":"Nature
|
113
|
+
Biotechnology"},{"key":"bib19","doi-asserted-by":"publisher","first-page":"1516","DOI":"10.1073\/pnas.77.3.1516","article-title":"Classification
|
114
|
+
of cultured mammalian cells by shape analysis and pattern recognition","volume":"77","author":"Olson","year":"1980","journal-title":"Proceedings
|
115
|
+
of the National Academy of Sciences of the United States of America"},{"key":"bib20","doi-asserted-by":"publisher","first-page":"979","DOI":"10.1093\/bioinformatics\/btq046","article-title":"EBImage\u2013an
|
116
|
+
R package for image processing with applications to cellular phenotypes","volume":"26","author":"Pau","year":"2010","journal-title":"Bioinformatics"},{"key":"bib21","doi-asserted-by":"publisher","first-page":"1322","DOI":"10.1105\/tpc.111.084020","article-title":"Mobile
|
117
|
+
gibberellin directly stimulates Arabidopsis hypocotyl xylem expansion","volume":"23","author":"Ragni","year":"2011","journal-title":"Plant
|
118
|
+
Cell"},{"key":"bib22","doi-asserted-by":"publisher","article-title":"Data
|
119
|
+
from: Automated quantitative histology reveals vascular morphodynamics during
|
120
|
+
Arabidopsis hypocotyl secondary growth","author":"Sankar","year":"2014","journal-title":"Dryad
|
121
|
+
Digital Repository","DOI":"10.5061\/dryad.b835k"},{"key":"bib23","doi-asserted-by":"publisher","first-page":"458","DOI":"10.1016\/j.cub.2008.02.070","article-title":"Flowering
|
122
|
+
as a condition for xylem expansion in Arabidopsis hypocotyl and root","volume":"18","author":"Sibout","year":"2008","journal-title":"Current
|
123
|
+
Biology"},{"key":"bib24","doi-asserted-by":"publisher","first-page":"577","DOI":"10.1111\/j.1469-8137.2010.03236.x","article-title":"Evolution
|
124
|
+
of development of vascular cambia and secondary growth","volume":"186","author":"Spicer","year":"2010","journal-title":"The
|
125
|
+
New Phytologist"},{"key":"bib25","doi-asserted-by":"publisher","first-page":"659","DOI":"10.1007\/s00138-011-0345-9","article-title":"Cell
|
126
|
+
morphology classification and clutter mitigation in phase-contrast microscopy
|
127
|
+
images using machine learning","volume":"23","author":"Theriault","year":"2012","journal-title":"Machine
|
128
|
+
Vision and Applications"},{"key":"bib26","doi-asserted-by":"publisher","first-page":"439","DOI":"10.1016\/j.cell.2012.02.048","article-title":"Mechanical
|
129
|
+
stress acts via katanin to amplify differences in growth rate between adjacent
|
130
|
+
cells in Arabidopsis","volume":"149","author":"Uyttewaal","year":"2012","journal-title":"Cell"},{"key":"bib27","doi-asserted-by":"publisher","first-page":"860","DOI":"10.1038\/ncb2764","article-title":"A
|
131
|
+
screen for morphological complexity identifies regulators of switch-like transitions
|
132
|
+
between discrete cell shapes","volume":"15","author":"Yin","year":"2013","journal-title":"Nature
|
133
|
+
Cell Biology"}],"container-title":["eLife"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/cdn.elifesciences.org\/articles\/01567\/elife-01567-v1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/cdn.elifesciences.org\/articles\/01567\/elife-01567-v1.xml","content-type":"application\/xml","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2022,3,26]],"date-time":"2022-03-26T09:21:50Z","timestamp":1648286510000},"score":1,"resource":{"primary":{"URL":"https:\/\/elifesciences.org\/articles\/01567"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,2,11]]},"references-count":27,"alternative-id":["10.7554\/eLife.01567"],"URL":"http:\/\/dx.doi.org\/10.7554\/elife.01567","archive":["CLOCKSS"],"relation":{"is-supplemented-by":[{"id-type":"doi","id":"10.5061\/dryad.b835k","asserted-by":"subject"}]},"ISSN":["2050-084X"],"issn-type":[{"value":"2050-084X","type":"electronic"}],"subject":["General
|
134
|
+
Immunology and Microbiology","General Biochemistry, Genetics and Molecular
|
135
|
+
Biology","General Medicine","General Neuroscience"],"published":{"date-parts":[[2014,2,11]]},"assertion":[{"value":"2013-09-20","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication
|
136
|
+
History"}},{"value":"2013-12-24","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication
|
137
|
+
History"}},{"value":"2014-02-11","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication
|
138
|
+
History"}}]}}'
|
139
|
+
recorded_at: Sun, 01 Oct 2023 12:13:43 GMT
|
140
|
+
- request:
|
141
|
+
method: get
|
142
|
+
uri: https://api.crossref.org/members/4374
|
143
|
+
body:
|
144
|
+
encoding: ASCII-8BIT
|
145
|
+
string: ''
|
146
|
+
headers:
|
147
|
+
Connection:
|
148
|
+
- close
|
149
|
+
Host:
|
150
|
+
- api.crossref.org
|
151
|
+
User-Agent:
|
152
|
+
- http.rb/5.1.1
|
153
|
+
response:
|
154
|
+
status:
|
155
|
+
code: 200
|
156
|
+
message: OK
|
157
|
+
headers:
|
158
|
+
Date:
|
159
|
+
- Sun, 01 Oct 2023 12:13:44 GMT
|
160
|
+
Content-Type:
|
161
|
+
- application/json
|
162
|
+
Transfer-Encoding:
|
163
|
+
- chunked
|
164
|
+
Access-Control-Expose-Headers:
|
165
|
+
- Link
|
166
|
+
Access-Control-Allow-Headers:
|
167
|
+
- X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language,
|
168
|
+
Accept-Ranges, Cache-Control
|
169
|
+
Access-Control-Allow-Origin:
|
170
|
+
- "*"
|
171
|
+
Server:
|
172
|
+
- Jetty(9.4.40.v20210413)
|
173
|
+
X-Ratelimit-Limit:
|
174
|
+
- '50'
|
175
|
+
X-Ratelimit-Interval:
|
176
|
+
- 1s
|
177
|
+
X-Api-Pool:
|
178
|
+
- public
|
179
|
+
X-Rate-Limit-Limit:
|
180
|
+
- '50'
|
181
|
+
X-Rate-Limit-Interval:
|
182
|
+
- 1s
|
183
|
+
Permissions-Policy:
|
184
|
+
- interest-cohort=()
|
185
|
+
Connection:
|
186
|
+
- close
|
187
|
+
body:
|
188
|
+
encoding: UTF-8
|
189
|
+
string: '{"status":"ok","message-type":"member","message-version":"1.0.0","message":{"last-status-check-time":1696117222074,"primary-name":"eLife
|
190
|
+
Sciences Publications, Ltd","counts":{"current-dois":22582,"backfile-dois":28286,"total-dois":50868},"breakdowns":{"dois-by-issued-year":[[2023,8007],[2022,7322],[2021,7253],[2020,6186],[2019,4848],[2017,4118],[2018,4058],[2016,3512],[2015,2808],[2014,1786],[2013,811],[2012,159]]},"prefixes":["10.7554"],"coverage":{"affiliations-current":0.8403152953679922,"similarity-checking-current":0.0,"descriptions-current":0.0,"ror-ids-current":0.4941989194934018,"funders-backfile":0.3052039878385067,"licenses-backfile":0.9999646468217493,"funders-current":0.2237622885484014,"affiliations-backfile":0.9898182846637913,"resource-links-backfile":0.3481227462348865,"orcids-backfile":0.8474863890263735,"update-policies-current":0.2443096271366575,"ror-ids-backfile":0.002333309764547833,"orcids-current":0.7937738021433,"similarity-checking-backfile":0.0,"references-backfile":0.3392137453157039,"descriptions-backfile":0.0,"award-numbers-backfile":0.2866082160786255,"update-policies-backfile":0.0714487732447147,"licenses-current":1.0,"award-numbers-current":0.2164555840935258,"abstracts-backfile":0.34048645973273,"resource-links-current":0.2443096271366575,"abstracts-current":0.3096271366575148,"references-current":0.2377114515986184},"prefix":[{"name":"eLife
|
191
|
+
Sciences Publications, Ltd.","value":"10.7554"}],"id":4374,"tokens":["elife","sciences","publications","ltd"],"counts-type":{"all":{"peer-review":33948,"journal-article":15366,"journal":1,"component":143802,"posted-content":1554},"backfile":{"peer-review":18437,"journal-article":9849},"current":{"peer-review":15511,"journal-article":5517,"posted-content":1554}},"coverage-type":{"all":{"peer-review":{"last-status-check-time":1696117222074,"affiliations":0.894721338517733,"abstracts":0.0,"orcids":0.7960410038882998,"licenses":1.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.2387180393543066,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"journal-article":{"last-status-check-time":1696117222074,"affiliations":0.9795001952362358,"abstracts":0.9806716126513081,"orcids":0.8825328647663673,"licenses":0.9999349212547182,"references":0.9737732656514382,"funders":0.8906677079265912,"similarity-checking":0.0,"award-numbers":0.8456982949368737,"ror-ids":0.2031758427697514,"update-policies":0.4905635819341403,"resource-links":0.9998698425094364,"descriptions":0.0},"journal":{"last-status-check-time":1696117222074,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"component":{"last-status-check-time":1696117222074,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":4.867804342081473E-4,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"posted-content":{"last-status-check-time":1696117222074,"affiliations":0.9967824967824968,"abstracts":1.0,"orcids":0.8442728442728443,"licenses":1.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0}},"backfile":{"peer-review":{"last-status-check-time":1696117222074,"affiliations":0.9971253457720887,"abstracts":0.0,"orcids":0.8638064761078267,"licenses":1.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.003579758095134783,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"journal-article":{"last-status-check-time":1696117222074,"affiliations":0.9761397096151894,"abstracts":0.9778657731749416,"orcids":0.8169357295156869,"licenses":0.9998984668494263,"references":0.9742105797542898,"funders":0.8765356889024266,"similarity-checking":0.0,"award-numbers":0.8231292517006803,"ror-ids":0.0,"update-policies":0.2051984973093715,"resource-links":0.9997969336988527,"descriptions":0.0}},"current":{"peer-review":{"last-status-check-time":1696117222074,"affiliations":0.7729998065888724,"abstracts":0.0,"orcids":0.7154922313197086,"licenses":1.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.5182128811810973,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"journal-article":{"last-status-check-time":1696117222074,"affiliations":0.9854993655972449,"abstracts":0.9856806235272793,"orcids":0.9996374841399311,"licenses":1.0,"references":0.9729925684248686,"funders":0.9158963204640203,"similarity-checking":0.0,"award-numbers":0.8859887620083379,"ror-ids":0.5658872575675186,"update-policies":1.0,"resource-links":1.0,"descriptions":0.0},"posted-content":{"last-status-check-time":1696117222074,"affiliations":0.9967824967824968,"abstracts":1.0,"orcids":0.8442728442728443,"licenses":1.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0}}},"flags":{"deposits-abstracts-current":true,"deposits-orcids-current":true,"deposits":true,"deposits-affiliations-backfile":true,"deposits-update-policies-backfile":true,"deposits-similarity-checking-backfile":false,"deposits-award-numbers-current":true,"deposits-resource-links-current":true,"deposits-ror-ids-current":true,"deposits-articles":true,"deposits-affiliations-current":true,"deposits-funders-current":true,"deposits-references-backfile":true,"deposits-ror-ids-backfile":true,"deposits-abstracts-backfile":true,"deposits-licenses-backfile":true,"deposits-award-numbers-backfile":true,"deposits-descriptions-current":false,"deposits-references-current":true,"deposits-resource-links-backfile":true,"deposits-descriptions-backfile":false,"deposits-orcids-backfile":true,"deposits-funders-backfile":true,"deposits-update-policies-current":true,"deposits-similarity-checking-current":false,"deposits-licenses-current":true},"location":"Cambridge,
|
192
|
+
United Kingdom","names":["eLife Sciences Publications, Ltd","eLife Sciences
|
193
|
+
Publications, Ltd."]}}'
|
194
|
+
recorded_at: Sun, 01 Oct 2023 12:13:44 GMT
|
195
|
+
- request:
|
196
|
+
method: get
|
197
|
+
uri: https://doi.org/ra/10.7554
|
198
|
+
body:
|
199
|
+
encoding: ASCII-8BIT
|
200
|
+
string: ''
|
201
|
+
headers:
|
202
|
+
Connection:
|
203
|
+
- close
|
204
|
+
Host:
|
205
|
+
- doi.org
|
206
|
+
User-Agent:
|
207
|
+
- http.rb/5.1.1
|
208
|
+
response:
|
209
|
+
status:
|
210
|
+
code: 200
|
211
|
+
message: OK
|
212
|
+
headers:
|
213
|
+
Date:
|
214
|
+
- Sun, 01 Oct 2023 12:13:44 GMT
|
215
|
+
Content-Type:
|
216
|
+
- application/json;charset=UTF-8
|
217
|
+
Transfer-Encoding:
|
218
|
+
- chunked
|
219
|
+
Connection:
|
220
|
+
- close
|
221
|
+
Permissions-Policy:
|
222
|
+
- interest-cohort=(),browsing-topics=()
|
223
|
+
Cf-Cache-Status:
|
224
|
+
- DYNAMIC
|
225
|
+
Report-To:
|
226
|
+
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=nOuUPCRwnnnKgtJDByQRCMt9TJmjGB94XmwG3TO3W%2Bzw68ztcEj4g5dVxW6m3PLWhlDjR6c9PvMvScqG1znqwbAoO0TybJBz%2FTt6SYC3bn6iBeBQ5Vg6%2Fqs5OYbcAc0h7y1CMxY%3D"}],"group":"cf-nel","max_age":604800}'
|
227
|
+
Nel:
|
228
|
+
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
229
|
+
Strict-Transport-Security:
|
230
|
+
- max-age=31536000; includeSubDomains; preload
|
231
|
+
Server:
|
232
|
+
- cloudflare
|
233
|
+
Cf-Ray:
|
234
|
+
- 80f49f12dfb85c3a-AMS
|
235
|
+
Alt-Svc:
|
236
|
+
- h3=":443"; ma=86400
|
237
|
+
body:
|
238
|
+
encoding: UTF-8
|
239
|
+
string: |-
|
240
|
+
[
|
241
|
+
{
|
242
|
+
"DOI": "10.7554",
|
243
|
+
"RA": "Crossref"
|
244
|
+
}
|
245
|
+
]
|
246
|
+
recorded_at: Sun, 01 Oct 2023 12:13:44 GMT
|
247
|
+
recorded_with: VCR 6.2.0
|
@@ -541,4 +541,16 @@ describe Commonmeta::Metadata, vcr: true do
|
|
541
541
|
expect(response).to eq("10.54900")
|
542
542
|
end
|
543
543
|
end
|
544
|
+
|
545
|
+
context "get blog_id for json_feed item id", vcr: true do
|
546
|
+
it "by blog post id" do
|
547
|
+
response = subject.get_json_feed_blog_id("1898d2d7-4d87-4487-96c4-3073cf99e9a5")
|
548
|
+
expect(response).to eq("sfmatheson")
|
549
|
+
end
|
550
|
+
|
551
|
+
it "not found" do
|
552
|
+
response = subject.get_doi_prefix_by_json_feed_item_id("2b22bbba-bcba-4072-94cc-3f88442fff55")
|
553
|
+
expect(response).to eq(nil)
|
554
|
+
end
|
555
|
+
end
|
544
556
|
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
describe Commonmeta::Metadata, vcr: true do
|
6
|
+
context "write metadata as commonmeta" do
|
7
|
+
it "with data citation" do
|
8
|
+
input = "10.7554/eLife.01567"
|
9
|
+
subject = described_class.new(input: input, from: "crossref")
|
10
|
+
json = JSON.parse(subject.commonmeta)
|
11
|
+
expect(json["id"]).to eq("https://doi.org/10.7554/elife.01567")
|
12
|
+
expect(json["type"]).to eq("JournalArticle")
|
13
|
+
expect(json["url"]).to eq("https://elifesciences.org/articles/01567")
|
14
|
+
expect(json["titles"]).to eq([{ "title" => "Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth" }])
|
15
|
+
expect(json["contributors"].length).to eq(5)
|
16
|
+
expect(json["contributors"].first).to eq("affiliation" => [{ "name" => "Department of Plant Molecular Biology, University of Lausanne, Lausanne, Switzerland" }],
|
17
|
+
"contributorRoles" => ["Author"],
|
18
|
+
"familyName" => "Sankar",
|
19
|
+
"givenName" => "Martial",
|
20
|
+
"type" => "Person")
|
21
|
+
expect(json["container"]).to eq("identifier" => "2050-084X",
|
22
|
+
"identifierType" => "ISSN",
|
23
|
+
"title" => "eLife",
|
24
|
+
"type" => "Journal",
|
25
|
+
"volume" => "3")
|
26
|
+
expect(json["publisher"]).to eq("id" => "https://api.crossref.org/members/4374", "name" => "eLife Sciences Publications, Ltd")
|
27
|
+
expect(json["references"].length).to eq(27)
|
28
|
+
expect(json["references"].first).to eq("key" => "bib1",
|
29
|
+
"doi" => "https://doi.org/10.1038/nature02100",
|
30
|
+
"contributor" => "Bonke",
|
31
|
+
"title" => "APL regulates vascular tissue identity in Arabidopsis",
|
32
|
+
"publicationYear" => "2003",
|
33
|
+
"volume" => "426",
|
34
|
+
"firstPage" => "181",
|
35
|
+
"containerTitle" => "Nature")
|
36
|
+
expect(json["date"]).to eq("published"=>"2014-02-11", "updated"=>"2022-03-26")
|
37
|
+
expect(json["descriptions"].first["description"]).to start_with("Among various advantages,")
|
38
|
+
expect(json["license"]).to eq("id"=>"CC-BY-3.0", "url"=>"https://creativecommons.org/licenses/by/3.0/legalcode")
|
39
|
+
expect(json["provider"]).to eq("Crossref")
|
40
|
+
expect(json["files"].first).to eq("mimeType"=>"application/pdf", "url"=>"https://cdn.elifesciences.org/articles/01567/elife-01567-v1.pdf")
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commonmeta-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.5.
|
4
|
+
version: 3.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Fenner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -644,6 +644,7 @@ files:
|
|
644
644
|
- lib/commonmeta/writers/cff_writer.rb
|
645
645
|
- lib/commonmeta/writers/citation_writer.rb
|
646
646
|
- lib/commonmeta/writers/codemeta_writer.rb
|
647
|
+
- lib/commonmeta/writers/commonmeta_writer.rb
|
647
648
|
- lib/commonmeta/writers/crossref_xml_writer.rb
|
648
649
|
- lib/commonmeta/writers/csl_writer.rb
|
649
650
|
- lib/commonmeta/writers/csv_writer.rb
|
@@ -810,6 +811,8 @@ files:
|
|
810
811
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/datacite.yml
|
811
812
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/datacite_doi_http.yml
|
812
813
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml
|
814
|
+
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_blog_id_for_json_feed_item_id/by_blog_post_id.yml
|
815
|
+
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_blog_id_for_json_feed_item_id/not_found.yml
|
813
816
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_cff_metadata/cff-converter-python.yml
|
814
817
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_cff_metadata/ruby-cff.yml
|
815
818
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_cff_metadata/ruby-cff_repository_url.yml
|
@@ -928,6 +931,7 @@ files:
|
|
928
931
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/software_w/version.yml
|
929
932
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml
|
930
933
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml
|
934
|
+
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_commonmeta/with_data_citation.yml
|
931
935
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/another_schema_org_from_front-matter.yml
|
932
936
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/book_oup.yml
|
933
937
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article.yml
|
@@ -1026,6 +1030,7 @@ files:
|
|
1026
1030
|
- spec/writers/cff_writer_spec.rb
|
1027
1031
|
- spec/writers/citation_writer_spec.rb
|
1028
1032
|
- spec/writers/codemeta_writer_spec.rb
|
1033
|
+
- spec/writers/commonmeta_writer_spec.rb
|
1029
1034
|
- spec/writers/crossref_xml_writer_spec.rb
|
1030
1035
|
- spec/writers/csl_writer_spec.rb
|
1031
1036
|
- spec/writers/csv_writer_spec.rb
|