readernaut 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.rdoc +18 -0
- data/Rakefile +60 -0
- data/VERSION +1 -0
- data/lib/readernaut.rb +25 -0
- data/test/fixtures/books.json +260 -0
- data/test/fixtures/contacts.json +109 -0
- data/test/fixtures/notes.json +282 -0
- data/test/helper.rb +43 -0
- data/test/test_readernaut.rb +31 -0
- metadata +127 -0
data/.document
ADDED
data/.gitignore
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 Wynn Netherland
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,18 @@
|
|
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.
|
data/Rakefile
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "readernaut"
|
8
|
+
gem.summary = %Q{Wrapper for the Readernaut API}
|
9
|
+
gem.description = %Q{Reader is the best book social network around}
|
10
|
+
gem.email = "wynn.netherland@gmail.com"
|
11
|
+
gem.homepage = "http://github.com/pengwynn/readernaut"
|
12
|
+
gem.authors = ["Wynn Netherland"]
|
13
|
+
|
14
|
+
gem.add_dependency('mash', '~> 0.0.3')
|
15
|
+
gem.add_dependency('httparty', '~> 0.4.3')
|
16
|
+
|
17
|
+
gem.add_development_dependency('shoulda', '>= 2.10.1')
|
18
|
+
gem.add_development_dependency('jnunemaker-matchy', '0.4.0')
|
19
|
+
gem.add_development_dependency('mocha', '0.9.4')
|
20
|
+
gem.add_development_dependency('fakeweb', '>= 1.2.5')
|
21
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
22
|
+
end
|
23
|
+
Jeweler::GemcutterTasks.new
|
24
|
+
rescue LoadError
|
25
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
26
|
+
end
|
27
|
+
|
28
|
+
require 'rake/testtask'
|
29
|
+
Rake::TestTask.new(:test) do |test|
|
30
|
+
test.libs << 'lib' << 'test'
|
31
|
+
test.pattern = 'test/**/test_*.rb'
|
32
|
+
test.verbose = true
|
33
|
+
end
|
34
|
+
|
35
|
+
begin
|
36
|
+
require 'rcov/rcovtask'
|
37
|
+
Rcov::RcovTask.new do |test|
|
38
|
+
test.libs << 'test'
|
39
|
+
test.pattern = 'test/**/test_*.rb'
|
40
|
+
test.verbose = true
|
41
|
+
end
|
42
|
+
rescue LoadError
|
43
|
+
task :rcov do
|
44
|
+
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
task :test => :check_dependencies
|
49
|
+
|
50
|
+
task :default => :test
|
51
|
+
|
52
|
+
require 'rake/rdoctask'
|
53
|
+
Rake::RDocTask.new do |rdoc|
|
54
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
55
|
+
|
56
|
+
rdoc.rdoc_dir = 'rdoc'
|
57
|
+
rdoc.title = "readernaut #{version}"
|
58
|
+
rdoc.rdoc_files.include('README*')
|
59
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
60
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.0
|
data/lib/readernaut.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
|
3
|
+
gem 'mash', '~> 0.0.3'
|
4
|
+
require 'mash'
|
5
|
+
|
6
|
+
gem 'httparty', '~> 0.4.3'
|
7
|
+
require 'httparty'
|
8
|
+
|
9
|
+
class Readernaut
|
10
|
+
include HTTParty
|
11
|
+
base_uri 'readernaut.com/api/v1/json'
|
12
|
+
format :json
|
13
|
+
|
14
|
+
def self.books(username, options={})
|
15
|
+
Mash.new self.get("/#{username}/books/", :query => options)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.notes(username, options={})
|
19
|
+
Mash.new self.get("/#{username}/notes/", :query => options)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.contacts(username, options={})
|
23
|
+
Mash.new self.get("/#{username}/contacts/", :query => options)
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,260 @@
|
|
1
|
+
{
|
2
|
+
"version": "1.0",
|
3
|
+
"page": 1,
|
4
|
+
"total_pages": 20,
|
5
|
+
"reader_books": [
|
6
|
+
|
7
|
+
{
|
8
|
+
"reader_book_id": 191852,
|
9
|
+
"user": {
|
10
|
+
"user_id": 1,
|
11
|
+
"username": "nathan"
|
12
|
+
},
|
13
|
+
"book_edition": {
|
14
|
+
"title": "The Housing Boom and Bust",
|
15
|
+
"subtitle": "",
|
16
|
+
"authors": {
|
17
|
+
"author": "Thomas Sowell"
|
18
|
+
},
|
19
|
+
"isbn": "0465018807",
|
20
|
+
"covers": {
|
21
|
+
"cover_small": "http://media.readernaut.com/book_covers/0465018807_t50.jpg",
|
22
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0465018807_t100.jpg",
|
23
|
+
"cover_large": "http://media.readernaut.com/book_covers/0465018807_t150.jpg"
|
24
|
+
},
|
25
|
+
"permalink": "http://readernaut.com/nathan/books/0465018807/the-housing-boom-and-bust/"
|
26
|
+
},
|
27
|
+
"created": "2009-10-30 16:03 CDT",
|
28
|
+
"modified": "2009-10-30 16:03 CDT",
|
29
|
+
"permalink": "http://readernaut.com/nathan/books/0465018807/the-housing-boom-and-bust/"
|
30
|
+
},
|
31
|
+
|
32
|
+
{
|
33
|
+
"reader_book_id": 182112,
|
34
|
+
"user": {
|
35
|
+
"user_id": 1,
|
36
|
+
"username": "nathan"
|
37
|
+
},
|
38
|
+
"book_edition": {
|
39
|
+
"title": "Designing for Interaction",
|
40
|
+
"subtitle": "Creating Innovative Applications and Devices",
|
41
|
+
"authors": {
|
42
|
+
"author": "Dan Saffer"
|
43
|
+
},
|
44
|
+
"isbn": "0321643399",
|
45
|
+
"covers": {
|
46
|
+
"cover_small": "http://media.readernaut.com/book_covers/0321643399_t50.jpg",
|
47
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0321643399_t100.jpg",
|
48
|
+
"cover_large": "http://media.readernaut.com/book_covers/0321643399_t150.jpg"
|
49
|
+
},
|
50
|
+
"permalink": "http://readernaut.com/nathan/books/0321643399/designing-for-interaction/"
|
51
|
+
},
|
52
|
+
"created": "2009-10-08 10:22 CDT",
|
53
|
+
"modified": "2009-10-28 0:34 CDT",
|
54
|
+
"permalink": "http://readernaut.com/nathan/books/0321643399/designing-for-interaction/"
|
55
|
+
},
|
56
|
+
|
57
|
+
{
|
58
|
+
"reader_book_id": 176505,
|
59
|
+
"user": {
|
60
|
+
"user_id": 1,
|
61
|
+
"username": "nathan"
|
62
|
+
},
|
63
|
+
"book_edition": {
|
64
|
+
"title": "Towards a New Architecture",
|
65
|
+
"subtitle": "",
|
66
|
+
"authors": {
|
67
|
+
"author": "Le Corbusier"
|
68
|
+
},
|
69
|
+
"isbn": "0486250237",
|
70
|
+
"covers": {
|
71
|
+
"cover_small": "http://media.readernaut.com/book_covers/0486250237_t50.jpg",
|
72
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0486250237_t100.jpg",
|
73
|
+
"cover_large": "http://media.readernaut.com/book_covers/0486250237_t150.jpg"
|
74
|
+
},
|
75
|
+
"permalink": "http://readernaut.com/nathan/books/0486250237/towards-a-new-architecture/"
|
76
|
+
},
|
77
|
+
"created": "2009-09-23 1:35 CDT",
|
78
|
+
"modified": "2009-10-28 0:34 CDT",
|
79
|
+
"permalink": "http://readernaut.com/nathan/books/0486250237/towards-a-new-architecture/"
|
80
|
+
},
|
81
|
+
|
82
|
+
{
|
83
|
+
"reader_book_id": 171889,
|
84
|
+
"user": {
|
85
|
+
"user_id": 1,
|
86
|
+
"username": "nathan"
|
87
|
+
},
|
88
|
+
"book_edition": {
|
89
|
+
"title": "AM/PM",
|
90
|
+
"subtitle": "",
|
91
|
+
"authors": {
|
92
|
+
"author": "Amelia Gray"
|
93
|
+
},
|
94
|
+
"isbn": "0977199274",
|
95
|
+
"covers": {
|
96
|
+
"cover_small": "http://media.readernaut.com/book_covers/0977199274_t50.jpg",
|
97
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0977199274_t100.jpg",
|
98
|
+
"cover_large": "http://media.readernaut.com/book_covers/0977199274_t150.jpg"
|
99
|
+
},
|
100
|
+
"permalink": "http://readernaut.com/nathan/books/0977199274/ampm/"
|
101
|
+
},
|
102
|
+
"created": "2009-09-13 12:32 CDT",
|
103
|
+
"modified": "2009-09-13 12:32 CDT",
|
104
|
+
"permalink": "http://readernaut.com/nathan/books/0977199274/ampm/"
|
105
|
+
},
|
106
|
+
|
107
|
+
{
|
108
|
+
"reader_book_id": 171887,
|
109
|
+
"user": {
|
110
|
+
"user_id": 1,
|
111
|
+
"username": "nathan"
|
112
|
+
},
|
113
|
+
"book_edition": {
|
114
|
+
"title": "Hot \x26 Cool",
|
115
|
+
"subtitle": "A Critical Symposium",
|
116
|
+
"authors": {
|
117
|
+
"author": "Marshall McLuhan"
|
118
|
+
},
|
119
|
+
"isbn": "B001NE0O76",
|
120
|
+
"covers": {
|
121
|
+
"cover_small": "http://media.readernaut.com/book_covers/B001NE0O76_t50.jpg",
|
122
|
+
"cover_medium": "http://media.readernaut.com/book_covers/B001NE0O76_t100.jpg",
|
123
|
+
"cover_large": "http://media.readernaut.com/book_covers/B001NE0O76_t150.jpg"
|
124
|
+
},
|
125
|
+
"permalink": "http://readernaut.com/nathan/books/B001NE0O76/hot-cool/"
|
126
|
+
},
|
127
|
+
"created": "2009-09-13 12:27 CDT",
|
128
|
+
"modified": "2009-09-13 12:27 CDT",
|
129
|
+
"permalink": "http://readernaut.com/nathan/books/B001NE0O76/hot-cool/"
|
130
|
+
},
|
131
|
+
|
132
|
+
{
|
133
|
+
"reader_book_id": 171886,
|
134
|
+
"user": {
|
135
|
+
"user_id": 1,
|
136
|
+
"username": "nathan"
|
137
|
+
},
|
138
|
+
"book_edition": {
|
139
|
+
"title": "From Cliche to Archetype",
|
140
|
+
"subtitle": "",
|
141
|
+
"authors": {
|
142
|
+
"author": "Marshall McLuhan",
|
143
|
+
"author": "Wilfred Watson"
|
144
|
+
},
|
145
|
+
"isbn": "B0028GH156",
|
146
|
+
"covers": {
|
147
|
+
"cover_small": "http://media.readernaut.com/book_covers/B0028GH156__t50.jpg",
|
148
|
+
"cover_medium": "http://media.readernaut.com/book_covers/B0028GH156__t100.jpg",
|
149
|
+
"cover_large": "http://media.readernaut.com/book_covers/B0028GH156__t150.jpg"
|
150
|
+
},
|
151
|
+
"permalink": "http://readernaut.com/nathan/books/B0028GH156/from-cliche-to-archetype/"
|
152
|
+
},
|
153
|
+
"created": "2009-09-13 12:25 CDT",
|
154
|
+
"modified": "2009-11-14 11:22 CST",
|
155
|
+
"permalink": "http://readernaut.com/nathan/books/B0028GH156/from-cliche-to-archetype/"
|
156
|
+
},
|
157
|
+
|
158
|
+
{
|
159
|
+
"reader_book_id": 171885,
|
160
|
+
"user": {
|
161
|
+
"user_id": 1,
|
162
|
+
"username": "nathan"
|
163
|
+
},
|
164
|
+
"book_edition": {
|
165
|
+
"title": "The Bauhaus Ideal Then \x26 Now",
|
166
|
+
"subtitle": "An Illustrated Guide to Modern Design",
|
167
|
+
"authors": {
|
168
|
+
"author": "William Smock"
|
169
|
+
},
|
170
|
+
"isbn": "0897335902",
|
171
|
+
"covers": {
|
172
|
+
"cover_small": "http://media.readernaut.com/book_covers/0897335902_t50.jpg",
|
173
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0897335902_t100.jpg",
|
174
|
+
"cover_large": "http://media.readernaut.com/book_covers/0897335902_t150.jpg"
|
175
|
+
},
|
176
|
+
"permalink": "http://readernaut.com/nathan/books/0897335902/the-bauhaus-ideal-then-now/"
|
177
|
+
},
|
178
|
+
"created": "2009-09-13 12:24 CDT",
|
179
|
+
"modified": "2009-10-20 10:24 CDT",
|
180
|
+
"permalink": "http://readernaut.com/nathan/books/0897335902/the-bauhaus-ideal-then-now/"
|
181
|
+
},
|
182
|
+
|
183
|
+
{
|
184
|
+
"reader_book_id": 171884,
|
185
|
+
"user": {
|
186
|
+
"user_id": 1,
|
187
|
+
"username": "nathan"
|
188
|
+
},
|
189
|
+
"book_edition": {
|
190
|
+
"title": "Learning and Memory",
|
191
|
+
"subtitle": "",
|
192
|
+
"authors": {
|
193
|
+
"author": "Donald A. Norman"
|
194
|
+
},
|
195
|
+
"isbn": "0716713004",
|
196
|
+
"covers": {
|
197
|
+
"cover_small": "http://media.readernaut.com/book_covers/0716713004_t50.jpg",
|
198
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0716713004_t100.jpg",
|
199
|
+
"cover_large": "http://media.readernaut.com/book_covers/0716713004_t150.jpg"
|
200
|
+
},
|
201
|
+
"permalink": "http://readernaut.com/nathan/books/0716713004/learning-and-memory/"
|
202
|
+
},
|
203
|
+
"created": "2009-09-13 12:23 CDT",
|
204
|
+
"modified": "2009-09-13 12:23 CDT",
|
205
|
+
"permalink": "http://readernaut.com/nathan/books/0716713004/learning-and-memory/"
|
206
|
+
},
|
207
|
+
|
208
|
+
{
|
209
|
+
"reader_book_id": 171883,
|
210
|
+
"user": {
|
211
|
+
"user_id": 1,
|
212
|
+
"username": "nathan"
|
213
|
+
},
|
214
|
+
"book_edition": {
|
215
|
+
"title": "David Foster Wallace\x27s Infinite Jest",
|
216
|
+
"subtitle": "A Reader\x27s Guide",
|
217
|
+
"authors": {
|
218
|
+
"author": "Stephen Burn"
|
219
|
+
},
|
220
|
+
"isbn": "082641477X",
|
221
|
+
"covers": {
|
222
|
+
"cover_small": "http://media.readernaut.com/book_covers/082641477X_t50.jpg",
|
223
|
+
"cover_medium": "http://media.readernaut.com/book_covers/082641477X_t100.jpg",
|
224
|
+
"cover_large": "http://media.readernaut.com/book_covers/082641477X_t150.jpg"
|
225
|
+
},
|
226
|
+
"permalink": "http://readernaut.com/nathan/books/082641477X/david-foster-wallaces-infinite-jest/"
|
227
|
+
},
|
228
|
+
"created": "2009-09-13 12:23 CDT",
|
229
|
+
"modified": "2009-09-13 12:23 CDT",
|
230
|
+
"permalink": "http://readernaut.com/nathan/books/082641477X/david-foster-wallaces-infinite-jest/"
|
231
|
+
},
|
232
|
+
|
233
|
+
{
|
234
|
+
"reader_book_id": 171882,
|
235
|
+
"user": {
|
236
|
+
"user_id": 1,
|
237
|
+
"username": "nathan"
|
238
|
+
},
|
239
|
+
"book_edition": {
|
240
|
+
"title": "The Coming Insurrection",
|
241
|
+
"subtitle": "",
|
242
|
+
"authors": {
|
243
|
+
"author": "The Invisible Committee"
|
244
|
+
},
|
245
|
+
"isbn": "1584350806",
|
246
|
+
"covers": {
|
247
|
+
"cover_small": "http://media.readernaut.com/book_covers/1584350806_t50.jpg",
|
248
|
+
"cover_medium": "http://media.readernaut.com/book_covers/1584350806_t100.jpg",
|
249
|
+
"cover_large": "http://media.readernaut.com/book_covers/1584350806_t150.jpg"
|
250
|
+
},
|
251
|
+
"permalink": "http://readernaut.com/nathan/books/1584350806/the-coming-insurrection/"
|
252
|
+
},
|
253
|
+
"created": "2009-09-13 12:22 CDT",
|
254
|
+
"modified": "2009-09-13 12:22 CDT",
|
255
|
+
"permalink": "http://readernaut.com/nathan/books/1584350806/the-coming-insurrection/"
|
256
|
+
}
|
257
|
+
|
258
|
+
]
|
259
|
+
}
|
260
|
+
|
@@ -0,0 +1,109 @@
|
|
1
|
+
{
|
2
|
+
"version": "1.0",
|
3
|
+
"page": 2,
|
4
|
+
"total_pages": 20,
|
5
|
+
"contacts": [
|
6
|
+
|
7
|
+
{
|
8
|
+
"user": {
|
9
|
+
"user_id": 6480,
|
10
|
+
"username": "spacecowboyian"
|
11
|
+
},
|
12
|
+
"reciprocal": "",
|
13
|
+
"created": "2009-11-11 14:07 CST",
|
14
|
+
"permalink": "http://readernaut.com/spacecowboyian/"
|
15
|
+
},
|
16
|
+
|
17
|
+
{
|
18
|
+
"user": {
|
19
|
+
"user_id": 4223,
|
20
|
+
"username": "Montylounge"
|
21
|
+
},
|
22
|
+
"reciprocal": "",
|
23
|
+
"created": "2009-10-08 10:44 CDT",
|
24
|
+
"permalink": "http://readernaut.com/Montylounge/"
|
25
|
+
},
|
26
|
+
|
27
|
+
{
|
28
|
+
"user": {
|
29
|
+
"user_id": 4957,
|
30
|
+
"username": "coleifer"
|
31
|
+
},
|
32
|
+
"reciprocal": "",
|
33
|
+
"created": "2009-10-07 15:06 CDT",
|
34
|
+
"permalink": "http://readernaut.com/coleifer/"
|
35
|
+
},
|
36
|
+
|
37
|
+
{
|
38
|
+
"user": {
|
39
|
+
"user_id": 5291,
|
40
|
+
"username": "poet145"
|
41
|
+
},
|
42
|
+
"reciprocal": "",
|
43
|
+
"created": "2009-09-18 0:18 CDT",
|
44
|
+
"permalink": "http://readernaut.com/poet145/"
|
45
|
+
},
|
46
|
+
|
47
|
+
{
|
48
|
+
"user": {
|
49
|
+
"user_id": 2793,
|
50
|
+
"username": "shoghon"
|
51
|
+
},
|
52
|
+
"reciprocal": "",
|
53
|
+
"created": "2009-09-12 23:33 CDT",
|
54
|
+
"permalink": "http://readernaut.com/shoghon/"
|
55
|
+
},
|
56
|
+
|
57
|
+
{
|
58
|
+
"user": {
|
59
|
+
"user_id": 5401,
|
60
|
+
"username": "laurakreeger"
|
61
|
+
},
|
62
|
+
"reciprocal": "",
|
63
|
+
"created": "2009-08-30 10:31 CDT",
|
64
|
+
"permalink": "http://readernaut.com/laurakreeger/"
|
65
|
+
},
|
66
|
+
|
67
|
+
{
|
68
|
+
"user": {
|
69
|
+
"user_id": 2962,
|
70
|
+
"username": "gus"
|
71
|
+
},
|
72
|
+
"reciprocal": "",
|
73
|
+
"created": "2009-08-07 23:35 CDT",
|
74
|
+
"permalink": "http://readernaut.com/gus/"
|
75
|
+
},
|
76
|
+
|
77
|
+
{
|
78
|
+
"user": {
|
79
|
+
"user_id": 109,
|
80
|
+
"username": "beshrkayali"
|
81
|
+
},
|
82
|
+
"reciprocal": "",
|
83
|
+
"created": "2009-08-05 10:36 CDT",
|
84
|
+
"permalink": "http://readernaut.com/beshrkayali/"
|
85
|
+
},
|
86
|
+
|
87
|
+
{
|
88
|
+
"user": {
|
89
|
+
"user_id": 3417,
|
90
|
+
"username": "doughellmann"
|
91
|
+
},
|
92
|
+
"reciprocal": "",
|
93
|
+
"created": "2009-08-05 10:36 CDT",
|
94
|
+
"permalink": "http://readernaut.com/doughellmann/"
|
95
|
+
},
|
96
|
+
|
97
|
+
{
|
98
|
+
"user": {
|
99
|
+
"user_id": 4724,
|
100
|
+
"username": "jstevens"
|
101
|
+
},
|
102
|
+
"reciprocal": "",
|
103
|
+
"created": "2009-07-31 15:50 CDT",
|
104
|
+
"permalink": "http://readernaut.com/jstevens/"
|
105
|
+
}
|
106
|
+
|
107
|
+
]
|
108
|
+
}
|
109
|
+
|
@@ -0,0 +1,282 @@
|
|
1
|
+
{
|
2
|
+
"version": "1.0",
|
3
|
+
"page": 1,
|
4
|
+
"total_pages": 13,
|
5
|
+
"notes": [
|
6
|
+
|
7
|
+
{
|
8
|
+
"note_id": 11396,
|
9
|
+
"user": {
|
10
|
+
"user_id": 1,
|
11
|
+
"username": "nathan"
|
12
|
+
},
|
13
|
+
"book_edition": {
|
14
|
+
"title": "From Cliche to Archetype",
|
15
|
+
"subtitle": "",
|
16
|
+
"authors": {
|
17
|
+
"author": "Marshall McLuhan",
|
18
|
+
"author": "Wilfred Watson"
|
19
|
+
},
|
20
|
+
"isbn": "B0028GH156",
|
21
|
+
"covers": {
|
22
|
+
"cover_small": "http://media.readernaut.com/book_covers/B0028GH156__t50.jpg",
|
23
|
+
"cover_medium": "http://media.readernaut.com/book_covers/B0028GH156__t100.jpg",
|
24
|
+
"cover_large": "http://media.readernaut.com/book_covers/B0028GH156__t150.jpg"
|
25
|
+
},
|
26
|
+
"permalink": "http://readernaut.com/nathan/books/B0028GH156/from-cliche-to-archetype/"
|
27
|
+
},
|
28
|
+
"body": "\x3EJust when the circulating libraries were disillusioning Samuel Taylor Coleridge with the world of novel, and distressing him with the spectacle of the corruption of taste and morals through this kind of entertainment, the newspaper was coming in as the new technological cliché. Lamartine, in 1830, said, \x22The book arrives too late.\x22 The daily newspaper he saw as a new technology, creating a liaison between the public and the writer every twenty\x2Dfour hours, whereas the book took weeks and months to establish the same relation. The speed with which the printed word now related public and the author turned the author into a corporate one, and this distressed people like John Stewart Mill, Carlyle, and Matthew Arnold, who saw the new situation as tragic. But just when the press had established this new cliché form of corporate perception, the probing scholars were already reaching back to retrieve a mythic, and corporate, tribal past through archaeology and anthropology. ",
|
29
|
+
"allow_comments": true,
|
30
|
+
"tags": "media, newspapers, author, communication, mcluhan",
|
31
|
+
"created": "2009-11-14 11:30 CST",
|
32
|
+
"modified": "2009-11-14 11:30 CST"
|
33
|
+
},
|
34
|
+
|
35
|
+
{
|
36
|
+
"note_id": 11109,
|
37
|
+
"user": {
|
38
|
+
"user_id": 1,
|
39
|
+
"username": "nathan"
|
40
|
+
},
|
41
|
+
"book_edition": {
|
42
|
+
"title": "Sketching User Experiences",
|
43
|
+
"subtitle": "Getting the Design Right and the Right Design",
|
44
|
+
"authors": {
|
45
|
+
"author": "Bill Buxton"
|
46
|
+
},
|
47
|
+
"isbn": "0123740371",
|
48
|
+
"covers": {
|
49
|
+
"cover_small": "http://media.readernaut.com/book_covers/0123740371__t50.jpg",
|
50
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0123740371__t100.jpg",
|
51
|
+
"cover_large": "http://media.readernaut.com/book_covers/0123740371__t150.jpg"
|
52
|
+
},
|
53
|
+
"permalink": "http://readernaut.com/nathan/books/0123740371/sketching-user-experiences/"
|
54
|
+
},
|
55
|
+
"body": "\x3EIf you want to get the most out of a sketch, you need to leave big enough holes. Ambiguity creates the holes. It is what enables a sketch to be interpreted in different ways, even by the person who created it. One of the key purposes of sketching in the ideation phase of design is to provide a catalyst to stimulate new and different interpretations. Hence, sketching is fundamental to the cognitive process of design, and it is manifest through a kind of conversation between the designer(s) and their sketches.",
|
56
|
+
"allow_comments": true,
|
57
|
+
"tags": "sketching, design, process",
|
58
|
+
"created": "2009-11-05 0:36 CST",
|
59
|
+
"modified": "2009-11-05 0:36 CST"
|
60
|
+
},
|
61
|
+
|
62
|
+
{
|
63
|
+
"note_id": 9570,
|
64
|
+
"user": {
|
65
|
+
"user_id": 1,
|
66
|
+
"username": "nathan"
|
67
|
+
},
|
68
|
+
"book_edition": {
|
69
|
+
"title": "Towards a New Architecture",
|
70
|
+
"subtitle": "",
|
71
|
+
"authors": {
|
72
|
+
"author": "Le Corbusier"
|
73
|
+
},
|
74
|
+
"isbn": "0486250237",
|
75
|
+
"covers": {
|
76
|
+
"cover_small": "http://media.readernaut.com/book_covers/0486250237_t50.jpg",
|
77
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0486250237_t100.jpg",
|
78
|
+
"cover_large": "http://media.readernaut.com/book_covers/0486250237_t150.jpg"
|
79
|
+
},
|
80
|
+
"permalink": "http://readernaut.com/nathan/books/0486250237/towards-a-new-architecture/"
|
81
|
+
},
|
82
|
+
"body": "\x3ETools are the results of successive improvements\x3B the effort of all generations is embodied in them. The tool is the direct and immediate expression of progress\x3B it gives man essential assistance and essential freedom. We throw the out\x2Dof\x2Ddate tool on the scrap\x2Dheap: the carbine, the culverin, the growler and the locomotive. This action is a manifestation of health, of moral health, of _morale_\x3B it is not right that we should produce bad things because of a bad tool\x3B nor is it right that we should waste our energy, our health and our courage because of a bad tool\x3B it must be thrown away and replaced.",
|
83
|
+
"allow_comments": true,
|
84
|
+
"tags": "architecture, design, tools",
|
85
|
+
"created": "2009-09-23 21:52 CDT",
|
86
|
+
"modified": "2009-09-23 21:52 CDT"
|
87
|
+
},
|
88
|
+
|
89
|
+
{
|
90
|
+
"note_id": 9157,
|
91
|
+
"user": {
|
92
|
+
"user_id": 1,
|
93
|
+
"username": "nathan"
|
94
|
+
},
|
95
|
+
"book_edition": {
|
96
|
+
"title": "The Information Bomb",
|
97
|
+
"subtitle": "",
|
98
|
+
"authors": {
|
99
|
+
"author": "Paul Virilio"
|
100
|
+
},
|
101
|
+
"isbn": "1844670597",
|
102
|
+
"covers": {
|
103
|
+
"cover_small": "http://media.readernaut.com/book_covers/1844670597_t50.jpg",
|
104
|
+
"cover_medium": "http://media.readernaut.com/book_covers/1844670597_t100.jpg",
|
105
|
+
"cover_large": "http://media.readernaut.com/book_covers/1844670597_t150.jpg"
|
106
|
+
},
|
107
|
+
"permalink": "http://readernaut.com/nathan/books/1844670597/the-information-bomb/"
|
108
|
+
},
|
109
|
+
"body": "\x3EThe true hero of the American utopia is neither the cowboy nor the soldier, but the pioneer, the pathfinder, the person who \x27takes his body to where his eyes have been.\x27",
|
110
|
+
"allow_comments": true,
|
111
|
+
|
112
|
+
"created": "2009-09-10 19:32 CDT",
|
113
|
+
"modified": "2009-09-10 19:32 CDT"
|
114
|
+
},
|
115
|
+
|
116
|
+
{
|
117
|
+
"note_id": 9156,
|
118
|
+
"user": {
|
119
|
+
"user_id": 1,
|
120
|
+
"username": "nathan"
|
121
|
+
},
|
122
|
+
"book_edition": {
|
123
|
+
"title": "The Information Bomb",
|
124
|
+
"subtitle": "",
|
125
|
+
"authors": {
|
126
|
+
"author": "Paul Virilio"
|
127
|
+
},
|
128
|
+
"isbn": "1844670597",
|
129
|
+
"covers": {
|
130
|
+
"cover_small": "http://media.readernaut.com/book_covers/1844670597_t50.jpg",
|
131
|
+
"cover_medium": "http://media.readernaut.com/book_covers/1844670597_t100.jpg",
|
132
|
+
"cover_large": "http://media.readernaut.com/book_covers/1844670597_t150.jpg"
|
133
|
+
},
|
134
|
+
"permalink": "http://readernaut.com/nathan/books/1844670597/the-information-bomb/"
|
135
|
+
},
|
136
|
+
"body": "\x3EThe Earth, that phantom limb, no longer extends as far as the eye can see\x3B it presents all aspects of itself for inspection in the strange little window. The sudden multiplication of \x27points of view\x27 merely heralds the latest globalization: the globalization of the gaze, of the single eye of the cyclops who governs the cave, that \x27black box\x27 which increasingly poorly conceals the great culminating moment of history, a history fallen victim to the syndrome of total accomplishment. ",
|
137
|
+
"allow_comments": true,
|
138
|
+
|
139
|
+
"created": "2009-09-10 19:31 CDT",
|
140
|
+
"modified": "2009-09-10 19:31 CDT"
|
141
|
+
},
|
142
|
+
|
143
|
+
{
|
144
|
+
"note_id": 9155,
|
145
|
+
"user": {
|
146
|
+
"user_id": 1,
|
147
|
+
"username": "nathan"
|
148
|
+
},
|
149
|
+
"book_edition": {
|
150
|
+
"title": "The Information Bomb",
|
151
|
+
"subtitle": "",
|
152
|
+
"authors": {
|
153
|
+
"author": "Paul Virilio"
|
154
|
+
},
|
155
|
+
"isbn": "1844670597",
|
156
|
+
"covers": {
|
157
|
+
"cover_small": "http://media.readernaut.com/book_covers/1844670597_t50.jpg",
|
158
|
+
"cover_medium": "http://media.readernaut.com/book_covers/1844670597_t100.jpg",
|
159
|
+
"cover_large": "http://media.readernaut.com/book_covers/1844670597_t150.jpg"
|
160
|
+
},
|
161
|
+
"permalink": "http://readernaut.com/nathan/books/1844670597/the-information-bomb/"
|
162
|
+
},
|
163
|
+
"body": "\x3ESince a picture is worth a thousand words, the aim of multimedia is to turn our old television into a kind of domestic telescope for seeing, for foreseeing (in a manner not unlike present weather\x2Dforecasting) the world that lies just around the corner.",
|
164
|
+
"allow_comments": true,
|
165
|
+
|
166
|
+
"created": "2009-09-10 19:27 CDT",
|
167
|
+
"modified": "2009-09-10 19:28 CDT"
|
168
|
+
},
|
169
|
+
|
170
|
+
{
|
171
|
+
"note_id": 8686,
|
172
|
+
"user": {
|
173
|
+
"user_id": 1,
|
174
|
+
"username": "nathan"
|
175
|
+
},
|
176
|
+
"book_edition": {
|
177
|
+
"title": "The Pleasures and Sorrows of Work",
|
178
|
+
"subtitle": "",
|
179
|
+
"authors": {
|
180
|
+
"author": "Alain De Botton"
|
181
|
+
},
|
182
|
+
"isbn": "037542444X",
|
183
|
+
"covers": {
|
184
|
+
"cover_small": "http://media.readernaut.com/book_covers/037542444X_t50.jpg",
|
185
|
+
"cover_medium": "http://media.readernaut.com/book_covers/037542444X_t100.jpg",
|
186
|
+
"cover_large": "http://media.readernaut.com/book_covers/037542444X_t150.jpg"
|
187
|
+
},
|
188
|
+
"permalink": "http://readernaut.com/nathan/books/037542444X/the-pleasures-and-sorrows-of-work/"
|
189
|
+
},
|
190
|
+
"body": "\x3EMost of us stand poised at the edge of brilliance, haunted by the knowledge of our proximity, yet still demonstrably on the wrong side of the line, our dealings with reality undermined by a range of minor yet critical psychological flaws (a little too much optimism, an unprocessed rebelliousness, a fatal impatience or sentimentality). We are like an exquisite high\x2Dspeed aircraft which for lack of a tiny part is left stranded beside the runway, rendered slower than a tractor or a bicycle.",
|
191
|
+
"allow_comments": true,
|
192
|
+
|
193
|
+
"created": "2009-08-15 12:43 CDT",
|
194
|
+
"modified": "2009-08-15 12:43 CDT"
|
195
|
+
},
|
196
|
+
|
197
|
+
{
|
198
|
+
"note_id": 8531,
|
199
|
+
"user": {
|
200
|
+
"user_id": 1,
|
201
|
+
"username": "nathan"
|
202
|
+
},
|
203
|
+
"book_edition": {
|
204
|
+
"title": "Utopia",
|
205
|
+
"subtitle": "Thomas More",
|
206
|
+
"authors": {
|
207
|
+
"author": "Sir",
|
208
|
+
"author": "Thomas",
|
209
|
+
"author": "Saint More"
|
210
|
+
},
|
211
|
+
"isbn": "0300084293",
|
212
|
+
"covers": {
|
213
|
+
"cover_small": "http://media.readernaut.com/book_covers/0300084293_t50.jpg",
|
214
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0300084293_t100.jpg",
|
215
|
+
"cover_large": "http://media.readernaut.com/book_covers/0300084293_t150.jpg"
|
216
|
+
},
|
217
|
+
"permalink": "http://readernaut.com/nathan/books/0300084293/utopia/"
|
218
|
+
},
|
219
|
+
"body": "\x3E... the senate has a rule that no point is discussed on the same day it is brought up, but rather it is put off till the next meeting\x3B they do this so that someone who blurts out the first thing that occurs to him will not proceed to think up arguments to defend his position instead of looking for what is of use to the commonwealth, being willing to damage the public welfare rather than his own reputation, ashamed, as it were, in a perverse and wrong\x2Dheaded way, to admit that his first view was short\x2Dsighted. From the start such a person should have take care to speak with deliberation rather than haste.",
|
220
|
+
"allow_comments": true,
|
221
|
+
"tags": "discussion, arguments, haste",
|
222
|
+
"created": "2009-08-07 17:41 CDT",
|
223
|
+
"modified": "2009-08-07 17:41 CDT"
|
224
|
+
},
|
225
|
+
|
226
|
+
{
|
227
|
+
"note_id": 8313,
|
228
|
+
"user": {
|
229
|
+
"user_id": 1,
|
230
|
+
"username": "nathan"
|
231
|
+
},
|
232
|
+
"book_edition": {
|
233
|
+
"title": "Infinite Jest",
|
234
|
+
"subtitle": "",
|
235
|
+
"authors": {
|
236
|
+
"author": "David Foster Wallace"
|
237
|
+
},
|
238
|
+
"isbn": "0316066524",
|
239
|
+
"covers": {
|
240
|
+
"cover_small": "http://media.readernaut.com/book_covers/0316066524_t50.jpg",
|
241
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0316066524_t100.jpg",
|
242
|
+
"cover_large": "http://media.readernaut.com/book_covers/0316066524_t150.jpg"
|
243
|
+
},
|
244
|
+
"permalink": "http://readernaut.com/nathan/books/0316066524/infinite-jest/"
|
245
|
+
},
|
246
|
+
"body": "\x3EThe true opponent, the enfolding boundary, is the player himself. Always and only the self out there, on court, to be met, fought, brought to the table to hammer out terms. The competing boy on the nets other side: his is not the foe: he is more the partner in the dance. He is the what is the word _excuse_ or _occasion_ for meeting the self. As you are his occasion. Tennis\x27s beauty\x27s infinite roots are self\x2Dcompetitive. You compete with your own limits to transcend the self in imagination and execution. Disappear inside the game: break through limits: transcend: improve: win. Which is why tennis is an essentially tragic enterprise, to improve and grow as a serious junior, with ambitions. You seek to vanquish and transcend the limited self whose limits make the game possible in the first place. It is tragic and sad and chaotic and lovely. All life is the same, as citizens of the human State: the animating limits are within, to be killed and mourned, over and over again.",
|
247
|
+
"allow_comments": true,
|
248
|
+
"tags": "tennis",
|
249
|
+
"created": "2009-07-30 3:37 CDT",
|
250
|
+
"modified": "2009-07-30 3:37 CDT"
|
251
|
+
},
|
252
|
+
|
253
|
+
{
|
254
|
+
"note_id": 8024,
|
255
|
+
"user": {
|
256
|
+
"user_id": 1,
|
257
|
+
"username": "nathan"
|
258
|
+
},
|
259
|
+
"book_edition": {
|
260
|
+
"title": "Infinite Jest",
|
261
|
+
"subtitle": "",
|
262
|
+
"authors": {
|
263
|
+
"author": "David Foster Wallace"
|
264
|
+
},
|
265
|
+
"isbn": "0316066524",
|
266
|
+
"covers": {
|
267
|
+
"cover_small": "http://media.readernaut.com/book_covers/0316066524_t50.jpg",
|
268
|
+
"cover_medium": "http://media.readernaut.com/book_covers/0316066524_t100.jpg",
|
269
|
+
"cover_large": "http://media.readernaut.com/book_covers/0316066524_t150.jpg"
|
270
|
+
},
|
271
|
+
"permalink": "http://readernaut.com/nathan/books/0316066524/infinite-jest/"
|
272
|
+
},
|
273
|
+
"body": "\x3ESome persons can give themselves away to an ambitious pursuit and have that be all the giving\x2Dthemselves\x2Daway\x2Dto\x2Dsomething thet need to do. Though sometimes this changes as the players get older and the pursuit more stress\x2Dfraught. American experience seems to suggest that people are virtually unlimited in their need to give themselves away, on various levels. Some just prefer to do it in secret. ",
|
274
|
+
"allow_comments": true,
|
275
|
+
"tags": "drugs, giving, experience",
|
276
|
+
"created": "2009-07-18 12:29 CDT",
|
277
|
+
"modified": "2009-07-18 12:29 CDT"
|
278
|
+
}
|
279
|
+
|
280
|
+
]
|
281
|
+
}
|
282
|
+
|
data/test/helper.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'pathname'
|
3
|
+
require 'rubygems'
|
4
|
+
|
5
|
+
gem 'thoughtbot-shoulda', '>= 2.10.1'
|
6
|
+
gem 'jnunemaker-matchy', '0.4.0'
|
7
|
+
gem 'mocha', '0.9.4'
|
8
|
+
gem 'fakeweb', '>= 1.2.5'
|
9
|
+
|
10
|
+
require 'shoulda'
|
11
|
+
require 'matchy'
|
12
|
+
require 'mocha'
|
13
|
+
require 'fakeweb'
|
14
|
+
|
15
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
16
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
17
|
+
require 'readernaut'
|
18
|
+
|
19
|
+
class Test::Unit::TestCase
|
20
|
+
end
|
21
|
+
|
22
|
+
FakeWeb.allow_net_connect = false
|
23
|
+
|
24
|
+
|
25
|
+
class Test::Unit::TestCase
|
26
|
+
end
|
27
|
+
|
28
|
+
def fixture_file(filename)
|
29
|
+
return '' if filename == ''
|
30
|
+
file_path = File.expand_path(File.dirname(__FILE__) + '/fixtures/' + filename)
|
31
|
+
File.read(file_path)
|
32
|
+
end
|
33
|
+
|
34
|
+
def readernaut_url(url)
|
35
|
+
url =~ /^http/ ? url : "http:/readernaut.com:80#{url}"
|
36
|
+
end
|
37
|
+
|
38
|
+
def stub_get(url, filename, status=nil)
|
39
|
+
options = {:body => fixture_file(filename)}
|
40
|
+
options.merge!({:status => status}) unless status.nil?
|
41
|
+
|
42
|
+
FakeWeb.register_uri(:get, readernaut_url(url), options)
|
43
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestReadernaut < Test::Unit::TestCase
|
4
|
+
context "When hitting the Readernaut API" do
|
5
|
+
|
6
|
+
should "retrieve a list of books for a user" do
|
7
|
+
stub_get "http://readernaut.com/api/v1/json/pengwynn/books/", "books.json"
|
8
|
+
results = Readernaut.books('pengwynn')
|
9
|
+
edition = results.reader_books.first.book_edition
|
10
|
+
edition.title.should == 'The Housing Boom and Bust'
|
11
|
+
edition.isbn.should == '0465018807'
|
12
|
+
edition.covers.cover_large.should == 'http://media.readernaut.com/book_covers/0465018807_t150.jpg'
|
13
|
+
end
|
14
|
+
|
15
|
+
should "retrieve a list of notes for a user" do
|
16
|
+
stub_get "http://readernaut.com/api/v1/json/pengwynn/notes/", "notes.json"
|
17
|
+
results = Readernaut.notes('pengwynn')
|
18
|
+
note = results.notes.last
|
19
|
+
note.note_id.should == 8024
|
20
|
+
note.tags.should == 'drugs, giving, experience'
|
21
|
+
end
|
22
|
+
|
23
|
+
should "retrieve a list of contacts for a user" do
|
24
|
+
stub_get "http://readernaut.com/api/v1/json/pengwynn/contacts/?page=2", "contacts.json"
|
25
|
+
results = Readernaut.contacts('pengwynn', :page => 2)
|
26
|
+
results.page.should == 2
|
27
|
+
results.contacts.first.user.username.should == 'spacecowboyian'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,127 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: readernaut
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Wynn Netherland
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-11-14 00:00:00 -06:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: mash
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ~>
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.3
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: httparty
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.4.3
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: shoulda
|
37
|
+
type: :development
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 2.10.1
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: jnunemaker-matchy
|
47
|
+
type: :development
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.4.0
|
54
|
+
version:
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mocha
|
57
|
+
type: :development
|
58
|
+
version_requirement:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - "="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 0.9.4
|
64
|
+
version:
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: fakeweb
|
67
|
+
type: :development
|
68
|
+
version_requirement:
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 1.2.5
|
74
|
+
version:
|
75
|
+
description: Reader is the best book social network around
|
76
|
+
email: wynn.netherland@gmail.com
|
77
|
+
executables: []
|
78
|
+
|
79
|
+
extensions: []
|
80
|
+
|
81
|
+
extra_rdoc_files:
|
82
|
+
- LICENSE
|
83
|
+
- README.rdoc
|
84
|
+
files:
|
85
|
+
- .document
|
86
|
+
- .gitignore
|
87
|
+
- LICENSE
|
88
|
+
- README.rdoc
|
89
|
+
- Rakefile
|
90
|
+
- VERSION
|
91
|
+
- lib/readernaut.rb
|
92
|
+
- test/fixtures/books.json
|
93
|
+
- test/fixtures/contacts.json
|
94
|
+
- test/fixtures/notes.json
|
95
|
+
- test/helper.rb
|
96
|
+
- test/test_readernaut.rb
|
97
|
+
has_rdoc: true
|
98
|
+
homepage: http://github.com/pengwynn/readernaut
|
99
|
+
licenses: []
|
100
|
+
|
101
|
+
post_install_message:
|
102
|
+
rdoc_options:
|
103
|
+
- --charset=UTF-8
|
104
|
+
require_paths:
|
105
|
+
- lib
|
106
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: "0"
|
111
|
+
version:
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: "0"
|
117
|
+
version:
|
118
|
+
requirements: []
|
119
|
+
|
120
|
+
rubyforge_project:
|
121
|
+
rubygems_version: 1.3.5
|
122
|
+
signing_key:
|
123
|
+
specification_version: 3
|
124
|
+
summary: Wrapper for the Readernaut API
|
125
|
+
test_files:
|
126
|
+
- test/helper.rb
|
127
|
+
- test/test_readernaut.rb
|