bibsonomy 0.4.9 → 0.4.10

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
  SHA1:
3
- metadata.gz: a49f98d282f7af4fe43e57572ebed332a8edeeb0
4
- data.tar.gz: b67833cb0964c9c5059b157d9aee5658935ee013
3
+ metadata.gz: d663777e3f80abee1893b48f69ea63285cd46831
4
+ data.tar.gz: ca800a9b1edb0089388c45a2fa374c68c2e6e908
5
5
  SHA512:
6
- metadata.gz: ed3024658f649b2566b79ed6588fb89a986fb6daffaeec750c32e3c9520e50d05c24850ee993db04abfdccbff02fb029bf2bab57864a26c7389d9383767ed0b3
7
- data.tar.gz: 5756909805eff1c0286018cf8745233db2909c55bc0451e12d9a097caf0866e7d04676badaaeec5deda258837e70cce509dc7def0c62d9feb50ad7bf41bd974b
6
+ metadata.gz: 3d59edc42adcc225fb04725882d0752ef68f19850173e1cdc847e5634eb205f6cd1946ae5bdcbf0baa673b90e82a095ba1d633eefd95939cdfa9b972969de0e9
7
+ data.tar.gz: b71cd309c671a5514522cb55a9086085d7a2d68a2bcc4faef886858a2bc4553409f13cfc3f05b973dcc9666ff8731d983ef389064fcaa240767553557ce48b48
data/bibsonomy.gemspec CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.summary = %q{Wraps the BibSonomy REST API.}
12
12
  spec.description = %q{Enables calls to the BibSonomy REST API with Ruby.}
13
13
  spec.homepage = "https://github.com/rjoberon/bibsonomy-ruby"
14
- spec.license = "LGPL 2.1"
14
+ spec.license = "LGPL-2.1"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.add_development_dependency "simplecov", '~> 0.7'
30
30
 
31
31
  spec.add_dependency "faraday", "~> 0.9"
32
- spec.add_dependency "json", "~> 1.8"
32
+ spec.add_dependency "json", "~> 2.0"
33
33
  spec.add_dependency "citeproc", "~> 1.0"
34
34
  spec.add_dependency "citeproc-ruby", "~> 1.0"
35
35
  spec.add_dependency "csl-styles", "~> 1.0"
data/lib/bibsonomy/csl.rb CHANGED
@@ -19,8 +19,12 @@ require 'bibsonomy'
19
19
  # - style
20
20
  # - directory
21
21
  # - group
22
+ # - altmetric
22
23
  #
23
24
  # Changes:
25
+ # 2017-07-05 (rja)
26
+ # - added support for Altmetric badges
27
+ # - adapted options for command line use to support groups
24
28
  # 2017-06-06 (rja)
25
29
  # - added support for DOIs which are actually URLs (i.e., include the resolver)
26
30
  # 2017-05-31 (rja)
@@ -71,6 +75,9 @@ module BibSonomy
71
75
  # @return [String] the separator between options. (default: ' | ')
72
76
  attr_accessor :opt_sep
73
77
 
78
+ # @return [String] the badge type for embedded Altmetric badges. If set to `nil`, no badge is included. (default: `nil`)
79
+ attr_accessor :altmetric_badge_type
80
+
74
81
  # @return [String] When a post has several documents and the
75
82
  # filename of one of them ends with `public_doc_postfix`, only
76
83
  # this document is downloaded and linked, all other are
@@ -95,6 +102,7 @@ module BibSonomy
95
102
  @year_headings = true
96
103
  @public_doc_postfix = '_oa.pdf'
97
104
  @group = 'public'
105
+ @altmetric_badge_type = nil
98
106
 
99
107
  # optional parts to be rendered (or not)
100
108
  @doi_link = true
@@ -202,6 +210,12 @@ module BibSonomy
202
210
  result += " <span class='opt'>[" + options.join(@opt_sep) + "]</span>"
203
211
  end
204
212
 
213
+ # attach Altmetric badge
214
+ if @altmetric_badge_type and doi != ""
215
+ doi, doi_url = get_doi(doi)
216
+ result += "<div class='altmetric-embed' data-badge-type='#{@altmetric_badge_type}' data-doi='#{doi}'></div>"
217
+ end
218
+
205
219
  result += "</li>\n"
206
220
  end
207
221
  result += "</ul>\n"
@@ -327,7 +341,8 @@ module BibSonomy
327
341
  options.directory = nil
328
342
  options.tags = []
329
343
  options.style = "apa.csl"
330
- options.group = "public"
344
+ options.viewable_group = "public"
345
+ options.altmetric = nil
331
346
  options.posts = 1000
332
347
 
333
348
  opt_parser = OptionParser.new do |opts|
@@ -339,12 +354,14 @@ module BibSonomy
339
354
  # mandatory arguments are handled separately
340
355
 
341
356
  # optional arguments
342
- opts.on('-u', '--user USER', 'return posts for USER instead of user') { |v| options[:user] = v }
357
+ opts.on('-u', '--user USER', 'get posts for USER') { |v| options[:user] = v }
358
+ opts.on('-g', '--group GROUP', 'get posts for GROUP') { |v| options[:group] = v }
343
359
  opts.on('-t', '--tags TAG,TAG,...', Array, 'return posts with the given tags') { |v| options[:tags] = v }
344
360
  opts.on('-s', '--style STYLE', 'use CSL style STYLE for rendering') { |v| options[:style] = v }
345
- opts.on('-g', '--group GROUP', 'include only posts viewable for GROUP') { |v| options[:group] = v }
361
+ opts.on('--viewable-group GROUP', 'include only posts viewable for GROUP') { |v| options[:viewable_group] = v }
346
362
  opts.on('-n', '--number-of-posts [COUNT]', Integer, 'number of posts to download') { |v| options[:posts] = v }
347
363
  opts.on('-d', '--directory DIR', 'target directory', ' (if not given, no documents are downloaed)') { |v| options[:directory] = v }
364
+ opts.on('-a', '--altmetric TYPE', 'render Altmetric badge with type TYPE') { |v| options[:altmetric] = v }
348
365
 
349
366
  opts.separator ""
350
367
  opts.separator "Common options:"
@@ -385,18 +402,29 @@ module BibSonomy
385
402
  exit
386
403
  end
387
404
 
388
- # set defaults for optional arguments
389
- options[:user] = options[:user_name] unless options[:user]
390
-
391
405
  #
392
406
  # do the actual work
393
407
  #
394
408
  csl = BibSonomy::CSL.new(options[:user_name], options[:api_key])
395
409
  csl.pdf_dir = options[:directory]
396
410
  csl.style = options[:style]
397
- csl.group = options[:group]
411
+ csl.group = options[:viewable_group]
412
+ csl.altmetric_badge_type = options[:altmetric]
413
+
414
+ if options[:group]
415
+ grouping = "group"
416
+ name = options[:group]
417
+ elsif options[:user]
418
+ grouping = "user"
419
+ name = options[:user]
420
+ else
421
+ # default: API user
422
+ grouping = "user"
423
+ name = options[:user_name]
424
+ end
398
425
 
399
- html = csl.render(options[:user], options[:tags], options[:posts])
426
+ puts "call: #{grouping}, #{name}"
427
+ html = csl.render(grouping, name, options[:tags], options[:posts])
400
428
 
401
429
  return html
402
430
 
@@ -1,3 +1,3 @@
1
1
  module BibSonomy
2
- VERSION = "0.4.9"
2
+ VERSION = "0.4.10"
3
3
  end
data/test/csl_test.rb CHANGED
@@ -19,17 +19,40 @@ class BibSonomyCSLTest < Minitest::Test
19
19
  end
20
20
  end
21
21
 
22
+ def test_render_all
23
+ VCR.use_cassette('render_all') do
24
+ html = @csl.render("user", "bibsonomy-ruby", [], 10)
25
+
26
+ assert_equal "<h3>2015</h3>", html[0..12]
27
+ assert_equal "<h3>2010</h3>", html[765..777]
28
+ assert_equal "</ul>", html[-6..-2]
29
+ end
30
+ end
31
+
22
32
  def test_render_doi
23
- VCR.use_cassette('render') do
33
+ VCR.use_cassette('render_doi') do
24
34
  html = @csl.render("user", "bibsonomy-ruby", ["doiok"], 10)
25
35
  # DOI is correct
26
- assert_equal "DOI:<a href='https://dx.doi.org/10.1007/s00778-010-0208-4'>10.1007/s00778-010-0208-4</a>", html[338,88]
36
+ assert_equal "DOI:<a href='https://dx.doi.org/10.1007/s00778-010-0208-4'>10.1007/s00778-010-0208-4</a>", html[339,88]
37
+ end
38
+ end
27
39
 
40
+ def test_render_broken_doi
41
+ VCR.use_cassette('render_broken_doi') do
28
42
  # DOI is a URL
29
43
  html = @csl.render("user", "bibsonomy-ruby", ["brokendoi", "test"], 10)
30
- # thus we have http not https!
31
- assert_equal "DOI:<a href='http://dx.doi.org/10.1145/2786451.2786927'>10.1145/2786451.2786927</a>", html[373,83]
44
+ # thus we have http not https
45
+ assert_equal "DOI:<a href='http://dx.doi.org/10.1145/2786451.2786927'>10.1145/2786451.2786927</a>", html[374,83]
32
46
  end
33
47
  end
34
48
 
49
+ def test_get_docs
50
+ VCR.use_cassette('get_docs') do
51
+ # DOI is a URL
52
+ @csl.pdf_dir = "docs"
53
+ html = @csl.render("user", "bibsonomy-ruby", ["test", "doiok"], 10)
54
+
55
+ assert_equal "<a href='docs/test.pdf'>PDF</a>", html[339,31]
56
+ end
57
+ end
35
58
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bibsonomy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.9
4
+ version: 0.4.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Jäschke
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-06 00:00:00.000000000 Z
11
+ date: 2017-07-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '1.8'
131
+ version: '2.0'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '1.8'
138
+ version: '2.0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: citeproc
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -216,7 +216,7 @@ files:
216
216
  - test/test_helper.rb
217
217
  homepage: https://github.com/rjoberon/bibsonomy-ruby
218
218
  licenses:
219
- - LGPL 2.1
219
+ - LGPL-2.1
220
220
  metadata: {}
221
221
  post_install_message:
222
222
  rdoc_options: []
@@ -234,7 +234,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
234
234
  version: '0'
235
235
  requirements: []
236
236
  rubyforge_project:
237
- rubygems_version: 2.2.2
237
+ rubygems_version: 2.5.2
238
238
  signing_key:
239
239
  specification_version: 4
240
240
  summary: Wraps the BibSonomy REST API.