commonmeta-ruby 3.2.0 → 3.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/bin/commonmeta +1 -1
  4. data/lib/commonmeta/cli.rb +7 -0
  5. data/lib/commonmeta/metadata_utils.rb +2 -2
  6. data/lib/commonmeta/readers/{json_post_reader.rb → json_feed_reader.rb} +16 -4
  7. data/lib/commonmeta/utils.rb +6 -2
  8. data/lib/commonmeta/version.rb +1 -1
  9. data/spec/cli_spec.rb +8 -0
  10. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/json_feed/blog_post.yml +360 -0
  11. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/citation_style_language.yml +360 -0
  12. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/citation_style_language_blog.yml +360 -0
  13. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/front-matter_blog.yml +1034 -0
  14. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/upstream.yml +2438 -0
  15. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/upstream_blog.yml +2438 -0
  16. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/blogger_post.yml +94 -0
  17. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_with_doi.yml +117 -0
  18. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/jekyll_post.yml +87 -0
  19. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/wordpress_post.yml +163 -0
  20. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_metadata/blogger_post.yml +141 -0
  21. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_metadata/ghost_post_with_doi.yml +164 -0
  22. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_metadata/jekyll_post.yml +134 -0
  23. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_metadata/wordpress_post.yml +210 -0
  24. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_post_metadata/blogger_post.yml +47 -0
  25. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_post_metadata/ghost_post_with_doi.yml +47 -0
  26. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_post_metadata/jekyll_post.yml +47 -0
  27. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_post_metadata/wordpress_post.yml +47 -0
  28. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/json_feed_url/front-matter_blog.yml +221 -0
  29. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_doi.yml +163 -0
  30. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_upstream_blog.yml +243 -0
  31. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_post_from_rogue_scholar_with_doi.yml +47 -0
  32. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_post_from_upstream_blog.yml +47 -0
  33. data/spec/readers/{json_post_reader_spec.rb → json_feed_reader_spec.rb} +23 -2
  34. data/spec/utils_spec.rb +8 -0
  35. data/spec/writers/crossref_xml_writer_spec.rb +2 -2
  36. metadata +20 -3
@@ -160,4 +160,51 @@ http_interactions:
160
160
  Transformation","Open Science","EU"],"language":"de","blog_id":"34zkv26","blog":{"id":"34zkv26","title":"wisspub.net","language":"de","favicon":null,"feed_url":"https://wisspub.net/feed/atom/","home_page_url":"https://wisspub.net/","license":"https://creativecommons.org/licenses/by/4.0/legalcode","category":"Engineering
161
161
  and Technology"}}'
162
162
  recorded_at: Sun, 04 Jun 2023 11:24:16 GMT
163
+ - request:
164
+ method: get
165
+ uri: https://rogue-scholar.org/api/blogs/https://rogue-scholar.org/api/posts/zkevlyd3
166
+ body:
167
+ encoding: UTF-8
168
+ string: ''
169
+ headers:
170
+ Connection:
171
+ - close
172
+ Host:
173
+ - rogue-scholar.org
174
+ User-Agent:
175
+ - http.rb/5.1.1
176
+ response:
177
+ status:
178
+ code: 308
179
+ message: Permanent Redirect
180
+ headers:
181
+ Cache-Control:
182
+ - public, max-age=0, must-revalidate
183
+ Content-Type:
184
+ - text/plain
185
+ Date:
186
+ - Sun, 04 Jun 2023 13:17:12 GMT
187
+ Location:
188
+ - "/api/blogs/https:/rogue-scholar.org/api/posts/zkevlyd3"
189
+ Refresh:
190
+ - 0;url=/api/blogs/https:/rogue-scholar.org/api/posts/zkevlyd3
191
+ Server:
192
+ - Vercel
193
+ Strict-Transport-Security:
194
+ - max-age=63072000
195
+ X-Vercel-Cache:
196
+ - MISS
197
+ X-Vercel-Id:
198
+ - fra1::qr2sb-1685884632978-8eaf788f74e2
199
+ Connection:
200
+ - close
201
+ Transfer-Encoding:
202
+ - chunked
203
+ body:
204
+ encoding: ASCII-8BIT
205
+ string: 'Redirecting to /api/blogs/https:/rogue-scholar.org/api/posts/zkevlyd3
206
+ (308)
207
+
208
+ '
209
+ recorded_at: Sun, 04 Jun 2023 13:17:12 GMT
163
210
  recorded_with: VCR 6.1.0
@@ -240,4 +240,51 @@ http_interactions:
240
240
  learning and become familiar with some of the available techniques.</p><p></p>
