bibsonomy 0.4.2 → 0.4.3

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: 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: