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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8045d5f8042da41baf35bc82800bc689db433c16fc6f3607c980aac18d409022
4
- data.tar.gz: 578ae0ae2c0a8addf955e859d821312c1ca0951e8d9e4b542a6cf55c53055e8e
3
+ metadata.gz: c42c11b4ae0ee7743906d829813c5686e64359da51743c886b96dce34935556e
4
+ data.tar.gz: 2ab7d6c4fce7c9d33fb546a002cbad7c1220a8576cd2e73eb2341b39259eae9a
5
5
  SHA512:
6
- metadata.gz: e39aba0b9e648e4b3880f5883955fe3af49710062e259ccc278a4e170f964a16271a9cf22cbbaa9fdcbb39183aafee71c4aa88284f93667288d619029ae49fcb
7
- data.tar.gz: b3399a055354e06a990089880c228113cf6db476d4717954ffc053ed42fdbc16669a97327d420b2ecf6b014e79c7191aef0082de75b649170c76a30df58bb490
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.2)
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.15.5)
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.3)
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.0)
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.8.0)
235
+ unicode-types (1.9.0)
236
236
  uuidtools (2.2.0)
237
237
  vcr (6.2.0)
238
238
  webmock (3.19.1)
@@ -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: "schema_org"
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
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Commonmeta
4
- VERSION = '3.5.2'
4
+ VERSION = '3.5.4'
5
5
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Commonmeta
4
+ module Writers
5
+ module CommonmetaWriter
6
+ def commonmeta
7
+ JSON.pretty_generate meta
8
+ end
9
+ end
10
+ end
11
+ end
@@ -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&amp;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
@@ -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.2
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-09-22 00:00:00.000000000 Z
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