bolognese 0.14.1 → 0.15.1

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: 0fc93964fad4674d2b9b1705322f339ea987df39e06ef8ce9602c8dea7d428af
4
- data.tar.gz: f44720740d5692689a13ba38ef81fbddde3b8354e9a80ba875c256cb60d69058
3
+ metadata.gz: 56b32be20dd588df8f23c07a7eb09f45eb2be130b440d7ec495e51808b1fd733
4
+ data.tar.gz: 32003c5ce802d4d16a68dfe2f6faa590509ae3f1f46e1b7b5a51ce175e6a2623
5
5
  SHA512:
6
- metadata.gz: 3445861477d2947e799acd2ce142567dbb47dcd1a7642d45d0a42351d79a75df2a2a706788051b4fe87241a369b339d6eff68148c4be8734b8c48a5a54f12cf3
7
- data.tar.gz: 5e5393f09097cd2190d8803397e03ac5d22cf9c7cc9a76dab60ca1d0b02db3bdadc7a5a328f123bbd65497d01e471c7c61ab6ce99acb6263cd898eab441a4fee
6
+ metadata.gz: 1c8fbcac163ce7a30c5eb2cdcfcd869c2c1a6b5d6c77c56c639edfa01b2cb17f4e9f09810ebf77399093d1d8626a3d980bbb6d5b939172650eef7a964b6ca1fa
7
+ data.tar.gz: e2b9346f1bd5e26ed4fdc08876878bf0ddbcd9a381a00d6751eb716c52e314a3b9a747d0ac0f6b43cf25f0e75d515fdfe9645d1e7d744d5629f438c955e1b012
data/.travis.yml CHANGED
@@ -4,6 +4,9 @@ rvm:
4
4
  - 2.4.1
5
5
 
6
6
  addons:
7
+ apt:
8
+ packages:
9
+ - language-pack-de
7
10
  code_climate:
8
11
  repo_token: $CODECLIMATE_REPO_TOKEN
9
12
 
data/Gemfile.lock CHANGED
@@ -1,19 +1,22 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bolognese (0.14.1)
4
+ bolognese (0.15.1)
5
5
  activesupport (>= 4.2.5, < 6)
6
6
  benchmark_methods (~> 0.7)
7
7
  bibtex-ruby (~> 4.1)
8
8
  builder (~> 3.2, >= 3.2.2)
9
+ citeproc-ruby (~> 1.1, >= 1.1.10)
9
10
  colorize (~> 0.8.1)
11
+ csl-styles (~> 1.0, >= 1.0.1.8)
12
+ edtf (~> 3.0, >= 3.0.4)
10
13
  gender_detector (~> 0.1.2)
11
14
  iso8601 (~> 0.9.1)
12
15
  json-ld (~> 2.1, >= 2.1.2)
13
16
  jsonlint (~> 0.2.0)
14
17
  loofah (~> 2.0, >= 2.0.3)
15
18
  maremma (>= 3.5.7, < 5)
16
- namae (~> 0.11.3)
19
+ namae (~> 1.0)
17
20
  nokogiri (~> 1.8.1)
18
21
  oj (>= 2.8.3)
19
22
  postrank-uri (~> 1.0, >= 1.0.18)
@@ -35,22 +38,33 @@ GEM
35
38
  bibtex-ruby (4.4.7)
36
39
  latex-decode (~> 0.0)
37
40
  builder (3.2.3)
38
- codeclimate-test-reporter (1.0.8)
41
+ citeproc (1.0.9)
42
+ namae (~> 1.0)
43
+ citeproc-ruby (1.1.10)
44
+ citeproc (~> 1.0, >= 1.0.9)
45
+ csl (~> 1.5)
46
+ codeclimate-test-reporter (1.0.9)
39
47
  simplecov (<= 0.13)
40
48
  colorize (0.8.1)
41
49
  concurrent-ruby (1.0.5)
42
50
  crack (0.4.3)
43
51
  safe_yaml (~> 1.0.0)
44
52
  crass (1.0.4)
53
+ csl (1.5.0)
54
+ namae (~> 1.0)
55
+ csl-styles (1.0.1.8)
56
+ csl (~> 1.0)
45
57
  diff-lcs (1.3)
46
58
  docile (1.1.5)
47
- ebnf (1.1.2)
48
- rdf (>= 2.2, < 4.0)
59
+ ebnf (1.1.3)
60
+ rdf (~> 3.0)
49
61
  sxp (~> 1.0)
62
+ edtf (3.0.4)
63
+ activesupport (>= 3.0, < 6.0)
50
64
  excon (0.62.0)
51
- faraday (0.15.2)
65
+ faraday (0.15.3)
52
66
  multipart-post (>= 1.2, < 3)
53
- faraday-encoding (0.0.4)
67
+ faraday-encoding (0.0.5)
54
68
  faraday
55
69
  faraday_middleware (0.12.2)
56
70
  faraday (>= 0.7.4, < 1.0)
@@ -93,8 +107,8 @@ GEM
93
107
  minitest (5.11.3)
94
108
  multi_json (1.13.1)
95
109
  multipart-post (2.0.0)
96
- namae (0.11.3)
97
- nokogiri (1.8.4)
110
+ namae (1.0.1)
111
+ nokogiri (1.8.5)
98
112
  mini_portile2 (~> 2.3.0)
99
113
  oj (2.18.5)
100
114
  postrank-uri (1.0.23)
@@ -106,7 +120,7 @@ GEM
106
120
  rack-test (0.8.3)
107
121
  rack (>= 1.0, < 3)
108
122
  rake (12.3.1)
109
- rdf (3.0.2)
123
+ rdf (3.0.4)
110
124
  hamster (~> 3.0)
111
125
  link_header (~> 0.0, >= 0.0.8)
112
126
  rdf-aggregate-repo (2.2.1)
@@ -125,7 +139,7 @@ GEM
125
139
  rdf-turtle (2.2.2)
126
140
  ebnf (~> 1.1)
127
141
  rdf (>= 2.2, < 4.0)
128
- rdf-xsd (3.0.0)
142
+ rdf-xsd (3.0.1)
129
143
  rdf (~> 3.0)
130
144
  rspec (3.8.0)
131
145
  rspec-core (~> 3.8.0)
@@ -133,7 +147,7 @@ GEM
133
147
  rspec-mocks (~> 3.8.0)
134
148
  rspec-core (3.8.0)
135
149
  rspec-support (~> 3.8.0)
136
- rspec-expectations (3.8.1)
150
+ rspec-expectations (3.8.2)
137
151
  diff-lcs (>= 1.2.0, < 2.0)
138
152
  rspec-support (~> 3.8.0)
139
153
  rspec-mocks (3.8.0)
data/README.md CHANGED
@@ -66,12 +66,19 @@ Bolognese reads and/or writes these metadata formats:
66
66
  <td>Yes</td>
67
67
  </tr>
68
68
  <tr>
69
- <td><a href='http://gsl-nagoya-u.net/http/pub/citeproc-doc.html'>Citeproc JSON</a></td>
69
+ <td><a href='https://citationstyles.org/'>Citeproc JSON</a></td>
70
70
  <td>citeproc</td>
71
71
  <td>application/vnd.citationstyles.csl+json</td>
72
72
  <td>Yes</td>
73
73
  <td>Yes</td>
74
74
  </tr>
75
+ <tr>
76
+ <td><a href='https://citationstyles.org/'>Formatted text citation</a></td>
77
+ <td>citation</td>
78
+ <td>text/x-bibliography</td>
79
+ <td>No</td>
80
+ <td>Yes</td>
81
+ </tr>
75
82
  <tr>
76
83
  <td><a href='https://codemeta.github.io/'>Codemeta</a></td>
77
84
  <td>codemeta</td>
data/bolognese.gemspec CHANGED
@@ -24,7 +24,10 @@ Gem::Specification.new do |s|
24
24
  s.add_dependency 'bibtex-ruby', '~> 4.1'
25
25
  s.add_dependency 'thor', '~> 0.19'
26
26
  s.add_dependency 'colorize', '~> 0.8.1'
