bibsonomy 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 744185c9e820f247763e9318fff488955e65bf01
4
- data.tar.gz: 271d38a9ce805a00cc4063ec884e50a6d0c5e18d
3
+ metadata.gz: c8d9d23c1914cd4715fa7c9642e3b116c98d7b4b
4
+ data.tar.gz: 880c61defc6356d790ac26c65538d9bb084c57a7
5
5
  SHA512:
6
- metadata.gz: a01f839150ecb55c934f2d4894a114ae39aa4869337cb8c0bb4bfe706860d1cfc9469d33198cd72babc28c6e53c0ae517cd788ae67ecfd1e1dc59356fa3b5dba
7
- data.tar.gz: ecc8ef451e0339579cd93d2950800d7609369b47dc84f521bf50fc040546e31e3a83102bdca779e52f81b5756f584b9ec9007dd7e4a61471e05c5d330ba08faf
6
+ metadata.gz: a86ad6a98c4f48621c6baca09b8159707540c474fa55c21f2b10e047e1d50e623ef4825623b022aba748058e16dd6998f413a6d4baa9d27d50ce88c7c62a1898
7
+ data.tar.gz: f74e7b55616b18ed0db1602b58e0ae85cb31094780fa52ca170c144ded2af7bd079599cbe6df8873d8a3d6406cad2795138edec54a4a5b83be3ea3fb0b2feff6
data/lib/bibsonomy/api.rb CHANGED
@@ -2,11 +2,6 @@
2
2
  require 'faraday'
3
3
  require 'json'
4
4
 
5
- #
6
- # TODO:
7
- # - error handling
8
- # - getting more than 1000 posts
9
- #
10
5
 
11
6
  # configuration options
12
7
  $API_URL = "https://www.bibsonomy.org/"
@@ -21,17 +16,18 @@ $resource_types_bibtex = ['bibtex', 'pub', 'publication', 'publications', 'publ'
21
16
  #
22
17
  # The BibSonomy REST client for Ruby.
23
18
  #
19
+ # @todo error handling
20
+ # @todo getting more than 1000 posts
21
+ #
22
+ # @author Robert Jäschke
23
+ #
24
24
  module BibSonomy
25
25
  class API
26
26
 
27
27
  # Initializes the client with the given credentials.
28
28
  #
29
- # @param user_name [String] The name of the user account used for
30
- # accessing the API
31
- #
32
- # @param api_key [String] The API key corresponding to the user
33
- # account - can be obtained from
34
- # http://www.bibsonomy.org/settings?selTab=1
29
+ # @param user_name [String] the name of the user account used for accessing the API
30
+ # @param api_key [String] the API key corresponding to the user account - can be obtained from http://www.bibsonomy.org/settings?selTab=1
35
31
  #
36
32
  # @param format [String] The requested return format. One of:
37
33
  # 'xml', 'json', 'ruby', 'csl', 'bibtex'. The default is 'ruby'
@@ -64,11 +60,9 @@ module BibSonomy
64
60
  #
65
61
  # Get a single post
66
62
  #
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
71
- #
63
+ # @param user_name [String] the name of the post's owner
64
+ # @param intra_hash [String] the intrag hash of the post
65
+ # @return [BibSonomy::Post, String] the requested post
72
66
  def get_post(user_name, intra_hash)
73
67
  response = @conn.get "/api/users/" + CGI.escape(user_name) + "/posts/" + CGI.escape(intra_hash), { :format => @format }
74
68
 
@@ -82,12 +76,12 @@ module BibSonomy
82
76
  #
83
77
  # Get posts owned by a user, optionally filtered by tags.
84
78
  #
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+::
79
+ # @param user_name [String] the name of the posts' owner
80
+ # @param resource_type [String] the type of the post. Currently supported are 'bookmark' and 'publication'.
81
+ # @param tags [Array<String>] the tags that all posts must contain (can be empty)
82
+ # @param start [Integer] number of first post to download
83
+ # @param endc [Integer] number of last post to download
84
+ # @return [Array<BibSonomy::Post>, String] the requested posts
91
85
  def get_posts_for_user(user_name, resource_type, tags = nil, start = 0, endc = $MAX_POSTS_PER_REQUEST)
92
86
  params = {
93
87
  :format => @format,
@@ -115,10 +109,10 @@ module BibSonomy
115
109
  #
116
110
  # Get a document belonging to a post.
117
111
  #
118
- # Params:
119
- # +user_name+::
120
- # +intra_hash+::
121
- # +file_name+::
112
+ # @param user_name
113
+ # @param intra_hash
114
+ # @param file_name
115
+ # @return the document and the content type
122
116
  def get_document(user_name, intra_hash, file_name)
123
117
  response = @conn.get get_document_href(user_name, intra_hash, file_name)
124
118
  if response.status == 200
@@ -130,11 +124,11 @@ module BibSonomy
130
124
  #
131
125
  # Get the preview for a document belonging to a post.
132
126
  #
133
- # Params:
134
- # +user_name+::
135
- # +intra_hash+::
136
- # +file_name+::
137
- # +size+::
127
+ # @param user_name
128
+ # @param intra_hash
129
+ # @param file_name
130
+ # @param size
131
+ # @return the preview image and the content type `image/jpeg`
138
132
  def get_document_preview(user_name, intra_hash, file_name, size)
139
133
  response = get_document_href(user_name, intra_hash, file_name), { :preview => size }
140
134
  if response.status = 200
data/lib/bibsonomy/csl.rb CHANGED
@@ -23,64 +23,56 @@ require 'bibsonomy'
23
23
  # 2015-02-24
24
24
  # - initial version
25
25
  #
26
- # TODO:
27
- # - escape data
28
- # - make sorting, etc. configurable
29
- # - automatically rename files (TODO: CSL lacks BibTeX key)
30
- # - add intra_hash, user_name, etc. to CSL (cf. https://bitbucket.org/bibsonomy/bibsonomy/issue/2411/)
31
- # - integrate AJAX abstract
32
- # - make all options available via command line
26
+ # @todo escape data
27
+ # @todo make sorting, etc. configurable
28
+ # @todo automatically rename files (TODO: CSL lacks BibTeX key)
29
+ # @todo add intra_hash, user_name, etc. to CSL (cf. https://bitbucket.org/bibsonomy/bibsonomy/issue/2411/)
30
+ # @todo integrate AJAX abstract
31
+ # @todo make all options available via command line
32
+ #
33
+ # @author Robert Jäschke
33
34
 
34
35
  module BibSonomy
35
36
  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)
37
+
38
+ # @return [String] the output directory for downloaded PDF files. If set to `nil`, no documents are downloaded. (default: `nil`)
39
+ attr_accessor :pdf_dir
47
40
 
48
- ##
49
- # :attr_accessor: css_class
50
- # The CSS class used to render the surrounding +<ul>+ list (default: 'publications')
41
+ # @return [String] the {http://citationstyles.org/ CSL} style used for rendering. (default: `apa.csl`)
42
+ attr_accessor :style
51
43
 
52
- ##
53
- # :attr_accessor: doi_link
54
- # A boolean indicating whether links for DOIs shall be rendered. (default: true)
44
+ # @return [Boolean] whether year headings shall be rendered. (default: `true`)
45
+ attr_accessor :year_headings
55
46
 
56
- ##
57
- # :attr_accessor: url_link
58
- # A boolean indicating whether URLs of posts shall be rendered. (default: true)
47
+ # @return [String] the CSS class used to render the surrounding `<ul>` list (default: 'publications')
48
+ attr_accessor :css_class
59
49
 
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)
50
+ # @return [Boolean] whether links for DOIs shall be rendered. (default: `true`)
51
+ attr_accessor :doi_link
63
52
 