241
241
  ","tags":["Original Research"],"language":"en","blog_id":"pm0p222","blog":{"id":"pm0p222","title":"Upstream","language":"en","favicon":"https://upstream.force11.org/favicon.png","feed_url":"https://upstream.force11.org/atom/","home_page_url":"https://upstream.force11.org","license":"https://creativecommons.org/licenses/by/4.0/legalcode","category":"Humanities"}}'
242
242
  recorded_at: Sun, 04 Jun 2023 11:24:15 GMT
243
+ - request:
244
+ method: get
245
+ uri: https://rogue-scholar.org/api/blogs/https://rogue-scholar.org/api/posts/wve6rep4
246
+ body:
247
+ encoding: UTF-8
248
+ string: ''
249
+ headers:
250
+ Connection:
251
+ - close
252
+ Host:
253
+ - rogue-scholar.org
254
+ User-Agent:
255
+ - http.rb/5.1.1
256
+ response:
257
+ status:
258
+ code: 308
259
+ message: Permanent Redirect
260
+ headers:
261
+ Cache-Control:
262
+ - public, max-age=0, must-revalidate
263
+ Content-Type:
264
+ - text/plain
265
+ Date:
266
+ - Sun, 04 Jun 2023 13:17:12 GMT
267
+ Location:
268
+ - "/api/blogs/https:/rogue-scholar.org/api/posts/wve6rep4"
269
+ Refresh:
270
+ - 0;url=/api/blogs/https:/rogue-scholar.org/api/posts/wve6rep4
271
+ Server:
272
+ - Vercel
273
+ Strict-Transport-Security:
274
+ - max-age=63072000
275
+ X-Vercel-Cache:
276
+ - MISS
277
+ X-Vercel-Id:
278
+ - fra1::zpxrc-1685884632711-2572b6e572f4
279
+ Connection:
280
+ - close
281
+ Transfer-Encoding:
282
+ - chunked
283
+ body:
284
+ encoding: ASCII-8BIT
285
+ string: 'Redirecting to /api/blogs/https:/rogue-scholar.org/api/posts/wve6rep4
286
+ (308)
287
+
288
+ '
289
+ recorded_at: Sun, 04 Jun 2023 13:17:12 GMT
243
290
  recorded_with: VCR 6.1.0
@@ -3,9 +3,9 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe Commonmeta::Metadata, vcr: true do
6
- subject { described_class.new(input: input, from: 'json_feed') }
6
+ subject { described_class.new }
7
7
 
8
- context 'get json_post metadata' do
8
+ context 'get json_feed_item metadata' do
9
9
  it 'blogger post' do
10
10
  input = 'https://rogue-scholar.org/api/posts/1jgo59el'
11
11
  subject = described_class.new(input: input)
@@ -69,6 +69,7 @@ describe Commonmeta::Metadata, vcr: true do
69
69
  it 'jekyll post' do
70
70
  input = 'https://rogue-scholar.org/api/posts/1jdkwod5'
71
71
  subject = described_class.new(input: input)
72
+ puts subject.errors
72
73
  expect(subject.valid?).to be true
73
74
  expect(subject.id).to eq('https://citationstyles.org/2020/07/11/seeking-public-comment-on-CSL-1-0-2')
74
75
  expect(subject.url).to eq('https://citationstyles.org/2020/07/11/seeking-public-comment-on-CSL-1-0-2')
@@ -86,4 +87,24 @@ describe Commonmeta::Metadata, vcr: true do
86
87
  expect(subject.container).to eq("identifier"=>"https://citationstyles.org/", "identifierType"=>"URL", "title"=>"Citation Style Language", "type"=>"Periodical")
87
88
  end
88
89
  end
90
+
91
+ context 'get json_feed' do
92
+ it 'front-matter blog' do
93
+ id = 'f0m0e38'
94
+ response = subject.get_json_feed(id)
95
+ expect(response).to be_nil
96
+ end
97
+
98
+ it 'upstream' do
99
+ id = 'pm0p222'
100
+ response = subject.get_json_feed(id)
101
+ expect(response).to be_nil
102
+ end
103
+
104
+ it 'citation style language' do
105
+ id = 'prmb582'
106
+ response = subject.get_json_feed(id)
107
+ expect(response).to eq("1jdkoe52,4qe9ypg1,1jdkwod5,56glp9d9,1xdnk0d0,56glmmd9,1xdnoje0,31epl0dn,q0dqm6go")
108
+ end
109
+ end
89
110
  end
data/spec/utils_spec.rb CHANGED
@@ -664,4 +664,12 @@ describe Commonmeta::Metadata, vcr: true do
664
664
  expect(response).to eq(17_986_615_561)
665
665
  end
666
666
  end
667
+
668
+ context 'json_feed_url' do
669
+ it 'front-matter blog' do
670
+ id = 'f0m0e38'
671
+ response = subject.json_feed_url(id)
672
+ expect(response).to eq("https://rogue-scholar.org/api/blogs/f0m0e38")
673
+ end
674
+ end
667
675
  end