27
- s.add_dependency 'namae', '~> 0.11.3'
27
+ s.add_dependency 'namae', '~> 1.0'
28
+ s.add_dependency 'edtf', '~> 3.0', '>= 3.0.4'
29
+ s.add_dependency 'citeproc-ruby', '~> 1.1', '>= 1.1.10'
30
+ s.add_dependency 'csl-styles', '~> 1.0', '>= 1.0.1.8'
28
31
  s.add_dependency 'iso8601', '~> 0.9.1'
29
32
  s.add_dependency 'postrank-uri', '~> 1.0', '>= 1.0.18'
30
33
  s.add_dependency 'json-ld', '~> 2.1', '>= 2.1.2'
data/lib/bolognese.rb CHANGED
@@ -15,6 +15,9 @@ require 'iso8601'
15
15
  require 'jsonlint'
16
16
  require 'benchmark_methods'
17
17
  require 'gender_detector'
18
+ require 'citeproc/ruby'
19
+ require 'citeproc'
20
+ require 'csl/styles'
18
21
 
19
22
  require "bolognese/version"
20
23
  require "bolognese/metadata"
@@ -339,6 +339,29 @@ module Bolognese
339
339
  RDF::Graph.new << JSON::LD::API.toRdf(schema_hsh)
340
340
  end
341
341
 
342
+ def citeproc_hsh
343
+ {
344
+ "type" => citeproc_type,
345
+ "id" => identifier,
346
+ "categories" => Array.wrap(keywords).map { |k| parse_attributes(k, content: "text", first: true) }.presence,
347
+ "language" => language,
348
+ "author" => to_citeproc(author),
349
+ "editor" => to_citeproc(editor),
350
+ "issued" => date_published ? get_date_parts(date_published) : nil,
351
+ "submitted" => date_submitted ? get_date_parts(date_submitted) : nil,
352
+ "abstract" => parse_attributes(description, content: "text", first: true),
353
+ "container-title" => container_title,
354
+ "DOI" => doi,
355
+ "issue" => issue,
356
+ "page" => [first_page, last_page].compact.join("-").presence,
357
+ "publisher" => publisher,
358
+ "title" => parse_attributes(title, content: "text", first: true),
359
+ "URL" => b_url,
360
+ "version" => b_version,
361
+ "volume" => volume
362
+ }.compact.symbolize_keys
363
+ end
364
+
342
365
  def style
343
366
  @style ||= "apa"
344
367
  end
@@ -1,3 +1,3 @@
1
1
  module Bolognese
2
- VERSION = "0.14.1"
2
+ VERSION = "0.15.1"
3
3
  end
@@ -4,10 +4,10 @@ module Bolognese
4
4
  module Writers
5
5
  module CitationWriter
6
6
  def citation
7
- params = { style: style, locale: locale }
8
- citation_url = "https://citation.crosscite.org/format?" + URI.encode_www_form(params)
9
- response = Maremma.post citation_url, content_type: 'json', data: citeproc
10
- response.body.fetch("data", nil)
7
+ cp = CiteProc::Processor.new(style: style, locale: locale, format: 'html')
8
+ cp.import Array.wrap(citeproc_hsh)
9
+ bibliography = cp.render :bibliography, id: identifier
10
+ bibliography.first
11
11
  end
12
12
  end
13
13
  end
@@ -4,27 +4,7 @@ module Bolognese
4
4
  module Writers
5
5
  module CiteprocWriter
6
6
  def citeproc
7
- hsh = {
8
- "type" => citeproc_type,
9
- "id" => identifier,
10
- "categories" => Array.wrap(keywords).map { |k| parse_attributes(k, content: "text", first: true) }.presence,
11
- "language" => language,
12
- "author" => to_citeproc(author),
13
- "editor" => to_citeproc(editor),
14
- "issued" => date_published ? get_date_parts(date_published) : nil,
15
- "submitted" => date_submitted ? get_date_parts(date_submitted) : nil,
16
- "abstract" => parse_attributes(description, content: "text", first: true),
17
- "container-title" => container_title,
18
- "DOI" => doi,
19
- "issue" => issue,
20
- "page" => [first_page, last_page].compact.join("-").presence,
21
- "publisher" => publisher,
22
- "title" => parse_attributes(title, content: "text", first: true),
23
- "URL" => b_url,
24
- "version" => b_version,
25
- "volume" => volume
26
- }.compact
27
- JSON.pretty_generate hsh.presence
7
+ JSON.pretty_generate citeproc_hsh.presence
28
8
  end