64
- ##
65
- # :attr_accessor: bibsonomy_link
66
- # A boolean indicating whether links BibSonomy shall be rendered. (default: true)
53
+ # @return [Boolean] whether URLs of posts shall be rendered. (default: `true`)
54
+ attr_accessor :url_link
67
55
 
68
- ##
69
- # :attr_accessor: opt_sep
70
- # The separator between options. (default: ' | ')
56
+ # @return [Boolean] whether links to the BibTeX data of a post (in BibSonomy) shall be rendered. (default: `true`)
57
+ attr_accessor :bibtex_link
71
58
 
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')
59
+ # @return [Boolean] whether links to BibSonomy shall be rendered. (default: `true`)
60
+ attr_accessor :bibsonomy_link
75
61
 
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
62
+ # @return [String] the separator between options. (default: ' | ')
63
+ attr_accessor :opt_sep
78
64
 
65
+ # @return [String] When a post has several documents and the
66
+ # filename of one of them ends with `public_doc_postfix`, only
67
+ # this document is downloaded and linked, all other are
68
+ # ignored. (default: '_oa.pdf')
69
+ attr_accessor :public_doc_postfix
70
+
71
+ #
72
+ # Create a new BibSonomy instance.
79
73
  #
80
- # Create a new BibSonomy instance
81
- # Params:
82
- # +user_name+:: BibSonomy user name
83
- # +api_key+:: API key of the given user (get at http://www.bibsonomy.org/settings?selTab=1)
74
+ # @param user_name [String] the BibSonomy user name
75
+ # @param api_key [String] the API key of the user (get at http://www.bibsonomy.org/settings?selTab=1)
84
76
  def initialize(user_name, api_key)
85
77
  super()
86
78
  @bibsonomy = BibSonomy::API.new(user_name, api_key, 'csl')
@@ -100,11 +92,12 @@ module BibSonomy
100
92
  end
101
93
 
102
94
  #
103
- # Download +count+ posts for the given +user+ and +tag(s)+ and render them with CSL.
104
- # Params:
105
- # +user+:: user name
106
- # +tags+:: an array of tags
107
- # +count+:: number of posts to download
95
+ # Download `count` posts for the given `user` and `tag(s)` and render them with {http://citationstyles.org/ CSL}.
96
+ #
97
+ # @param user [String] the name of the posts' owner
98
+ # @param tags [Array<String>] the tags that all posts must contain (can be empty)
99
+ # @param count [Integer] number of posts to download
100
+ # @return [String] the rendered posts as HTML
108
101
  def render(user, tags, count)
109
102
  # get posts from BibSonomy
110
103
  posts = JSON.parse(@bibsonomy.get_posts_for_user(user, 'publication', tags, 0, count))
@@ -270,7 +263,10 @@ module BibSonomy
270
263
  end
271
264
 
272
265
 
273
- # parse command line options
266
+ # Parse command line options
267
+ #
268
+ # @param args [Array<String>] command line options
269
+ # @return [String] the rendered posts as HTML
274
270
  def self.main(args)
275
271
 
276
272
  # setting default options
@@ -1,3 +1,3 @@
1
1
  module BibSonomy
2
- VERSION = "0.4.2"
2
+ VERSION = "0.4.3"
3
3
  end
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.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Jäschke
@@ -197,3 +197,4 @@ summary: Wraps the BibSonomy REST API.
197
197
  test_files:
198
198
  - test/post_test.rb
199
199
  - test/test_helper.rb
200
+ has_rdoc: