gowalla 0.3.0 → 0.4.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.
Files changed (61) hide show
  1. data/.document +5 -0
  2. data/.gitignore +25 -0
  3. data/Gemfile +3 -0
  4. data/Gemfile.lock +43 -0
  5. data/LICENSE +20 -0
  6. data/README.md +96 -0
  7. data/Rakefile +14 -0
  8. data/changelog.md +33 -0
  9. data/gowalla.gemspec +30 -0
  10. data/lib/gowalla.rb +26 -22
  11. data/lib/gowalla/checkins.rb +31 -0
  12. data/lib/gowalla/client.rb +22 -176
  13. data/lib/gowalla/flags.rb +42 -0
  14. data/lib/gowalla/items.rb +22 -0
  15. data/lib/gowalla/spots.rb +67 -0
  16. data/lib/gowalla/trips.rb +27 -0
  17. data/lib/gowalla/users.rb +91 -0
  18. data/lib/gowalla/version.rb +3 -0
  19. data/test/checkins_test.rb +18 -0
  20. data/test/client_test.rb +72 -0
  21. data/test/fixtures/categories.json +1826 -0
  22. data/test/fixtures/category.json +8 -0
  23. data/test/fixtures/challenges.json +191 -0
  24. data/test/fixtures/checkin.json +21 -0
  25. data/test/fixtures/events.json +185 -0
  26. data/test/fixtures/find_spots.json +620 -0
  27. data/test/fixtures/find_trips.json +695 -0
  28. data/test/fixtures/flag.json +23 -0
  29. data/test/fixtures/flags.json +31 -0
  30. data/test/fixtures/friend_requests.json +21 -0
  31. data/test/fixtures/friends.json +3 -0
  32. data/test/fixtures/friends_recent.json +243 -0
  33. data/test/fixtures/item.json +8 -0
  34. data/test/fixtures/item_events.json +35 -0
  35. data/test/fixtures/items.json +100 -0
  36. data/test/fixtures/me.json +49 -0
  37. data/test/fixtures/missing_items.json +1 -0
  38. data/test/fixtures/new_spot.json +49 -0
  39. data/test/fixtures/photos.json +88 -0
  40. data/test/fixtures/pins.json +81 -0
  41. data/test/fixtures/potential_twitter_friends.json +2090 -0
  42. data/test/fixtures/spot.json +251 -0
  43. data/test/fixtures/spots.json +557 -0
  44. data/test/fixtures/spots_by_category.json +620 -0
  45. data/test/fixtures/spots_urls.json +26 -0
  46. data/test/fixtures/stamps.json +284 -0
  47. data/test/fixtures/top_spots.json +64 -0
  48. data/test/fixtures/trip.json +22 -0
  49. data/test/fixtures/trips.json +881 -0
  50. data/test/fixtures/user.json +43 -0
  51. data/test/fixtures/users.json +46 -0
  52. data/test/fixtures/vaulted_items.json +12 -0
  53. data/test/fixtures/visited_spots.json +1 -0
  54. data/test/flags_test.rb +46 -0
  55. data/test/helper.rb +6 -6
  56. data/test/items_test.rb +26 -0
  57. data/test/spots_test.rb +70 -0
  58. data/test/trips_test.rb +25 -0
  59. data/test/users_test.rb +83 -0
  60. metadata +177 -29
  61. data/test/gowalla_test.rb +0 -214
data/test/gowalla_test.rb DELETED
@@ -1,214 +0,0 @@
1
- require 'helper'
2
-
3
- class GowallaTest < Test::Unit::TestCase
4
-
5
- context "When using the Gowalla API" do
6
- setup do
7
- @client = Gowalla::Client.new(:username => 'pengwynn', :password => '0U812', :api_key => 'gowallawallabingbang')
8
- end
9
-
10
- context "and working with Spots" do
11
- should "Retrieve a list of spots within a specified distance of a location" do
12
- stub_get("http://pengwynn:0U812@api.gowalla.com/spots?lat=%2B33.237593417&lng=-96.960559033&radius=50", "spots.json")
13
- spots = @client.list_spots(:lat => 33.237593417, :lng => -96.960559033, :radius => 50)
14
- spots.first.name.should == 'Gnomb Bar'
15
- spots.first.radius_meters.should == 50
16
- end
17
-
18
- should "Retrieve a list of spots within a specified bounds" do
19
- stub_get("http://pengwynn:0U812@api.gowalla.com/spots?sw=%2839.25565142103586%2C%20-8.717308044433594%29&nw=%2839.31411296530539%2C%20-8.490715026855469%29", "spots.json")
20
- spots = @client.list_spots(:sw => "(39.25565142103586, -8.717308044433594)", :nw => "(39.31411296530539, -8.490715026855469)")
21
- spots.first.name.should == 'Gnomb Bar'
22
- end
23
-
24
- should "Retrieve information about a specific spot" do
25
- stub_get('http://pengwynn:0U812@api.gowalla.com/spots/18568', 'spot.json')
26
- spot = @client.spot(18568)
27
- spot.name.should == "Wahoo's"
28
- spot.twitter_username.should == 'Wahoos512'
29
- spot.spot_categories.first.name.should == 'Mexican'
30
- end
31
-
32
- should "retrieve a list of check-ins at a particular spot. Shows only the activity that is visible to a given user" do
33
- stub_get('http://pengwynn:0U812@api.gowalla.com/spots/452593/events', 'events.json')
34
- events = @client.spot_events(452593)
35
- events.first[:type].should == 'checkin'
36
- events.first.user.last_name.should == 'Mack'
37
- end
38
-
39
- should "retrieve a list of items available at a particular spot" do
40
- stub_get('http://pengwynn:0U812@api.gowalla.com/spots/18568/items', 'items.json')
41
- items = @client.spot_items(18568)
42
- items.first.issue_number.should == 27868
43
- items.first.name.should == 'Bowl of Noodles'
44
- end
45
-
46
- should "lists all spot categories" do
47
- stub_get("http://pengwynn:0U812@api.gowalla.com/categories", "categories.json")
48
- categories = @client.categories
49
- categories.size.should == 9
50
- categories.first.name.should == 'Architecture & Buildings'
51
- categories.first.description.should == 'Bridge, Corporate, Home, Church, etc.'
52
- categories.first.spot_categories.size.should == 15
53
- categories.first.spot_categories.first.name.should == 'Bridge'
54
- end
55
-
56
- should "retrieve information about a specific category" do
57
- stub_get("http://pengwynn:0U812@api.gowalla.com/categories/1", "category.json")
58
- category = @client.category(1)
59
- category.name.should == 'Coffee Shop'
60
- end
61
-
62
- should "retrieve flags associated with that spot" do
63
- stub_get("http://pengwynn:0U812@api.gowalla.com/spots/1/flags", "flags.json")
64
- flags = @client.spot_flags(1)
65
- flags.first.spot.name.should == 'Wild Gowallaby #1'
66
- flags.first.user.url.should == '/users/340897'
67
- flags.first[:type].should == 'invalid'
68
- flags.first.status.should == 'open'
69
- end
70
- end
71
-
72
- context "and working with Users" do
73
-
74
- should "retrieve information about a specific user" do
75
- stub_get('http://pengwynn:0U812@api.gowalla.com/users/sco', 'user.json')
76
- user = @client.user('sco')
77
- user.bio.should == "CTO & co-founder of Gowalla. Ruby/Cocoa/JavaScript developer. Game designer. Author. Indoorsman."
78
- user.stamps_count.should == 506
79
- end
80
-
81
- should "retrieve a list of the stamps the user has collected" do
82
- stub_get('http://pengwynn:0U812@api.gowalla.com/users/1707/stamps?limit=20', 'stamps.json')
83
- stamps = @client.stamps(1707)
84
- stamps.size.should == 20
85
- stamps.first.spot.name.should == "Muck-N-Dave's Texas BBQ"
86
- stamps.first.spot.address.locality.should == 'Austin'
87
- end
88
-
89
- should "retrieve a list of spots the user has visited most often" do
90
- stub_get('http://pengwynn:0U812@api.gowalla.com/users/1707/top_spots', 'top_spots.json')
91
- top_spots = @client.top_spots(1707)
92
- top_spots.size.should == 10
93
- top_spots.first.name.should == 'Juan Pelota Cafe'
94
- top_spots.first.user_checkins_count.should == 30
95
- end
96
-
97
- end
98
-
99
- context "and working with Items" do
100
- should "retrieve information about a specific item" do
101
- stub_get('http://pengwynn:0U812@api.gowalla.com/items/607583', 'item.json')
102
- item = @client.item(607583)
103
- item.issue_number.should == 13998
104
- item.name.should == 'Sweets'
105
- item.determiner.should == 'some'
106
- end
107
- end
108
-
109
- context "and working with Trips" do
110
- should "retrieve a list of trips" do
111
- stub_get('http://pengwynn:0U812@api.gowalla.com/trips', 'trips.json')
112
- trips = @client.trips
113
- trips.first.name.should == 'London Pub Crawl'
114
- trips.first.spots.first.url.should == '/spots/164009'
115
- end
116
-
117
- should "retrieve information about a specific trip" do
118
- stub_get('http://pengwynn:0U812@api.gowalla.com/trips/1', 'trip.json')
119
- trip = @client.trip(1)
120
- trip.creator.last_name.should == 'Gowalla'
121
- trip.map_bounds.east.should == -63.457031
122
- end
123
- end
124
-
125
- context "and working with Flags" do
126
- should "retrieve a list of flags" do
127
- stub_get("http://pengwynn:0U812@api.gowalla.com/flags", "flags.json")
128
- flags = @client.list_flags
129
- flags.first.spot.name.should == 'Wild Gowallaby #1'
130
- flags.first.user.url.should == '/users/340897'
131
- flags.first[:type].should == 'invalid'
132
- flags.first.status.should == 'open'
133
- end
134
-
135
- should "retrieve information about a specific flag" do
136
- stub_get("http://pengwynn:0U812@api.gowalla.com/flags/1", "flag.json")
137
- flag = @client.flag(1)
138
- flag.spot.name.should == 'Wild Gowallaby #1'
139
- flag.user.url.should == '/users/340897'
140
- flag[:type].should == 'invalid'
141
- flag.status.should == 'open'
142
- end
143
- end
144
-
145
- context "and working with checkins" do
146
- should "fetch info for a checkin" do
147
- stub_get("http://pengwynn:0U812@api.gowalla.com/checkins/88", "checkin.json")
148
- checkin = @client.checkin_info(88)
149
- checkin.spot.name.should == 'Movie Tavern'
150
- checkin.message.should == 'There sending us Back-- to the Future!'
151
- end
152
- end
153
- end
154
-
155
- context "when using basic auth" do
156
- should "configure api_key, username, and password for easy access" do
157
-
158
- Gowalla.configure do |config|
159
- config.api_key = 'api_key'
160
- config.api_secret = nil
161
- config.username = 'username'
162
- config.password = 'password'
163
- end
164
-
165
- @client = Gowalla::Client.new
166
-
167
- stub_get('http://username:password@api.gowalla.com/trips', 'trips.json')
168
- trips = @client.trips
169
-
170
- @client.username.should == 'username'
171
- end
172
-
173
- should "configure test mode" do
174
- Gowalla.configure do |config|
175
- config.api_key = 'api_key'
176
- config.api_secret = nil
177
- config.username = 'username'
178
- config.password = 'password'
179
- config.test_mode = true
180
- end
181
-
182
- Gowalla.test_mode?.should == true
183
-
184
- end
185
- end
186
-
187
- context "when using OAuth2" do
188
-
189
- setup do
190
- Gowalla.configure do |config|
191
- config.api_key = 'api_key'
192
- config.api_secret = 'api_secret'
193
- end
194
-
195
- @client = Gowalla::Client.new
196
- end
197
-
198
- should "confiure api_key, api_secret" do
199
- @client.api_secret.should == 'api_secret'
200
- @client.oauth_client.id.should == 'api_key'
201
- end
202
-
203
- should "create an OAuth2 client" do
204
- @client.oauth_client.class.to_s.should == "OAuth2::Client"
205
- end
206
-
207
- should "indicate if it needs an access_token" do
208
- @client.needs_access?.should == true
209
- end
210
-
211
- end
212
-
213
-
214
- end