readernaut 0.1.2 → 0.2.0
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.
- data/README.markdown +44 -0
- data/VERSION +1 -1
- data/changelog.markdown +9 -0
- data/lib/readernaut.rb +34 -1
- data/readernaut.gemspec +6 -4
- data/test/fixtures/books_currently_reading.json +262 -0
- data/test/test_readernaut.rb +9 -0
- metadata +6 -4
- data/README.rdoc +0 -18
data/README.markdown
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
# Readernaut
|
2
|
+
|
3
|
+
Wrapper for [Readernaut](http://readernaut.com) API, the social book site.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
sudo gem install gemcutter
|
8
|
+
gem tumble
|
9
|
+
sudo gem install readernaut
|
10
|
+
|
11
|
+
## Usage
|
12
|
+
|
13
|
+
# get a list of books for a user
|
14
|
+
books = Readernaut.books('pengwynn')
|
15
|
+
books.reader_books.first.book_edition.title
|
16
|
+
=> 'Crush it!'
|
17
|
+
|
18
|
+
# get a list of notes for a user
|
19
|
+
notes = Readernaut.notes('pengwynn')
|
20
|
+
|
21
|
+
# get a list of contacts for a user
|
22
|
+
contacts = Readernaut.contacts('pengwynn').contacts
|
23
|
+
contacts.last.user.username
|
24
|
+
=> "blankenship"
|
25
|
+
|
26
|
+
# paginate, ordering
|
27
|
+
books = Readernaut.books('pengwynn', :page => 3, :order_by => "modified")
|
28
|
+
# descending
|
29
|
+
books = Readernaut.books('pengwynn', :page => 3, :order_by => "-modified")
|
30
|
+
|
31
|
+
## Note on Patches/Pull Requests
|
32
|
+
|
33
|
+
* Fork the project.
|
34
|
+
* Make your feature addition or bug fix.
|
35
|
+
* Add tests for it. This is important so I don't break it in a
|
36
|
+
future version unintentionally.
|
37
|
+
* Commit, do not mess with rakefile, version, or history.
|
38
|
+
(if you want to have your own version, that is fine but
|
39
|
+
bump version in a commit by itself I can ignore when I pull)
|
40
|
+
* Send me a pull request. Bonus points for topic branches.
|
41
|
+
|
42
|
+
## Copyright
|
43
|
+
|
44
|
+
Copyright (c) 2009 [Wynn Netherland](http://wynnnetherland.com). See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/changelog.markdown
ADDED
data/lib/readernaut.rb
CHANGED
@@ -12,9 +12,42 @@ class Readernaut
|
|
12
12
|
format :json
|
13
13
|
|
14
14
|
def self.books(username, options={})
|
15
|
-
|
15
|
+
path = "/#{username}/books/"
|
16
|
+
list = options.delete(:list)
|
17
|
+
path += "#{list}/" unless list.blank?
|
18
|
+
Mash.new self.get(path, :query => options)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.books_finished(username, options={})
|
22
|
+
opts = options.merge({:list => 'finished'})
|
23
|
+
self.books(username, opts)
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.books_reading(username, options={})
|
27
|
+
opts = options.merge({:list => 'reading'})
|
28
|
+
self.books(username, opts)
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.books_plan_to_read(username, options={})
|
32
|
+
opts = options.merge({:list => 'plan-to-read'})
|
33
|
+
self.books(username, opts)
|
16
34
|
end
|
17
35
|
|
36
|
+
def self.books_reference(username, options={})
|
37
|
+
opts = options.merge({:list => 'reference'})
|
38
|
+
self.books(username, opts)
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.books_wishlist(username, options={})
|
42
|
+
opts = options.merge({:list => 'wishlist'})
|
43
|
+
self.books(username, opts)
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.books_abandoned(username, options={})
|
47
|
+
opts = options.merge({:list => 'abandoned'})
|
48
|
+
self.books(username, opts)
|
49
|
+
end
|
50
|
+
|
18
51
|
def self.notes(username, options={})
|
19
52
|
Mash.new self.get("/#{username}/notes/", :query => options)
|
20
53
|
end
|
data/readernaut.gemspec
CHANGED
@@ -5,27 +5,29 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{readernaut}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Wynn Netherland"]
|
12
|
-
s.date = %q{2009-11-
|
12
|
+
s.date = %q{2009-11-17}
|
13
13
|
s.description = %q{Wrapper for Readernaut, the best book social network around}
|
14
14
|
s.email = %q{wynn.netherland@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
-
"README.
|
17
|
+
"README.markdown"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
21
|
".gitignore",
|
22
22
|
"LICENSE",
|
23
|
-
"README.
|
23
|
+
"README.markdown",
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION",
|
26
|
+
"changelog.markdown",
|
26
27
|
"lib/readernaut.rb",
|
27
28
|
"readernaut.gemspec",
|
28
29
|
"test/fixtures/books.json",
|
30
|
+
"test/fixtures/books_currently_reading.json",
|
29
31
|
"test/fixtures/contacts.json",
|
30
32
|
"test/fixtures/notes.json",
|
31
33
|
"test/helper.rb",
|
@@ -0,0 +1,262 @@
|
|
1
|
+
{
|
2
|
+
"version": "1.0",
|
3
|
+
"page": 1,
|
4
|
+
"total_pages": 2,
|
5
|
+
"reader_books": [
|
6
|
+
|
7
|
+
{
|
8
|
+
"reader_book_id": 176505,
|
9
|
+
"user": {
|
10
|
+
"user_id": 1,
|
11
|
+
"username": "nathan"
|
12
|
+
},
|
13
|
+
"book_edition": {
|
14
|
+
"title": "Towards a New Architecture",
|
15
|
+
"subtitle": "",
|
16
|
+
"authors": {
|
17
|
+
"author": "Le Corbusier"
|
18
|
+
},
|
19
|
+
"isbn": "0486250237",
|
20
|
+
"covers": {
|
21
|
+
"cover_small": "http://media.readernaut.com/book_covers/0486250237_t50.jpg",
|
22
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0486250237_t100.jpg",
|
23
|
+
"cover_large": "http://media.readernaut.com/book_covers/0486250237_t150.jpg"
|
24
|
+
},
|
25
|
+
"permalink": "http://readernaut.com/nathan/books/0486250237/towards-a-new-architecture/"
|
26
|
+
},
|
27
|
+
"created": "2009-09-23 1:35 CDT",
|
28
|
+
"modified": "2009-10-28 0:34 CDT",
|
29
|
+
"permalink": "http://readernaut.com/nathan/books/0486250237/towards-a-new-architecture/"
|
30
|
+
},
|
31
|
+
|
32
|
+
{
|
33
|
+
"reader_book_id": 171886,
|
34
|
+
"user": {
|
35
|
+
"user_id": 1,
|
36
|
+
"username": "nathan"
|
37
|
+
},
|
38
|
+
"book_edition": {
|
39
|
+
"title": "From Cliche to Archetype",
|
40
|
+
"subtitle": "",
|
41
|
+
"authors": {
|
42
|
+
"author": "Marshall McLuhan",
|
43
|
+
"author": "Wilfred Watson"
|
44
|
+
},
|
45
|
+
"isbn": "B0028GH156",
|
46
|
+
"covers": {
|
47
|
+
"cover_small": "http://media.readernaut.com/book_covers/B0028GH156__t50.jpg",
|
48
|
+
"cover_medium": "http://media.readernaut.com/book_covers/B0028GH156__t100.jpg",
|
49
|
+
"cover_large": "http://media.readernaut.com/book_covers/B0028GH156__t150.jpg"
|
50
|
+
},
|
51
|
+
"permalink": "http://readernaut.com/nathan/books/B0028GH156/from-cliche-to-archetype/"
|
52
|
+
},
|
53
|
+
"created": "2009-09-13 12:25 CDT",
|
54
|
+
"modified": "2009-11-14 11:22 CST",
|
55
|
+
"permalink": "http://readernaut.com/nathan/books/B0028GH156/from-cliche-to-archetype/"
|
56
|
+
},
|
57
|
+
|
58
|
+
{
|
59
|
+
"reader_book_id": 169152,
|
60
|
+
"user": {
|
61
|
+
"user_id": 1,
|
62
|
+
"username": "nathan"
|
63
|
+
},
|
64
|
+
"book_edition": {
|
65
|
+
"title": "Frank Lloyd Wright",
|
66
|
+
"subtitle": "Essential Texts",
|
67
|
+
"authors": {
|
68
|
+
},
|
69
|
+
"isbn": "0393732614",
|
70
|
+
"covers": {
|
71
|
+
"cover_small": "http://media.readernaut.com/book_covers/0393732614_t50.jpg",
|
72
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0393732614_t100.jpg",
|
73
|
+
"cover_large": "http://media.readernaut.com/book_covers/0393732614_t150.jpg"
|
74
|
+
},
|
75
|
+
"permalink": "http://readernaut.com/nathan/books/0393732614/frank-lloyd-wright/"
|
76
|
+
},
|
77
|
+
"created": "2009-09-06 20:35 CDT",
|
78
|
+
"modified": "2009-09-06 20:38 CDT",
|
79
|
+
"permalink": "http://readernaut.com/nathan/books/0393732614/frank-lloyd-wright/"
|
80
|
+
},
|
81
|
+
|
82
|
+
{
|
83
|
+
"reader_book_id": 156197,
|
84
|
+
"user": {
|
85
|
+
"user_id": 1,
|
86
|
+
"username": "nathan"
|
87
|
+
},
|
88
|
+
"book_edition": {
|
89
|
+
"title": "Utopia",
|
90
|
+
"subtitle": "Thomas More",
|
91
|
+
"authors": {
|
92
|
+
"author": "Sir",
|
93
|
+
"author": "Thomas",
|
94
|
+
"author": "Saint More"
|
95
|
+
},
|
96
|
+
"isbn": "0300084293",
|
97
|
+
"covers": {
|
98
|
+
"cover_small": "http://media.readernaut.com/book_covers/0300084293_t50.jpg",
|
99
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0300084293_t100.jpg",
|
100
|
+
"cover_large": "http://media.readernaut.com/book_covers/0300084293_t150.jpg"
|
101
|
+
},
|
102
|
+
"permalink": "http://readernaut.com/nathan/books/0300084293/utopia/"
|
103
|
+
},
|
104
|
+
"created": "2009-08-06 0:18 CDT",
|
105
|
+
"modified": "2009-08-15 10:12 CDT",
|
106
|
+
"permalink": "http://readernaut.com/nathan/books/0300084293/utopia/"
|
107
|
+
},
|
108
|
+
|
109
|
+
{
|
110
|
+
"reader_book_id": 138377,
|
111
|
+
"user": {
|
112
|
+
"user_id": 1,
|
113
|
+
"username": "nathan"
|
114
|
+
},
|
115
|
+
"book_edition": {
|
116
|
+
"title": "The Pleasures and Sorrows of Work",
|
117
|
+
"subtitle": "",
|
118
|
+
"authors": {
|
119
|
+
"author": "Alain De Botton"
|
120
|
+
},
|
121
|
+
"isbn": "037542444X",
|
122
|
+
"covers": {
|
123
|
+
"cover_small": "http://media.readernaut.com/book_covers/037542444X_t50.jpg",
|
124
|
+
"cover_medium": "http://media.readernaut.com/book_covers/037542444X_t100.jpg",
|
125
|
+
"cover_large": "http://media.readernaut.com/book_covers/037542444X_t150.jpg"
|
126
|
+
},
|
127
|
+
"permalink": "http://readernaut.com/nathan/books/037542444X/the-pleasures-and-sorrows-of-work/"
|
128
|
+
},
|
129
|
+
"created": "2009-06-17 22:31 CDT",
|
130
|
+
"modified": "2009-08-24 1:34 CDT",
|
131
|
+
"permalink": "http://readernaut.com/nathan/books/037542444X/the-pleasures-and-sorrows-of-work/"
|
132
|
+
},
|
133
|
+
|
134
|
+
{
|
135
|
+
"reader_book_id": 39162,
|
136
|
+
"user": {
|
137
|
+
"user_id": 1,
|
138
|
+
"username": "nathan"
|
139
|
+
},
|
140
|
+
"book_edition": {
|
141
|
+
"title": "1776",
|
142
|
+
"subtitle": "",
|
143
|
+
"authors": {
|
144
|
+
"author": "David McCullough"
|
145
|
+
},
|
146
|
+
"isbn": "0743226720",
|
147
|
+
"covers": {
|
148
|
+
"cover_small": "http://media.readernaut.com/book_covers/0743226720_t50.jpg",
|
149
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0743226720_t100.jpg",
|
150
|
+
"cover_large": "http://media.readernaut.com/book_covers/0743226720_t150.jpg"
|
151
|
+
},
|
152
|
+
"permalink": "http://readernaut.com/nathan/books/0743226720/1776/"
|
153
|
+
},
|
154
|
+
"created": "2008-12-03 21:11 CST",
|
155
|
+
"modified": "2009-08-31 1:08 CDT",
|
156
|
+
"permalink": "http://readernaut.com/nathan/books/0743226720/1776/"
|
157
|
+
},
|
158
|
+
|
159
|
+
{
|
160
|
+
"reader_book_id": 27953,
|
161
|
+
"user": {
|
162
|
+
"user_id": 1,
|
163
|
+
"username": "nathan"
|
164
|
+
},
|
165
|
+
"book_edition": {
|
166
|
+
"title": "The Adams\x2DJefferson Letters",
|
167
|
+
"subtitle": "The Complete Correspondence Between Thomas Jefferson and Abigail and John Adams",
|
168
|
+
"authors": {
|
169
|
+
"author": "John Adams",
|
170
|
+
"author": "Lester J. Cappon"
|
171
|
+
},
|
172
|
+
"isbn": "0807842303",
|
173
|
+
"covers": {
|
174
|
+
"cover_small": "http://media.readernaut.com/book_covers/0807842303_t50.jpg",
|
175
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0807842303_t100.jpg",
|
176
|
+
"cover_large": "http://media.readernaut.com/book_covers/0807842303_t150.jpg"
|
177
|
+
},
|
178
|
+
"permalink": "http://readernaut.com/nathan/books/0807842303/the-adams-jefferson-letters/"
|
179
|
+
},
|
180
|
+
"created": "2008-10-05 1:34 CDT",
|
181
|
+
"modified": "2009-05-08 10:57 CDT",
|
182
|
+
"permalink": "http://readernaut.com/nathan/books/0807842303/the-adams-jefferson-letters/"
|
183
|
+
},
|
184
|
+
|
185
|
+
{
|
186
|
+
"reader_book_id": 4640,
|
187
|
+
"user": {
|
188
|
+
"user_id": 1,
|
189
|
+
"username": "nathan"
|
190
|
+
},
|
191
|
+
"book_edition": {
|
192
|
+
"title": "Programming Collective Intelligence",
|
193
|
+
"subtitle": "Building Smart Web 2.0 Applications",
|
194
|
+
"authors": {
|
195
|
+
"author": "Toby Segaran"
|
196
|
+
},
|
197
|
+
"isbn": "0596529325",
|
198
|
+
"covers": {
|
199
|
+
"cover_small": "http://media.readernaut.com/book_covers/0596529325_t50.jpg",
|
200
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0596529325_t100.jpg",
|
201
|
+
"cover_large": "http://media.readernaut.com/book_covers/0596529325_t150.jpg"
|
202
|
+
},
|
203
|
+
"permalink": "http://readernaut.com/nathan/books/0596529325/programming-collective-intelligence/"
|
204
|
+
},
|
205
|
+
"created": "2008-08-16 1:19 CDT",
|
206
|
+
"modified": "2009-05-08 10:56 CDT",
|
207
|
+
"permalink": "http://readernaut.com/nathan/books/0596529325/programming-collective-intelligence/"
|
208
|
+
},
|
209
|
+
|
210
|
+
{
|
211
|
+
"reader_book_id": 1976,
|
212
|
+
"user": {
|
213
|
+
"user_id": 1,
|
214
|
+
"username": "nathan"
|
215
|
+
},
|
216
|
+
"book_edition": {
|
217
|
+
"title": "Infinite Jest",
|
218
|
+
"subtitle": "",
|
219
|
+
"authors": {
|
220
|
+
"author": "David Foster Wallace"
|
221
|
+
},
|
222
|
+
"isbn": "0316066524",
|
223
|
+
"covers": {
|
224
|
+
"cover_small": "http://media.readernaut.com/book_covers/0316066524_t50.jpg",
|
225
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0316066524_t100.jpg",
|
226
|
+
"cover_large": "http://media.readernaut.com/book_covers/0316066524_t150.jpg"
|
227
|
+
},
|
228
|
+
"permalink": "http://readernaut.com/nathan/books/0316066524/infinite-jest/"
|
229
|
+
},
|
230
|
+
"created": "2008-08-11 1:53 CDT",
|
231
|
+
"modified": "2009-07-26 8:48 CDT",
|
232
|
+
"permalink": "http://readernaut.com/nathan/books/0316066524/infinite-jest/"
|
233
|
+
},
|
234
|
+
|
235
|
+
{
|
236
|
+
"reader_book_id": 1975,
|
237
|
+
"user": {
|
238
|
+
"user_id": 1,
|
239
|
+
"username": "nathan"
|
240
|
+
},
|
241
|
+
"book_edition": {
|
242
|
+
"title": "Sketching User Experiences",
|
243
|
+
"subtitle": "Getting the Design Right and the Right Design",
|
244
|
+
"authors": {
|
245
|
+
"author": "Bill Buxton"
|
246
|
+
},
|
247
|
+
"isbn": "0123740371",
|
248
|
+
"covers": {
|
249
|
+
"cover_small": "http://media.readernaut.com/book_covers/0123740371__t50.jpg",
|
250
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0123740371__t100.jpg",
|
251
|
+
"cover_large": "http://media.readernaut.com/book_covers/0123740371__t150.jpg"
|
252
|
+
},
|
253
|
+
"permalink": "http://readernaut.com/nathan/books/0123740371/sketching-user-experiences/"
|
254
|
+
},
|
255
|
+
"created": "2008-08-11 1:53 CDT",
|
256
|
+
"modified": "2009-11-05 0:32 CST",
|
257
|
+
"permalink": "http://readernaut.com/nathan/books/0123740371/sketching-user-experiences/"
|
258
|
+
}
|
259
|
+
|
260
|
+
]
|
261
|
+
}
|
262
|
+
|
data/test/test_readernaut.rb
CHANGED
@@ -26,6 +26,15 @@ class TestReadernaut < Test::Unit::TestCase
|
|
26
26
|
results.page.should == 2
|
27
27
|
results.contacts.first.user.username.should == 'spacecowboyian'
|
28
28
|
end
|
29
|
+
|
30
|
+
should "retrieve a list of books being read for a user" do
|
31
|
+
stub_get "http://readernaut.com/api/v1/json/nathan/books/reading/", "books_currently_reading.json"
|
32
|
+
results = Readernaut.books_reading('nathan')
|
33
|
+
edition = results.reader_books.first.book_edition
|
34
|
+
edition.title.should == "Towards a New Architecture"
|
35
|
+
edition.isbn.should == '0486250237'
|
36
|
+
edition.covers.cover_large.should == 'http://media.readernaut.com/book_covers/0486250237_t150.jpg'
|
37
|
+
end
|
29
38
|
end
|
30
39
|
|
31
40
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: readernaut
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wynn Netherland
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-11-
|
12
|
+
date: 2009-11-17 00:00:00 -06:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -80,17 +80,19 @@ extensions: []
|
|
80
80
|
|
81
81
|
extra_rdoc_files:
|
82
82
|
- LICENSE
|
83
|
-
- README.
|
83
|
+
- README.markdown
|
84
84
|
files:
|
85
85
|
- .document
|
86
86
|
- .gitignore
|
87
87
|
- LICENSE
|
88
|
-
- README.
|
88
|
+
- README.markdown
|
89
89
|
- Rakefile
|
90
90
|
- VERSION
|
91
|
+
- changelog.markdown
|
91
92
|
- lib/readernaut.rb
|
92
93
|
- readernaut.gemspec
|
93
94
|
- test/fixtures/books.json
|
95
|
+
- test/fixtures/books_currently_reading.json
|
94
96
|
- test/fixtures/contacts.json
|
95
97
|
- test/fixtures/notes.json
|
96
98
|
- test/helper.rb
|
data/README.rdoc
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
= readernaut
|
2
|
-
|
3
|
-
Description goes here.
|
4
|
-
|
5
|
-
== Note on Patches/Pull Requests
|
6
|
-
|
7
|
-
* Fork the project.
|
8
|
-
* Make your feature addition or bug fix.
|
9
|
-
* Add tests for it. This is important so I don't break it in a
|
10
|
-
future version unintentionally.
|
11
|
-
* Commit, do not mess with rakefile, version, or history.
|
12
|
-
(if you want to have your own version, that is fine but
|
13
|
-
bump version in a commit by itself I can ignore when I pull)
|
14
|
-
* Send me a pull request. Bonus points for topic branches.
|
15
|
-
|
16
|
-
== Copyright
|
17
|
-
|
18
|
-
Copyright (c) 2009 Wynn Netherland. See LICENSE for details.
|