@@ -170,7 +170,7 @@ describe Commonmeta::Metadata, vcr: true do
170
170
  "title")).to eq("Deep dive into ethics of Contributor Roles: report of a FORCE11 workshop")
171
171
  end
172
172
 
173
- it "json_post from upstream blog" do
173
+ it "json_feed_item from upstream blog" do
174
174
  input = "https://rogue-scholar.org/api/posts/wve6rep4"
175
175
  subject = described_class.new(input: input)
176
176
 
@@ -193,7 +193,7 @@ describe Commonmeta::Metadata, vcr: true do
193
193
  "title")).to eq("Attempts at automating journal subject classification")
194
194
  end
195
195
 
196
- it "json_post from rogue scholar with doi" do
196
+ it "json_feed_item from rogue scholar with doi" do
197
197
  input = "https://rogue-scholar.org/api/posts/zkevlyd3"
198
198
  subject = described_class.new(input: input, doi: "10.59350/9ry27-7cz42")
199
199
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: commonmeta-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
@@ -596,7 +596,7 @@ files:
596
596
  - lib/commonmeta/readers/crossref_xml_reader.rb
597
597
  - lib/commonmeta/readers/csl_reader.rb
598
598
  - lib/commonmeta/readers/datacite_reader.rb
599
- - lib/commonmeta/readers/json_post_reader.rb
599
+ - lib/commonmeta/readers/json_feed_reader.rb
600
600
  - lib/commonmeta/readers/npm_reader.rb
601
601
  - lib/commonmeta/readers/ris_reader.rb
602
602
  - lib/commonmeta/readers/schema_org_reader.rb
@@ -1063,6 +1063,7 @@ files:
1063
1063
  - spec/fixtures/vcr_cassettes/Commonmeta_CLI/find_from_format_by_id/kisti.yml
1064
1064
  - spec/fixtures/vcr_cassettes/Commonmeta_CLI/find_from_format_by_id/medra.yml
1065
1065
  - spec/fixtures/vcr_cassettes/Commonmeta_CLI/find_from_format_by_id/op.yml
1066
+ - spec/fixtures/vcr_cassettes/Commonmeta_CLI/json_feed/blog_post.yml
1066
1067
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml
1067
1068
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/crossref.yml
1068
1069
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/datacite.yml
@@ -1150,6 +1151,19 @@ files:
1150
1151
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/nil.yml
1151
1152
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/past.yml
1152
1153
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/present.yml
1154
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/citation_style_language.yml
1155
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/citation_style_language_blog.yml
1156
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/front-matter_blog.yml
1157
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/upstream.yml
1158
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/upstream_blog.yml
1159
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/blogger_post.yml
1160
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_with_doi.yml
1161
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/jekyll_post.yml
1162
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/wordpress_post.yml
1163
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_metadata/blogger_post.yml
1164
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_metadata/ghost_post_with_doi.yml
1165
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_metadata/jekyll_post.yml
1166
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_metadata/wordpress_post.yml
1153
1167
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/blogger_post.yml
1154
1168
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/ghost_post.yml
1155
1169
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_item_metadata/ghost_post_with_doi.yml
@@ -1183,6 +1197,7 @@ files:
1183
1197
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_from_url_file.yml
1184
1198
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml
1185
1199
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/handle_input/unknown_DOI_prefix.yml
1200
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/json_feed_url/front-matter_blog.yml
1186
1201
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/json_schema_errors/is_valid.yml
1187
1202
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_cc_url/not_found.yml
1188
1203
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_cc_url/with_trailing_slash.yml
@@ -1268,6 +1283,8 @@ files:
1268
1283
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/another_schema_org_from_front-matter.yml
1269
1284
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article.yml
1270
1285
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article_from_datacite.yml
1286
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_doi.yml
1287
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_upstream_blog.yml
1271
1288
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_item_from_rogue_scholar_with_doi.yml
1272
1289
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_item_from_upstream_blog.yml
1273
1290
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_post_from_rogue_scholar_with_doi.yml
@@ -1354,7 +1371,7 @@ files:
1354
1371
  - spec/readers/crossref_xml_reader_spec.rb
1355
1372
  - spec/readers/csl_reader_spec.rb
1356
1373
  - spec/readers/datacite_reader_spec.rb
1357
- - spec/readers/json_post_reader_spec.rb
1374
+ - spec/readers/json_feed_reader_spec.rb
1358
1375
  - spec/readers/npm_reader_spec.rb
1359
1376
  - spec/readers/ris_reader_spec.rb
1360
1377
  - spec/readers/schema_org_reader_spec.rb