bibsonomy 0.4.0 → 0.4.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 +4 -4
- data/README.md +9 -5
- data/bibsonomy.gemspec +0 -1
- data/lib/bibsonomy/api.rb +27 -10
- data/lib/bibsonomy/csl.rb +55 -96
- data/lib/bibsonomy/post.rb +1 -1
- data/lib/bibsonomy/version.rb +1 -1
- metadata +1 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e90577cd917b74e5f0db75296b9ea9e53bca4ca
|
4
|
+
data.tar.gz: 00d3ca6fe7d1cc3b628f1e4fe56a8230aa445021
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4156a1444092b27d3e1ba14046eefd585ee66b16b992324364c8b49c99ffb3e7f511273989a94c9e100ad10959f792af40ae397d275d68feefac279255515772
|
7
|
+
data.tar.gz: e7142bbfc9134a812419b844a4a5cff7edd7321ed6320f13c64724a36179f03d510f6bed4611f88b92cd93f3af26d01b4f0488c785952e73ff97f7564de333d2
|
data/README.md
CHANGED
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
BibSonomy client for Ruby
|
4
4
|
|
5
|
+
[](http://badge.fury.io/rb/bibsonomy)
|
6
|
+
|
5
7
|
## Installation
|
6
8
|
|
7
9
|
Add this line to your application's Gemfile:
|
@@ -64,7 +66,7 @@ module Jekyll
|
|
64
66
|
@tag = parts[1]
|
65
67
|
@count = Integer(parts[2])
|
66
68
|
end
|
67
|
-
|
69
|
+
|
68
70
|
def render(context)
|
69
71
|
site = context.registers[:site]
|
70
72
|
|
@@ -76,7 +78,7 @@ module Jekyll
|
|
76
78
|
# target directory for PDF documents
|
77
79
|
pdf_dir = site.config['bibsonomy_document_directory']
|
78
80
|
csl.pdf_dir = pdf_dir
|
79
|
-
|
81
|
+
|
80
82
|
# CSL style for rendering
|
81
83
|
style = site.config['bibsonomy_style']
|
82
84
|
csl.style = style
|
@@ -85,7 +87,7 @@ module Jekyll
|
|
85
87
|
|
86
88
|
# set date to now
|
87
89
|
context.registers[:page]["date"] = Time.new
|
88
|
-
|
90
|
+
|
89
91
|
return html
|
90
92
|
end
|
91
93
|
end
|
@@ -97,13 +99,13 @@ Liquid::Template.register_tag('bibsonomy', Jekyll::BibSonomyPostList)
|
|
97
99
|
|
98
100
|
The plugin can be used inside Markdown files as follows:
|
99
101
|
|
100
|
-
```
|
102
|
+
```Liquid
|
101
103
|
{% bibsonomy jaeschke myown 100 %}
|
102
104
|
```
|
103
105
|
|
104
106
|
Add the following options to your `_config.yml`:
|
105
107
|
|
106
|
-
```
|
108
|
+
```YAML
|
107
109
|
bibsonomy_user: yourusername
|
108
110
|
bibsonomy_apikey: yourapikey
|
109
111
|
bibsonomy_document_directory: pdf
|
@@ -111,6 +113,8 @@ bibsonomy_document_directory: pdf
|
|
111
113
|
bibsonomy_style: springer-lecture-notes-in-computer-science
|
112
114
|
```
|
113
115
|
|
116
|
+
For an example, have a look at [my publication list](http://www.kbs.uni-hannover.de/~jaeschke/publications.html).
|
117
|
+
|
114
118
|
|
115
119
|
## Contributing
|
116
120
|
|
data/bibsonomy.gemspec
CHANGED
data/lib/bibsonomy/api.rb
CHANGED
@@ -64,9 +64,10 @@ module BibSonomy
|
|
64
64
|
#
|
65
65
|
# Get a single post
|
66
66
|
#
|
67
|
-
#
|
68
|
-
#
|
69
|
-
#
|
67
|
+
# Params:
|
68
|
+
# +user_name+:: [String] The name of the post's owner.
|
69
|
+
# +intra_hash+:: [String] The intrag hash of the post.
|
70
|
+
# +return+:: [BibSonomy::Post] the requested post
|
70
71
|
#
|
71
72
|
def get_post(user_name, intra_hash)
|
72
73
|
response = @conn.get "/api/users/" + CGI.escape(user_name) + "/posts/" + CGI.escape(intra_hash), { :format => @format }
|
@@ -81,10 +82,12 @@ module BibSonomy
|
|
81
82
|
#
|
82
83
|
# Get posts owned by a user, optionally filtered by tags.
|
83
84
|
#
|
84
|
-
#
|
85
|
-
#
|
86
|
-
# supported are 'bookmark' and 'publication'.
|
87
|
-
#
|
85
|
+
# Params:
|
86
|
+
# +user_name+:: [String] The name of the posts' owner.
|
87
|
+
# +resource_type+:: [String] The type of the post. Currently supported are 'bookmark' and 'publication'.
|
88
|
+
# +tags+::
|
89
|
+
# +start+::
|
90
|
+
# +endc+::
|
88
91
|
def get_posts_for_user(user_name, resource_type, tags = nil, start = 0, endc = $MAX_POSTS_PER_REQUEST)
|
89
92
|
params = {
|
90
93
|
:format => @format,
|
@@ -110,8 +113,12 @@ module BibSonomy
|
|
110
113
|
end
|
111
114
|
|
112
115
|
#
|
113
|
-
#
|
116
|
+
# Get a document belonging to a post.
|
114
117
|
#
|
118
|
+
# Params:
|
119
|
+
# +user_name+::
|
120
|
+
# +intra_hash+::
|
121
|
+
# +file_name+::
|
115
122
|
def get_document(user_name, intra_hash, file_name)
|
116
123
|
response = @conn.get get_document_href(user_name, intra_hash, file_name)
|
117
124
|
if response.status == 200
|
@@ -120,6 +127,14 @@ module BibSonomy
|
|
120
127
|
return nil, nil
|
121
128
|
end
|
122
129
|
|
130
|
+
#
|
131
|
+
# Get the preview for a document belonging to a post.
|
132
|
+
#
|
133
|
+
# Params:
|
134
|
+
# +user_name+::
|
135
|
+
# +intra_hash+::
|
136
|
+
# +file_name+::
|
137
|
+
# +size+::
|
123
138
|
def get_document_preview(user_name, intra_hash, file_name, size)
|
124
139
|
response = get_document_href(user_name, intra_hash, file_name), { :preview => size }
|
125
140
|
if response.status = 200
|
@@ -128,12 +143,14 @@ module BibSonomy
|
|
128
143
|
return nil, nil
|
129
144
|
end
|
130
145
|
|
146
|
+
|
147
|
+
|
148
|
+
private
|
149
|
+
|
131
150
|
#
|
132
151
|
# Convenience method to allow sloppy specification of the resource
|
133
152
|
# type.
|
134
153
|
#
|
135
|
-
# @private
|
136
|
-
#
|
137
154
|
def get_resource_type(resource_type)
|
138
155
|
if $resource_types_bookmark.include? resource_type.downcase()
|
139
156
|
return "bookmark"
|
data/lib/bibsonomy/csl.rb
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
require 'optparse'
|
4
4
|
require 'citeproc'
|
5
5
|
require 'csl/styles'
|
6
|
-
require 'bibtex'
|
7
6
|
require 'json'
|
8
7
|
require 'bibsonomy'
|
9
8
|
|
@@ -27,14 +26,55 @@ require 'bibsonomy'
|
|
27
26
|
# TODO:
|
28
27
|
# - escape data
|
29
28
|
# - make sorting, etc. configurable
|
30
|
-
# - add link to BibSonomy
|
31
29
|
# - automatically rename files (TODO: CSL lacks BibTeX key)
|
32
|
-
# - add intra_hash, user_name,
|
30
|
+
# - add intra_hash, user_name, etc. to CSL (cf. https://bitbucket.org/bibsonomy/bibsonomy/issue/2411/)
|
33
31
|
# - integrate AJAX abstract
|
34
32
|
# - make all options available via command line
|
35
33
|
|
36
34
|
module BibSonomy
|
37
35
|
class CSL
|
36
|
+
##
|
37
|
+
# :attr_accessor: pdf_dir
|
38
|
+
# The output directory for downloaded PDF files. If set to +nil+, no documents are downloaded. (default: +nil+)
|
39
|
+
|
40
|
+
##
|
41
|
+
# :attr_accessor: style
|
42
|
+
# The CSL[http://citationstyles.org/] style used for rendering. (default: +apa.csl+)
|
43
|
+
|
44
|
+
##
|
45
|
+
# :attr_accessor: year_headings
|
46
|
+
# A boolean indicating whether year headings shall be rendered. (default: enabled)
|
47
|
+
|
48
|
+
##
|
49
|
+
# :attr_accessor: css_class
|
50
|
+
# The CSS class used to render the surrounding +<ul>+ list (default: 'publications')
|
51
|
+
|
52
|
+
##
|
53
|
+
# :attr_accessor: doi_link
|
54
|
+
# A boolean indicating whether links for DOIs shall be rendered. (default: true)
|
55
|
+
|
56
|
+
##
|
57
|
+
# :attr_accessor: url_link
|
58
|
+
# A boolean indicating whether URLs of posts shall be rendered. (default: true)
|
59
|
+
|
60
|
+
##
|
61
|
+
# :attr_accessor: bibtex_link
|
62
|
+
# A boolean indicating whether links to the BibTeX data of a post (in BibSonomy) shall be rendered. (default: true)
|
63
|
+
|
64
|
+
##
|
65
|
+
# :attr_accessor: bibsonomy_link
|
66
|
+
# A boolean indicating whether links BibSonomy shall be rendered. (default: true)
|
67
|
+
|
68
|
+
##
|
69
|
+
# :attr_accessor: opt_sep
|
70
|
+
# The separator between options. (default: ' | ')
|
71
|
+
|
72
|
+
##
|
73
|
+
# :attr_accessor: public_doc_postfix
|
74
|
+
# When a post has several documents and the filename of one of them ends with +public_doc_postfix+, only this document is downloaded and linked, all other are ignored. (default: '_oa.pdf')
|
75
|
+
|
76
|
+
# publicly accessible attributes
|
77
|
+
attr_accessor :style, :pdf_dir, :css_class, :year_headings, :public_doc_postfix, :doi_link, :url_link, :bibtex_link, :bibsonomy_link, :opt_sep
|
38
78
|
|
39
79
|
#
|
40
80
|
# Create a new BibSonomy instance
|
@@ -89,7 +129,7 @@ module BibSonomy
|
|
89
129
|
result += "<h3>" + last_year + "</h3>"
|
90
130
|
end
|
91
131
|
|
92
|
-
result += "<ul class='#{@
|
132
|
+
result += "<ul class='#{@css_class}'>\n"
|
93
133
|
for post_id in sorted_keys
|
94
134
|
post = posts[post_id]
|
95
135
|
|
@@ -98,7 +138,7 @@ module BibSonomy
|
|
98
138
|
year = get_year(post)
|
99
139
|
if year != last_year
|
100
140
|
last_year = year
|
101
|
-
result += "</ul>\n<h3>" + last_year + "</h3>\n<ul class='#{@
|
141
|
+
result += "</ul>\n<h3>" + last_year + "</h3>\n<ul class='#{@css_class}'>\n"
|
102
142
|
end
|
103
143
|
end
|
104
144
|
|
@@ -142,13 +182,19 @@ module BibSonomy
|
|
142
182
|
if options.length > 0
|
143
183
|
result += " <span class='opt'>[" + options.join(@opt_sep) + "]</span>"
|
144
184
|
end
|
145
|
-
|
185
|
+
|
146
186
|
result += "</li>\n"
|
147
187
|
end
|
148
188
|
result += "</ul>\n"
|
149
189
|
|
150
190
|
return result
|
151
191
|
end
|
192
|
+
|
193
|
+
|
194
|
+
#
|
195
|
+
# private methods follow
|
196
|
+
#
|
197
|
+
private
|
152
198
|
|
153
199
|
def get_year(post)
|
154
200
|
return post["issued"]["literal"]
|
@@ -167,7 +213,7 @@ module BibSonomy
|
|
167
213
|
end
|
168
214
|
|
169
215
|
#
|
170
|
-
# only show PDF files
|
216
|
+
# only show PDF files
|
171
217
|
#
|
172
218
|
def get_public_docs(documents)
|
173
219
|
result = []
|
@@ -221,93 +267,6 @@ module BibSonomy
|
|
221
267
|
return [post_id[0, 32], post_id[32, post_id.length]]
|
222
268
|
end
|
223
269
|
|
224
|
-
#
|
225
|
-
# setters
|
226
|
-
#
|
227
|
-
|
228
|
-
#
|
229
|
-
# Set the output directory for downloaded PDF files (default: +nil+)
|
230
|
-
# Params:
|
231
|
-
# +pdf_dir+:: directory for downloaded PDF files. If set to +nil+, no documents are downloaded.
|
232
|
-
def pdf_dir=(pdf_dir)
|
233
|
-
@pdf_dir = pdf_dir
|
234
|
-
end
|
235
|
-
|
236
|
-
#
|
237
|
-
# Set the CSL style used for rendering (default: +apa.csl+)
|
238
|
-
# Params:
|
239
|
-
# +style+:: CSL style used for rendering
|
240
|
-
def style=(style)
|
241
|
-
@style = style
|
242
|
-
end
|
243
|
-
|
244
|
-
#
|
245
|
-
# Enable/disable headings for years (default: enabled)
|
246
|
-
# Params:
|
247
|
-
# +year_headings+:: boolean indicating whether year headings shall be rendered
|
248
|
-
def year_headings=(year_headings)
|
249
|
-
@year_headings = year_headings
|
250
|
-
end
|
251
|
-
|
252
|
-
#
|
253
|
-
# The CSS class used to render the surrounding +<ul>+ list (default: 'publications')
|
254
|
-
# Params:
|
255
|
-
# +css_class+:: string indicating the CSS class for rendering the publication list
|
256
|
-
def css_class=(css_class)
|
257
|
-
@css_class = css_class
|
258
|
-
end
|
259
|
-
|
260
|
-
#
|
261
|
-
# Shall links for DOIs be rendered? (default: true)
|
262
|
-
# Params:
|
263
|
-
# +doi_link+:: render DOI link
|
264
|
-
def doi_link=(doi_link)
|
265
|
-
@doi_link = doi_link
|
266
|
-
end
|
267
|
-
|
268
|
-
#
|
269
|
-
# Shall links for URLs of posts be rendered? (default: true)
|
270
|
-
# Params:
|
271
|
-
# +url_link+:: render URL link
|
272
|
-
def url_link=(url_link)
|
273
|
-
@url_link = url_link
|
274
|
-
end
|
275
|
-
|
276
|
-
#
|
277
|
-
# Shall links to the BibTeX of a post (in BibSonomy) be rendered? (default: true)
|
278
|
-
# Params:
|
279
|
-
# +bibtex_link+:: render BibTeX link
|
280
|
-
def bibtex_link=(bibtex_link)
|
281
|
-
@bibtex_link = bibtex_link
|
282
|
-
end
|
283
|
-
|
284
|
-
#
|
285
|
-
# Shall links to BibSonomy be rendered? (default: true)
|
286
|
-
# Params:
|
287
|
-
# +bibsonomy_link+:: render BibSonomy link
|
288
|
-
def bibsonomy_link=(bibsonomy_link)
|
289
|
-
@bibsonomy_link = bibsonomy_link
|
290
|
-
end
|
291
|
-
|
292
|
-
#
|
293
|
-
# Separator between options (default: ' | ')
|
294
|
-
# Params:
|
295
|
-
# +opt_sep+:: option separator
|
296
|
-
def opt_sep=(opt_sep)
|
297
|
-
@opt_sep = opt_sep
|
298
|
-
end
|
299
|
-
|
300
|
-
#
|
301
|
-
# When a post has several documents and the filename of one of
|
302
|
-
# them ends with +public_doc_postfix+, only this document is
|
303
|
-
# downloaded and linked, all other are ignored. (default:
|
304
|
-
# '_oa.pdf')
|
305
|
-
# Params:
|
306
|
-
# +public_doc_postfix+:: postfix to check at document filenames
|
307
|
-
def public_doc_postfix=(public_doc_postfix)
|
308
|
-
@public_doc_postfix = public_doc_postfix
|
309
|
-
end
|
310
|
-
|
311
270
|
end
|
312
271
|
|
313
272
|
|
@@ -383,8 +342,8 @@ module BibSonomy
|
|
383
342
|
# do the actual work
|
384
343
|
#
|
385
344
|
csl = BibSonomy::CSL.new(options[:user_name], options[:api_key])
|
386
|
-
csl.pdf_dir
|
387
|
-
csl.style
|
345
|
+
csl.pdf_dir = options[:directory]
|
346
|
+
csl.style = options[:style]
|
388
347
|
|
389
348
|
html = csl.render(options[:user], options[:tags], options[:posts])
|
390
349
|
|
data/lib/bibsonomy/post.rb
CHANGED
data/lib/bibsonomy/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bibsonomy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Jäschke
|
@@ -136,20 +136,6 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '1.0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: bibtex-ruby
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - "~>"
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '4.0'
|
146
|
-
type: :runtime
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - "~>"
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '4.0'
|
153
139
|
description: Enables calls to the BibSonomy REST API with Ruby.
|
154
140
|
email:
|
155
141
|
- jaeschke@l3s.de
|