29
9
  end
30
10
  end
@@ -9,16 +9,16 @@ describe Bolognese::Metadata, vcr: true do
9
9
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
10
10
  expect(subject.style).to eq("apa")
11
11
  expect(subject.locale).to eq("en-US")
12
- expect(subject.citation).to eq("Sankar, M., Nieminen, K., Ragni, L., Xenarios, I., & Hardtke, C. S. (2014). Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth. eLife, 3. https://doi.org/10.7554/elife.01567")
12
+ expect(subject.citation).to eq("Sankar, M., Nieminen, K., Ragni, L., Xenarios, I., &amp; Hardtke, C. S. (2014). Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth. <i>ELife</i>, <i>3</i>. https://doi.org/10.7554/elife.01567")
13
13
  end
14
14
 
15
- it "Journal article vancouver style" do
16
- input = "10.7554/eLife.01567"
17
- subject = Bolognese::Metadata.new(input: input, from: "crossref", style: "vancouver", locale: "de-de")
18
- expect(subject.style).to eq("vancouver")
19
- expect(subject.locale).to eq("de-de")
20
- expect(subject.citation).to eq("1. Sankar M, Nieminen K, Ragni L, Xenarios I, Hardtke CS. Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth. eLife [Internet]. 2014 Feb 11;3. Available from: https://elifesciences.org/articles/01567")
21
- end
15
+ # it "Journal article vancouver style" do
16
+ # input = "10.7554/eLife.01567"
17
+ # subject = Bolognese::Metadata.new(input: input, from: "crossref", style: "vancouver", locale: "de-de")
18
+ # expect(subject.style).to eq("vancouver")
19
+ # expect(subject.locale).to eq("de-de")
20
+ # expect(subject.citation).to eq("Sankar M, Nieminen K, Ragni L, Xenarios I, Hardtke CS. Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth. eLife [Internet]. 11. Februar 2014;3. Verfügbar unter: https://elifesciences.org/articles/01567")
21
+ # end
22
22
 
23
23
  it "Dataset" do
24
24
  input = "https://doi.org/10.5061/DRYAD.8515"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bolognese
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.1
4
+ version: 0.15.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-08 00:00:00.000000000 Z
11
+ date: 2018-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma
@@ -152,14 +152,74 @@ dependencies:
152
152
  requirements:
153
153
  - - "~>"
154
154
  - !ruby/object:Gem::Version
155
- version: 0.11.3
155
+ version: '1.0'
156
+ type: :runtime
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - "~>"
161
+ - !ruby/object:Gem::Version
162
+ version: '1.0'
163
+ - !ruby/object:Gem::Dependency
164
+ name: edtf
165
+ requirement: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '3.0'
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: 3.0.4
156
173
  type: :runtime
157
174
  prerelease: false
158
175
  version_requirements: !ruby/object:Gem::Requirement
159
176
  requirements:
160
177
  - - "~>"
161
178
  - !ruby/object:Gem::Version
162
- version: 0.11.3
179
+ version: '3.0'
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 3.0.4
183
+ - !ruby/object:Gem::Dependency
184
+ name: citeproc-ruby
185
+ requirement: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - "~>"
188
+ - !ruby/object:Gem::Version
189
+ version: '1.1'
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 1.1.10
193
+ type: :runtime
194
+ prerelease: false
195
+ version_requirements: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - "~>"
198
+ - !ruby/object:Gem::Version
199
+ version: '1.1'
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 1.1.10
203
+ - !ruby/object:Gem::Dependency
204
+ name: csl-styles
205
+ requirement: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '1.0'
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: 1.0.1.8
213
+ type: :runtime
214
+ prerelease: false
215
+ version_requirements: !ruby/object:Gem::Requirement
216
+ requirements:
217
+ - - "~>"
218
+ - !ruby/object:Gem::Version
219
+ version: '1.0'
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: 1.0.1.8
163
223
  - !ruby/object:Gem::Dependency
164
224
  name: iso8601
165
225
  requirement: !ruby/object:Gem::Requirement