commonmeta-ruby 3.2.14 → 3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (26) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/bin/commonmeta +1 -1
  4. data/lib/commonmeta/author_utils.rb +1 -1
  5. data/lib/commonmeta/cli.rb +14 -0
  6. data/lib/commonmeta/crossref_utils.rb +56 -14
  7. data/lib/commonmeta/readers/json_feed_reader.rb +30 -2
  8. data/lib/commonmeta/utils.rb +34 -0
  9. data/lib/commonmeta/version.rb +1 -1
  10. data/spec/cli_spec.rb +12 -3
  11. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/doi_prefix/doi_prefix_by_blog.yml +997 -0
  12. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/doi_prefix/doi_prefix_by_uuid.yml +256 -0
  13. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/encode/by_blog.yml +997 -0
  14. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/encode/by_uuid.yml +256 -0
  15. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_doi_prefix_for_blog/by_blog_id.yml +997 -0
  16. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_doi_prefix_for_blog/by_blog_post_uuid.yml +389 -0
  17. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_doi_prefix_for_blog/by_blog_post_uuid_specific_prefix.yml +389 -0
  18. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item/by_uuid.yml +136 -0
  19. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/blog_post_with_non-url_id.yml +136 -0
  20. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_with_organizational_author.yml +91 -0
  21. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/substack_post_with_broken_reference.yml +1316 -0
  22. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_organizational_author.yml +91 -0
  23. data/spec/readers/json_feed_reader_spec.rb +280 -186
  24. data/spec/utils_spec.rb +8 -0
  25. data/spec/writers/crossref_xml_writer_spec.rb +28 -0
  26. metadata +14 -2
@@ -0,0 +1,136 @@
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: UTF-8
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
+ - '8589'
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Sun, 18 Jun 2023 05:14:41 GMT
31
+ Etag:
32
+ - '"m63byipmbt6mf"'
33
+ Server:
34
+ - Vercel
35
+ Strict-Transport-Security:
36
+ - max-age=63072000
37
+ X-Matched-Path:
38
+ - "/api/posts/[slug]"
39
+ X-Vercel-Cache:
40
+ - MISS
41
+ X-Vercel-Id:
42
+ - fra1::iad1::ww9vj-1687065281458-7b5cddd0bd21
43
+ Connection:
44
+ - close
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"id":"tag:blogger.com,1999:blog-4948885059517209129.post-2525787567927280589","uuid":"1898d2d7-4d87-4487-96c4-3073cf99e9a5","url":"http://sfmatheson.blogspot.com/2023/01/quintessence-of-dust-2023-restart-why.html","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 Quintessence of Dust, after another long hiatus.
53
+ Here are some of my reasons.1. I like to write, and I have things to say,
54
+ and I self-identify as an author. For eight years, I have co-organized and
55
+ taught in...","date_published":"2023-01-09T03:03:00Z","date_modified":"2023-04-02T21:17:07Z","date_indexed":"1970-01-01T00:00:00+00:00","authors":[{"url":null,"name":"Stephen
56
+ Matheson"}],"image":null,"content_html":"It''s early January 2023, a little
57
+ before sunset in Tucson. Live image below, showing the glorious Santa Catalina
58
+ mountains (the snow on the upper reaches is more apparent earlier in the day)
59
+ and my dinner preparations (shrimp and veggies on the grill).<div class=\"separator\"
60
+ style=\"clear: both; text-align: center;\"><a href=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghgBx9BU21qMDFnLxgHmnsl6TQVfb3QCwOXrC1zcXq7WH9gN8E0TcH3pTslRBG6O8mb5gcuF9JVtDlJ2je6dFcfyzKE4OD38-ftr66nBxddo892_NkyuevrrX65ndSbwmXMaLh3F5yiqU1QIj8JtA8FLkKOcHOEVwVafz0rzh7PejbFzp3XT25nQxc/s4032/Jan%207.jpg\"
61
+ style=\"clear: right; float: right; margin-bottom: 1em; margin-left: 1em;\"><img
62
+ border=\"0\" data-original-height=\"4032\" data-original-width=\"3024\" height=\"320\"
63
+ src=\"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghgBx9BU21qMDFnLxgHmnsl6TQVfb3QCwOXrC1zcXq7WH9gN8E0TcH3pTslRBG6O8mb5gcuF9JVtDlJ2je6dFcfyzKE4OD38-ftr66nBxddo892_NkyuevrrX65ndSbwmXMaLh3F5yiqU1QIj8JtA8FLkKOcHOEVwVafz0rzh7PejbFzp3XT25nQxc/s320/Jan%207.jpg\"
64
+ width=\"240\" /></a></div><br /><div><div>I''ve decided to start writing here
65
+ at <i>Quintessence of Dust</i>, after another long hiatus. Here are some of
66
+ my reasons.</div><div><br /></div><div>1. I like to write, and I have things
67
+ to say, and I self-identify as an author. For eight years, I have co-organized
68
+ and taught in the <a href=\"https://meetings.cshl.edu/courses.aspx?course=C-WRITE&amp;year=23\"
69
+ target=\"_blank\">Scientific Writing Retreat at Cold Spring Harbor Laboratory</a>.
70
+ I''m a writer and I need to write, if only for myself.</div><div><br /></div><div>2.
71
+ I have an idea for a book, along with some introductory work (but no sample
72
+ chapters yet) and writing here will help me develop those thoughts. The idea
73
+ is over twelve years old and has never faded away, which I take to mean that
74
+ I need to get it out of my system somehow.</div><div><br /></div><div>3. I
75
+ have other ideas kicking around in my head and most of them are worth writing
76
+ about. I have one new intellectual passion that is totally worth writing about:
77
+ <a href=\"https://skyislandalliance.org/the-sky-islands/\" target=\"_blank\">the
78
+ Sky Islands</a>&nbsp;that nearly surround us here in Tucson.</div><div><br
79
+ /></div><div>4. I have an exciting new job with great new people at <a href=\"https://plos.org/\"
80
+ target=\"_blank\">an organization</a> that''s all in for <a href=\"https://plos.org/open-science/\"
81
+ target=\"_blank\">open science</a>. I recently turned over the tens digit
82
+ on my age-o-meter. My kids will very soon be all out of college. (One is about
83
+ to start a postdoc!) All of this led, predictably, to a spasm of reflection
84
+ on projects and vision. One clear result is that I''m feeling more inspired.<span><a
85
+ name=''more''></a></span></div><div><br /></div><div>5. The demise of Twitter
86
+ has led to a lot of <a href=\"https://www.theatlantic.com/technology/archive/2022/11/twitter-facebook-social-media-decline/672074/\"
87
+ target=\"_blank\">useful commentary</a> about the nature of social media.
88
+ I left Facebook two years ago and all but left Twitter two months ago. I''m
89
+ on a&nbsp;<a href=\"https://fediscience.org/explore\" target=\"_blank\">good
90
+ server at Mastodon</a>&nbsp;and I like it; maybe microblogging there can satisfy
91
+ my desire for conversation and connection. But <a href=\"https://www.theverge.com/23513418/bring-back-personal-blogging\"
92
+ target=\"_blank\">this recent piece</a> at <i>The Verge</i> by <a href=\"https://moniquejudge.com/\"
93
+ target=\"_blank\">Monique Judge</a> convinced me that blogging could (again)
94
+ have a place in the future.</div><div><br /><div>Here''s her summary, emphasis
95
+ mine:</div><div><blockquote>At the end of the day, we don’t know what is going
96
+ to happen next with Twitter or any of these platforms. We don’t know what
97
+ changes <a href=\"https://www.techtarget.com/whatis/definition/Web-30\" target=\"_blank\">Web
98
+ 3.0</a> is going to bring to the internet. We do know that <b>we will all
99
+ still be here, wanting to share our thoughts, talk about anything and everything,
100
+ and commune with our people</b>. Personal blogging is the simplest and fastest
101
+ way to do all of that.&nbsp;</blockquote></div><div>That''s what I want! A
102
+ place to write, and (if I''m lucky) a place to discuss and \"commune\" with
103
+ people. That used to happen a lot at <i>Quintessence of Dust</i>.<span></span></div></div></div><div><br
104
+ /></div><div>Okay, but why here? This blog is over 15 years old and was started
105
+ when I was a Christian believer. <a href=\"https://sfmatheson.blogspot.com/2007/08/kicking-off-my-blog.html\"
106
+ target=\"_blank\">Its founding themes</a> were anchored in a desire to help
107
+ Christians understand and enjoy biology, to help them shake free of misinformation
108
+ and dishonesty. It has twice languished through long hiatuses and was <a href=\"https://sfmatheson.blogspot.com/p/about.html\"
109
+ target=\"_blank\">remodeled</a> back in 2017 a few years after I deconverted.
110
+ Maybe it''s time to start anew? I think not, for many of those same reasons:
111
+ I''m still a biologist who loves science, still worried about misinformation,
112
+ and still rooted in the power of scientific explanation. I''m still a bardolator
113
+ and a Red Sox fan. <a href=\"https://sfmatheson.blogspot.com/p/about.html\">I''m
114
+ still me</a>, and <i>Quintessence of Dust</i> is still my blog. The new <a
115
+ href=\"https://sfmatheson.blogspot.com/p/about.html\" target=\"_blank\">About
116
+ page</a> is slightly remodeled from 2017, and hints at the next post, which
117
+ will outline some new goals and ongoing projects.</div><div><br /></div><div>A
118
+ final note on inspiration, from Imani Perry, writing in her newsletter (<a
119
+ href=\"https://newsletters.theatlantic.com/unsettled-territory/\" target=\"_blank\">Unsettled
120
+ Territory</a>) at <i>The Atlantic</i>. The piece is \"<a href=\"https://newsletters.theatlantic.com/unsettled-territory/63af3facace609003751bacc/becoming-writer-habit-journalism/\"
121
+ target=\"_blank\">Writing is a Democratic Art</a>.\" It''s for subscribers
122
+ only but here is her challenge:</div><div><blockquote>Thinking and writing
123
+ at a faster pace stretched me and gave me greater confidence. Sometimes I
124
+ changed my mind about what I’d written a day later. But that was okay; a newsletter
125
+ is a moment in time. Writing it each week gave me a lovely rhythm in what
126
+ has otherwise been a difficult and disorienting season in history. Feeling
127
+ stuck can get you stuck. But writing can, and should, inspire deeds.</blockquote></div>","tags":["Introduction"],"language":"en","references":[],"blog_id":"5764g49","blog":{"id":"5764g49","title":"Quintessence
128
+ of Dust","description":"<i>Quintessence of Dust</i> explores science, society,
129
+ and human nature, focusing on genetics, development, evolution, neuroscience,
130
+ systems biology, and topics related to scientific literacy. I occasionally
131
+ discuss intelligent design, creationism, science denial, and other political/social
132
+ influences on scientific literacy. Additional topics: philosophy, baseball,
133
+ 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":"8498eaf6-8c58-4b58-bc15-27eda292b1aa","created_at":"2023-05-31T14:21:27+00:00","indexed_at":"2023-04-18","feed_format":"application/atom+xml","license":"https://creativecommons.org/licenses/by/4.0/legalcode","generator":"Blogger
134
+ 7.00","category":"Social Sciences","prefix":"10.59350","modified_at":"2023-06-06T20:22:00+00:00","version":"https://jsonfeed.org/version/1.1","backlog":true,"authors":null}}'
135
+ recorded_at: Sun, 18 Jun 2023 05:14:41 GMT
136
+ recorded_with: VCR 6.1.0
@@ -0,0 +1,91 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://rogue-scholar.org/api/posts/5561f8e4-2ff1-4186-a8d5-8dacb3afe414
6
+ body:
7
+ encoding: UTF-8
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
+ - '4357'
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Sat, 17 Jun 2023 20:47:27 GMT
31
+ Etag:
32
+ - '"wi68ur4zhx3d1"'
33
+ Server:
34
+ - Vercel
35
+ Strict-Transport-Security:
36
+ - max-age=63072000
37
+ X-Matched-Path:
38
+ - "/api/posts/[slug]"
39
+ X-Vercel-Cache:
40
+ - MISS
41
+ X-Vercel-Id:
42
+ - fra1::iad1::ws6nv-1687034847031-a547db209d0d
43
+ Connection:
44
+ - close
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"id":"https://libscie.org/ku-leuven-supports-researchequals/","uuid":"5561f8e4-2ff1-4186-a8d5-8dacb3afe414","url":"https://libscie.org/ku-leuven-supports-researchequals/","title":"KU
48
+ Leuven supports ResearchEquals","summary":"KU Leuven is now an inaugural supporting
49
+ member of ResearchEquals, sustaining and governing the development of modular
50
+ publishing.As part of their commitment to Open Science, KU Leuven supports
51
+ sustainable implementations of Open Access and Open Science through the KU
52
+ Leuven Fund for Fair OA. The fund is usually only","date_published":"2023-05-09T06:43:26Z","date_modified":null,"date_indexed":"1970-01-01T00:00:00+00:00","authors":[{"url":"https://ror.org/0342dzm54","name":"Liberate
53
+ Science"}],"image":"https://libscie.org/content/images/2023/04/thank-you-1-.jpg","content_html":"<img
54
+ src=\"https://libscie.org/content/images/2023/04/thank-you-1-.jpg\" alt=\"KU
55
+ Leuven supports ResearchEquals\"><p>KU Leuven is now an inaugural supporting
56
+ member of ResearchEquals, sustaining and governing the development of modular
57
+ publishing.</p><p>As part of their commitment to Open Science, KU Leuven supports
58
+ sustainable implementations of Open Access and Open Science through the <a
59
+ href=\"https://www.kuleuven.be/open-science/what-is-open-science/scholarly-publishing-and-open-access/open-access-kuleuven/OS-services?ref=libscie.org\">KU
60
+ Leuven Fund for Fair OA</a>. The fund is usually only available to non-profits,
61
+ but ResearchEquals&#x2019; governance convinced KU Leuven to support a for-profit
62
+ initiative.</p><p>&#x201C;We don&#x2019;t want to be too rigid in our approach
63
+ and understand that publishing or other research infrastructures can work
64
+ according to different sustainability models. What matters to us is that,
65
+ if profits are made, they are reinvested in the academic community and that
66
+ researchers remain firmly in control.&#x201D; Demmy Verbeke said.</p><p>Supporting
67
+ members help sustain operations and receive additional governance rights for
68
+ <a href=\"https://researchequals.com/?ref=libscie.org\">ResearchEquals</a>.
69
+ These rights include the option to participate in quarterly assemblies, strategy
70
+ and decision making processes, the power to block acquisitions, and to request
71
+ more information around business operations. As a result, supporting members
72
+ shape how ResearchEquals evolves. Individuals can become supporting members
73
+ for 79.99 euro&#x2019;s per year. Institutions can become supporting members
74
+ for a yearly contribution of at least 2500 euro&#x2019;s. </p><p>ResearchEquals
75
+ is an open source, open access publishing platform for research modules. ResearchEquals
76
+ realized the first modular publishing platform (launched February 1st, 2022),
77
+ which revolves around sharing the research process, step by step, instead
78
+ of only the final report.</p><p>&#x201C;It is great to see KU Leuven support
79
+ generative projects, regardless of whether they are for-profit or not&#x201D;
80
+ Chris Hartgerink said.</p><p>KU Leuven is one of the first institutional supporting
81
+ members of ResearchEquals.</p><hr><p>KU Leuven is one of the largest universities
82
+ in Belgium, with a strong commitment to open access and open science. Demmy
83
+ Verbeke and Laura Mesotten manage the Fund for Fair OA of KU Leuven Libraries.</p><p>Liberate
84
+ Science GmbH (est. 2019) cultivates alternative publishing formats that work
85
+ for researchers everywhere. ResearchEquals is a Liberate Science GmbH project.
86
+ For more information view the <a href=\"https://www.researchequals.com/supporting-member?ref=libscie.org\">supporting
87
+ member page</a> or contact CEO Chris Hartgerink (<a href=\"mailto:ceo@libscie.org\">ceo@libscie.org</a>).</p>","tags":["ResearchEquals"],"language":"en","references":null,"blog_id":"h49ct36","blog":{"id":"h49ct36","title":"Liberate
88
+ Science","description":"Research as a commons","language":"en","favicon":"https://libscie.org/favicon.png","feed_url":"https://libscie.org/rss/","home_page_url":"https://libscie.org/","user_id":"8498eaf6-8c58-4b58-bc15-27eda292b1aa","created_at":"2023-05-31T14:08:03+00:00","indexed_at":"2023-01-04","feed_format":"application/rss+xml","license":"https://creativecommons.org/licenses/by/4.0/legalcode","generator":"Ghost
89
+ 5.49","category":"Social Sciences","prefix":null,"modified_at":"2023-06-13T06:48:37+00:00","version":"https://jsonfeed.org/version/1.1","backlog":true,"authors":null}}'
90
+ recorded_at: Sat, 17 Jun 2023 20:47:27 GMT
91
+ recorded_with: VCR 6.1.0