kiva 0.0.1 → 0.0.2
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/CHANGELOG +4 -0
- data/README +75 -10
- data/Rakefile +1 -1
- data/TODO +0 -2
- data/examples/newest.rb +8 -0
- data/lib/kiva.rb +157 -74
- data/test/generate_fixtures.rb +1 -0
- data/test/test_kiva.rb +2 -1
- metadata +3 -2
data/CHANGELOG
CHANGED
data/README
CHANGED
@@ -1,33 +1,98 @@
|
|
1
1
|
= kiva -- wrapper to the kiva rest API
|
2
2
|
|
3
|
-
You can find more information
|
3
|
+
This is a wrapper to the Kiva Web API. You can find more information
|
4
|
+
about the API here[http://developers.wiki.kiva.org/KivaAPI].
|
4
5
|
|
5
|
-
== Installing
|
6
6
|
|
7
|
-
|
8
|
-
tested and gemified, made beautiful and all the other boring stuff.
|
7
|
+
== Example
|
9
8
|
|
9
|
+
The following is an example of retrieving the last 20 loans on Kiva.
|
10
|
+
This is about as difficult as things get:
|
10
11
|
|
12
|
+
require 'kiva'
|
13
|
+
|
14
|
+
newest = Kiva::Loan.load_newest
|
15
|
+
newest.each{ |loan|
|
16
|
+
puts "#{loan.name} loaned $#{loan.funded_amount} for
|
17
|
+
#{loan.activity} in #{loan.location["country"]}"
|
18
|
+
}
|
11
19
|
|
12
|
-
|
20
|
+
Running the above script yields something similar to the following:
|
21
|
+
|
22
|
+
$ ruby -rubygems examples/newest.rb
|
23
|
+
|
24
|
+
Angela Okosun loaned $225 for Cement in Nigeria
|
25
|
+
Vitaliy Konovalenko loaned $1650 for Retail in Ukraine
|
26
|
+
(...)
|
27
|
+
Thi Thoa Do's Group loaned $300 for Food Production/Sales in Viet Nam
|
28
|
+
Thi Hoa Nguyen loaned $900 for General Store in Viet Nam
|
29
|
+
|
30
|
+
|
31
|
+
== Prerequisites
|
32
|
+
|
33
|
+
Kiva doesn't require an account or an API key in order to use their API,
|
34
|
+
so there are no prerequisites to using it. This library does depend on
|
35
|
+
SimpleHTTP[http://simplehttp.rubyforge.org/] and
|
36
|
+
json[http://json.rubyforge.org/] to handle the web api. These should be
|
37
|
+
installed automatically if you used +gem+ to install the library, else,
|
38
|
+
you'll need to install them manually.
|
13
39
|
|
14
|
-
In case you discover bugs, spelling errors, offer suggestions for
|
15
|
-
improvements or would like to help out with the project, you can contact
|
16
|
-
me directly (tim@kuriositaet.de).
|
17
|
-
|
18
40
|
|
41
|
+
== Basic Usage
|
19
42
|
|
43
|
+
This library consists of number of classes modelling the data
|
44
|
+
objects which the web api returns. Each class is similar, consisting of
|
45
|
+
class methods used to call webapi functions and attributes which provide
|
46
|
+
access to the (unpacked) json data the webapi returns.
|
20
47
|
|
48
|
+
These classes are (in no particular order) :
|
21
49
|
|
50
|
+
* <code>Kiva::Loan</code>
|
51
|
+
* <code>Kiva::Lender</code>
|
52
|
+
* <code>Kiva::LendingAction</code>
|
53
|
+
* <code>Kiva::Partner</code>
|
54
|
+
* <code>Kiva::JournalEntry</code>
|
55
|
+
* <code>Kiva::Comment</code>
|
56
|
+
* <code>Kiva::Release</code>
|
22
57
|
|
58
|
+
Each of these classes has attributes containing the data returned from
|
59
|
+
the web api. For example, a +Comment+ has the attributes:
|
23
60
|
|
61
|
+
* <code>author</code>
|
62
|
+
* <code>body</code>
|
63
|
+
* <code>date</code>
|
64
|
+
* <code>id</code>
|
65
|
+
* <code>whereabouts</code>
|
24
66
|
|
67
|
+
Each class has one or more class methods, corresponding to web api
|
68
|
+
calls, which may be used to create and load instances of the class. For
|
69
|
+
example, +Loan+ has the following list of class methods:
|
25
70
|
|
71
|
+
* +load+ : loans/<ids>[http://developers.wiki.kiva.org/KivaAPI#loans/ltidsgt]
|
72
|
+
* +load_for_lender+ : loans/<id>/lenders[http://developers.wiki.kiva.org/KivaAPI#loans/ltidgt/lenders]
|
73
|
+
* +load_newest+ : loans/newest[http://developers.wiki.kiva.org/KivaAPI#loans/newest]
|
74
|
+
* +search+ : loans/search[http://developers.wiki.kiva.org/KivaAPI#loans/search]
|
26
75
|
|
27
76
|
|
28
77
|
|
78
|
+
== Installing
|
79
|
+
|
80
|
+
You should be able to `gem install kiva`. Alternatively, download a distribution
|
81
|
+
at rubyforge: http://rubyforge.org/frs/?group_id=8034
|
82
|
+
|
83
|
+
Finally you can grab the sources from the rubyforge or github repositories:
|
29
84
|
|
85
|
+
git clone git://rubyforge.org/kiva.git
|
30
86
|
|
87
|
+
or
|
31
88
|
|
89
|
+
http://github.com/a2800276/kiva/tree/master#
|
32
90
|
|
33
|
-
|
91
|
+
|
92
|
+
|
93
|
+
== Mailing List
|
94
|
+
|
95
|
+
In case you discover bugs, spelling errors, offer suggestions for
|
96
|
+
improvements or would like to help out with the project, you can contact
|
97
|
+
me directly (tim@kuriositaet.de).
|
98
|
+
|
data/Rakefile
CHANGED
@@ -9,7 +9,7 @@ require "rubygems"
|
|
9
9
|
|
10
10
|
SHORTNAME ='kiva' # this should be the rubyforge project name
|
11
11
|
DESC = 'wrapper to kiva api'
|
12
|
-
PKG_VERSION ='0.0.
|
12
|
+
PKG_VERSION ='0.0.2'
|
13
13
|
LONG_DESC = <<END_DESC
|
14
14
|
Wrapper to the kiva web api. The API is described in
|
15
15
|
more detail here:
|
data/TODO
CHANGED
data/examples/newest.rb
ADDED
data/lib/kiva.rb
CHANGED
@@ -1,12 +1,22 @@
|
|
1
1
|
require 'json'
|
2
2
|
require 'simplehttp'
|
3
3
|
|
4
|
+
# The Kiva module is a namespace to contain all the classes and contains
|
5
|
+
# some utility functions to handle json and http.
|
4
6
|
|
5
7
|
module Kiva
|
6
8
|
|
7
9
|
#
|
8
|
-
# central location
|
9
|
-
#
|
10
|
+
# This is central location where the webservice query
|
11
|
+
# is performed. You probably won't need to change this, but in case you
|
12
|
+
# you need special error handling or some other behaviour, you can
|
13
|
+
# modify everything in one place HERE.
|
14
|
+
#
|
15
|
+
# For examples on how to do this, have a look at the files: `test/generate_fixtures.rb`
|
16
|
+
# and `test/test_kiva.rb`.
|
17
|
+
#
|
18
|
+
# ===Error Handling
|
19
|
+
#
|
10
20
|
# currently the normal HttpExceptions are just passed
|
11
21
|
# on, which should be ok for starters.
|
12
22
|
#
|
@@ -88,7 +98,18 @@ module Kiva
|
|
88
98
|
res
|
89
99
|
end
|
90
100
|
|
91
|
-
|
101
|
+
# Represents a Loan (whoda guessed.) The accessible parameters are all
|
102
|
+
# all there is to this. Depending on how a particular instance of loan
|
103
|
+
# was loaded, not all of the attributes need have a value, so remember
|
104
|
+
# to check for +nil+.
|
105
|
+
#
|
106
|
+
# Use one of the class functions:
|
107
|
+
# * +load+
|
108
|
+
# * +load_for_lender+
|
109
|
+
# * +load_newest+
|
110
|
+
# * +search+
|
111
|
+
#
|
112
|
+
# to load loans from Kiva.
|
92
113
|
class Loan
|
93
114
|
attr_accessor :id
|
94
115
|
attr_accessor :status
|
@@ -122,14 +143,15 @@ module Kiva
|
|
122
143
|
#
|
123
144
|
# Returns details for one or more loans.
|
124
145
|
#
|
125
|
-
#
|
126
|
-
#
|
146
|
+
# ====Paramaters
|
147
|
+
# +ids+ : an instance of +Loan+ or a loan id or an array +Loan+'s
|
148
|
+
# or loan id's
|
127
149
|
#
|
128
|
-
#
|
129
|
-
#
|
150
|
+
# ====Returns
|
151
|
+
# an array of +Loan+ instances
|
130
152
|
#
|
131
|
-
#
|
132
|
-
#
|
153
|
+
# ====Corresponds
|
154
|
+
# http://developers.wiki.kiva.org/KivaAPI#loans/ltidsgt
|
133
155
|
#
|
134
156
|
def load ids
|
135
157
|
case ids
|
@@ -153,14 +175,14 @@ module Kiva
|
|
153
175
|
#
|
154
176
|
# Search for loans matching specific criteria.
|
155
177
|
#
|
156
|
-
#
|
157
|
-
#
|
178
|
+
# ====Parameters
|
179
|
+
# +filter+ : an instance of +Filter+ describing the search parameter
|
158
180
|
#
|
159
|
-
#
|
160
|
-
#
|
181
|
+
# ====Returns
|
182
|
+
# an array of +Loan+ instances
|
161
183
|
#
|
162
|
-
#
|
163
|
-
#
|
184
|
+
# ====Corresponds
|
185
|
+
# http://developers.wiki.kiva.org/KivaAPI#loans/search
|
164
186
|
#
|
165
187
|
def search filter, page=nil
|
166
188
|
url = SEARCH
|
@@ -178,14 +200,14 @@ module Kiva
|
|
178
200
|
#
|
179
201
|
# Returns the most recent fundraising loans.
|
180
202
|
#
|
181
|
-
#
|
182
|
-
#
|
203
|
+
# ====Parameters
|
204
|
+
# +page+ : the page position
|
183
205
|
#
|
184
|
-
#
|
185
|
-
#
|
206
|
+
# ====Returns
|
207
|
+
# an array of +Loan+ instances
|
186
208
|
#
|
187
|
-
#
|
188
|
-
#
|
209
|
+
# ====Corresponds
|
210
|
+
# http://developers.wiki.kiva.org/KivaAPI#loans/newest
|
189
211
|
#
|
190
212
|
def load_newest page=nil
|
191
213
|
url = LOAD_NEWEST
|
@@ -199,18 +221,18 @@ module Kiva
|
|
199
221
|
|
200
222
|
|
201
223
|
#
|
202
|
-
# Returns loans sponsored by
|
224
|
+
# Returns loans sponsored by a specified lender
|
203
225
|
#
|
204
|
-
#
|
205
|
-
#
|
206
|
-
#
|
207
|
-
#
|
226
|
+
# ====Parameters
|
227
|
+
# * +id+ : id of lender or instance of +Lender+
|
228
|
+
# * +sort_by+: one of <code>:newest, :oldest</code>
|
229
|
+
# * +page+ : page position
|
208
230
|
#
|
209
|
-
#
|
210
|
-
#
|
231
|
+
# ====Returns
|
232
|
+
# array of +Loan+'s
|
211
233
|
#
|
212
|
-
#
|
213
|
-
#
|
234
|
+
# ====Corresponds
|
235
|
+
# http://developers.wiki.kiva.org/KivaAPI#lenders/ltlenderidgt/loans
|
214
236
|
#
|
215
237
|
|
216
238
|
def load_for_lender id, sort_by=nil, page=nil
|
@@ -230,6 +252,17 @@ module Kiva
|
|
230
252
|
end
|
231
253
|
|
232
254
|
end
|
255
|
+
|
256
|
+
# Represents a Lender (whoda guessed.) The accessible parameters are all
|
257
|
+
# all there is to this. Depending on how a particular instance of loan
|
258
|
+
# was loaded, not all of the attributes need have a value, so remember
|
259
|
+
# to check for +nil+.
|
260
|
+
#
|
261
|
+
# Use one of the class functions:
|
262
|
+
# * +load+
|
263
|
+
# * +load_for_loan+
|
264
|
+
#
|
265
|
+
# to load lender information from Kiva.
|
233
266
|
|
234
267
|
class Lender
|
235
268
|
# url = "http://api.kivaws.org/v1/lenders/%s.json"
|
@@ -257,14 +290,14 @@ module Kiva
|
|
257
290
|
#
|
258
291
|
# List public lenders of a loan.
|
259
292
|
#
|
260
|
-
#
|
261
|
-
#
|
293
|
+
# ====Parameters
|
294
|
+
# +loan+ : a loan id or an instance of +Loan+
|
262
295
|
#
|
263
|
-
#
|
264
|
-
#
|
296
|
+
# ====Returns
|
297
|
+
# an array of +Lender+ instances.
|
265
298
|
#
|
266
|
-
#
|
267
|
-
#
|
299
|
+
# ====Corresponds
|
300
|
+
# http://developers.wiki.kiva.org/KivaAPI#loans/ltidgt/lenders
|
268
301
|
#
|
269
302
|
def load_for_loan loan, page = nil
|
270
303
|
loan = loan.id if loan.is_a?(Loan)
|
@@ -283,14 +316,14 @@ module Kiva
|
|
283
316
|
#
|
284
317
|
# Load details for one or more Lenders.
|
285
318
|
#
|
286
|
-
#
|
287
|
-
#
|
319
|
+
# ====Parameters
|
320
|
+
# +ids+ : a lender id or and array of id's
|
288
321
|
#
|
289
|
-
#
|
290
|
-
#
|
322
|
+
# ====Returns
|
323
|
+
# an array of +Lender+ instances.
|
291
324
|
#
|
292
|
-
#
|
293
|
-
#
|
325
|
+
# ====Corresponds
|
326
|
+
# http://developers.wiki.kiva.org/KivaAPI#lenders/ltlenderidsgt
|
294
327
|
#
|
295
328
|
def load ids
|
296
329
|
ids = ids.join(",") if ids.is_a?(Array)
|
@@ -305,6 +338,10 @@ module Kiva
|
|
305
338
|
|
306
339
|
end
|
307
340
|
|
341
|
+
# +LendingAction+ are basically a showcase of recent Kiva activity.
|
342
|
+
# Use the class method +load+ to loan the last 100 lenders and the
|
343
|
+
# loan they sponsored.
|
344
|
+
|
308
345
|
class LendingAction
|
309
346
|
attr_accessor :id
|
310
347
|
attr_accessor :date
|
@@ -318,11 +355,11 @@ module Kiva
|
|
318
355
|
#
|
319
356
|
# Returns the last 100 public actions from Kiva.
|
320
357
|
#
|
321
|
-
#
|
322
|
-
#
|
358
|
+
# ====Returns
|
359
|
+
# an array of +LendingAction+ instances
|
323
360
|
#
|
324
|
-
#
|
325
|
-
#
|
361
|
+
# ====corresponds
|
362
|
+
# http://developers.wiki.kiva.org/KivaAPI#lendingactions/recent
|
326
363
|
#
|
327
364
|
def load
|
328
365
|
raw = Kiva.execute(LOAD_RECENT)
|
@@ -333,7 +370,11 @@ module Kiva
|
|
333
370
|
end
|
334
371
|
end
|
335
372
|
end
|
336
|
-
|
373
|
+
|
374
|
+
# Journal entries are attached to loans. Using the class method +load+
|
375
|
+
# you can retrieve all entries attached to a particular loan.
|
376
|
+
#
|
377
|
+
|
337
378
|
class JournalEntry
|
338
379
|
attr_accessor :id
|
339
380
|
attr_accessor :body
|
@@ -345,6 +386,22 @@ module Kiva
|
|
345
386
|
attr_accessor :image
|
346
387
|
attr_accessor :recommendation_count
|
347
388
|
|
389
|
+
#
|
390
|
+
# Retrieve an array of +Comment+ instances
|
391
|
+
# associated with this entry. N.B. this leads to
|
392
|
+
# a further network call.
|
393
|
+
def comments
|
394
|
+
unless @comments
|
395
|
+
return nil if id.is_nil?
|
396
|
+
if @comment_count != 0
|
397
|
+
@comments = Comment.load(this)
|
398
|
+
else
|
399
|
+
@commetns = []
|
400
|
+
end
|
401
|
+
end
|
402
|
+
@comments
|
403
|
+
end
|
404
|
+
|
348
405
|
class << self
|
349
406
|
KEY = "journal__entries"
|
350
407
|
LOAD = "http://api.kivaws.org/v1/loans/%s/journal_entries.json?"
|
@@ -352,14 +409,14 @@ module Kiva
|
|
352
409
|
#
|
353
410
|
# Load journal entries for a loan.
|
354
411
|
#
|
355
|
-
#
|
356
|
-
#
|
412
|
+
# ====Parameters
|
413
|
+
# +id+ : a loan id or an instance of +Loan+
|
357
414
|
#
|
358
|
-
#
|
359
|
-
#
|
415
|
+
# ====Returns
|
416
|
+
# an array of +JournalEntry+ instances.
|
360
417
|
#
|
361
|
-
#
|
362
|
-
#
|
418
|
+
# ====Corresponds
|
419
|
+
# http://developers.wiki.kiva.org/KivaAPI#loans/ltidgt/journalentries
|
363
420
|
#
|
364
421
|
def load id, page = nil, include_bulk = nil
|
365
422
|
id = id.id if id.is_a? Loan
|
@@ -375,7 +432,8 @@ module Kiva
|
|
375
432
|
end
|
376
433
|
end
|
377
434
|
end
|
378
|
-
|
435
|
+
|
436
|
+
# User comment made in response to a JournalEntry.
|
379
437
|
class Comment
|
380
438
|
# http://api.kivaws.org/v1/journal_entries/<id>/comments.json
|
381
439
|
attr_accessor :body
|
@@ -391,12 +449,14 @@ module Kiva
|
|
391
449
|
#
|
392
450
|
# Loads an array of comments for a JournalEntry.
|
393
451
|
#
|
394
|
-
#
|
395
|
-
#
|
396
|
-
#
|
452
|
+
# ====Parameters
|
453
|
+
# * +id+ : the numerical id of a Journal Entry or an instance of the class +JournalEntry+
|
454
|
+
# * +page+: which page of comments to load, default is the first.
|
397
455
|
#
|
398
|
-
#
|
456
|
+
# ====Returns
|
457
|
+
# array of +Comments+
|
399
458
|
#
|
459
|
+
# ====Corresponds
|
400
460
|
# http://developers.wiki.kiva.org/KivaAPI#journalentries/ltidgt/comments
|
401
461
|
#
|
402
462
|
def load id, page=nil
|
@@ -412,6 +472,7 @@ module Kiva
|
|
412
472
|
end
|
413
473
|
end
|
414
474
|
|
475
|
+
# Kiva field Partner
|
415
476
|
class Partner
|
416
477
|
attr_accessor :start_date
|
417
478
|
attr_accessor :rating
|
@@ -432,14 +493,14 @@ module Kiva
|
|
432
493
|
#
|
433
494
|
# Load an alphabetically sorted list of partners.
|
434
495
|
#
|
435
|
-
#
|
436
|
-
#
|
496
|
+
# ====Parameters
|
497
|
+
# +page+: page position
|
437
498
|
#
|
438
|
-
#
|
439
|
-
#
|
499
|
+
# ====Returns
|
500
|
+
# an array of +Partner+ instances
|
440
501
|
#
|
441
|
-
#
|
442
|
-
#
|
502
|
+
# ====Corresponds
|
503
|
+
# http://developers.wiki.kiva.org/KivaAPI#partners
|
443
504
|
#
|
444
505
|
|
445
506
|
def load page=nil
|
@@ -452,6 +513,8 @@ module Kiva
|
|
452
513
|
end
|
453
514
|
end
|
454
515
|
|
516
|
+
# Release information concerning the webapi. This is not the
|
517
|
+
# release number of the ruby library!
|
455
518
|
class Release
|
456
519
|
|
457
520
|
attr_accessor :date
|
@@ -461,12 +524,11 @@ module Kiva
|
|
461
524
|
#
|
462
525
|
# Returns release information
|
463
526
|
#
|
527
|
+
# ====Returns
|
528
|
+
# an array of +Partner+ instances
|
464
529
|
#
|
465
|
-
#
|
466
|
-
#
|
467
|
-
#
|
468
|
-
# CORRESPONDS
|
469
|
-
# http://developers.wiki.kiva.org/KivaAPI#releases/api/current
|
530
|
+
# ====Corresponds
|
531
|
+
# http://developers.wiki.kiva.org/KivaAPI#releases/api/current
|
470
532
|
#
|
471
533
|
|
472
534
|
def load
|
@@ -477,6 +539,7 @@ module Kiva
|
|
477
539
|
end
|
478
540
|
end
|
479
541
|
|
542
|
+
# Templates which may be used to construct html image tags.
|
480
543
|
class Templates
|
481
544
|
attr_accessor :id
|
482
545
|
attr_accessor :pattern
|
@@ -489,100 +552,120 @@ module Kiva
|
|
489
552
|
end
|
490
553
|
end
|
491
554
|
|
555
|
+
# Filter to be used in order to describe the intended search results
|
556
|
+
# of <code>Loan.search</code>
|
492
557
|
class Filter
|
493
558
|
attr_accessor :params
|
559
|
+
|
560
|
+
# Create a new instance of filter with no attributes.
|
494
561
|
def initialize
|
495
562
|
@params = {}
|
496
563
|
end
|
497
564
|
|
498
|
-
#sort_by
|
565
|
+
# sort_by
|
499
566
|
def popularity
|
500
567
|
@params["sort_by"]="popularity"
|
501
568
|
return self
|
502
569
|
end
|
570
|
+
# sort_by
|
503
571
|
def loan_amount
|
504
572
|
@params["sort_by"]="loan_amount"
|
505
573
|
return self
|
506
574
|
end
|
575
|
+
# sort_by
|
507
576
|
def oldest
|
508
577
|
@params["sort_by"]="oldest"
|
509
578
|
return self
|
510
579
|
end
|
580
|
+
# sort_by
|
511
581
|
def expiration
|
512
582
|
@params["sort_by"]="expiration"
|
513
583
|
return self
|
514
584
|
end
|
585
|
+
# sort_by
|
515
586
|
def newest
|
516
587
|
@params["sort_by"]="newest"
|
517
588
|
return self
|
518
589
|
end
|
590
|
+
# sort_by
|
519
591
|
def amount_remaining
|
520
592
|
@params["sort_by"]="amount_remaining"
|
521
593
|
return self
|
522
594
|
end
|
595
|
+
# sort_by
|
523
596
|
def repayment_term
|
524
597
|
@params["sort_by"]="repayment_term"
|
525
598
|
return self
|
526
599
|
end
|
527
600
|
|
528
|
-
#
|
601
|
+
# restrict to male loan recipients
|
529
602
|
def male
|
530
603
|
@params["gender"]="male"
|
531
604
|
return self
|
532
605
|
end
|
606
|
+
# restrict to female loan recipients
|
533
607
|
def female
|
534
608
|
@params["gender"]="female"
|
535
609
|
return self
|
536
610
|
end
|
537
611
|
|
538
|
-
#
|
612
|
+
# restrict status
|
539
613
|
def fundraising
|
540
614
|
@params["status"]="fundraising"
|
541
615
|
return self
|
542
616
|
end
|
617
|
+
# restrict status
|
543
618
|
def funded
|
544
619
|
@params["status"]="funded"
|
545
620
|
return self
|
546
621
|
end
|
622
|
+
# restrict status
|
547
623
|
def in_repayment
|
548
624
|
@params["status"]="in_repayment"
|
549
625
|
return self
|
550
626
|
end
|
627
|
+
# restrict status
|
551
628
|
def paid
|
552
629
|
@params["status"]="paid"
|
553
630
|
return self
|
554
631
|
end
|
632
|
+
# restrict status
|
555
633
|
def defaulted
|
556
634
|
@params["status"]="defaulted"
|
557
635
|
return self
|
558
636
|
end
|
559
637
|
|
560
|
-
#
|
561
|
-
|
638
|
+
#restrict region
|
562
639
|
def north_america
|
563
640
|
@params["region"]="na"
|
564
641
|
return self
|
565
642
|
end
|
643
|
+
#restrict region
|
566
644
|
def central_america
|
567
645
|
@params["region"]="ca"
|
568
646
|
return self
|
569
647
|
end
|
648
|
+
#restrict region
|
570
649
|
def south_america
|
571
650
|
@params["region"]="sa"
|
572
651
|
return self
|
573
652
|
end
|
653
|
+
#restrict region
|
574
654
|
def africa
|
575
655
|
@params["region"]="af"
|
576
656
|
return self
|
577
657
|
end
|
658
|
+
#restrict region
|
578
659
|
def asia
|
579
660
|
@params["region"]="as"
|
580
661
|
return self
|
581
662
|
end
|
663
|
+
#restrict region
|
582
664
|
def middle_east
|
583
665
|
@params["region"]="me"
|
584
666
|
return self
|
585
667
|
end
|
668
|
+
#restrict region
|
586
669
|
def eastern_europe
|
587
670
|
@params["region"]="ee"
|
588
671
|
return self
|
data/test/generate_fixtures.rb
CHANGED
data/test/test_kiva.rb
CHANGED
@@ -3,11 +3,12 @@ require 'pp'
|
|
3
3
|
require File.dirname(__FILE__) + '/../lib/kiva'
|
4
4
|
|
5
5
|
|
6
|
-
# Patch up execute method to use dummies and not connect to real web api.
|
7
6
|
module Kiva
|
8
7
|
fixtures = File.open(File.dirname(__FILE__)+"/fixtures.rbf").readlines.join
|
9
8
|
$fixtures = eval(fixtures)
|
10
9
|
|
10
|
+
# Modified `execute` method for TESTING!
|
11
|
+
# Patch up execute method to use dummies and not connect to real web api.
|
11
12
|
def Kiva.execute url, query=nil
|
12
13
|
key = [url, query]
|
13
14
|
$fixtures[key]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kiva
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors: []
|
7
7
|
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-03-
|
12
|
+
date: 2009-03-23 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -40,6 +40,7 @@ extra_rdoc_files: []
|
|
40
40
|
|
41
41
|
files:
|
42
42
|
- lib/kiva.rb
|
43
|
+
- examples/newest.rb
|
43
44
|
- AUTHORS
|
44
45
|
- CHANGELOG
|
45
46
|
- COPYING
|