untappd 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/Gemfile.lock +1 -1
- data/README.rdoc +39 -2
- data/examples/user_feed.rb +12 -0
- data/lib/untappd.rb +1 -0
- data/lib/untappd/beer.rb +1 -1
- data/lib/untappd/user.rb +60 -0
- data/lib/untappd/version.rb +1 -1
- data/spec/beer_spec.rb +55 -0
- data/spec/spec_helper.rb +4 -0
- data/spec/untappd_spec.rb +13 -0
- data/spec/user_spec.rb +100 -0
- data/untappd.gemspec +1 -1
- metadata +19 -9
- data/spec/checkins_spec.rb +0 -5
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -9,6 +9,7 @@ This is a simple wrapper around the untappd API packaged as a ruby gem.
|
|
9
9
|
|
10
10
|
== Releases
|
11
11
|
|
12
|
+
* 0.0.2 User feed, distinct beers, info, badges, friends, wish list
|
12
13
|
* 0.0.1 Beer Search, Info and Checkins
|
13
14
|
|
14
15
|
== Examples
|
@@ -20,7 +21,7 @@ Configure your API KEY
|
|
20
21
|
|
21
22
|
Get all the checkins for Arrogant Bastard Ale
|
22
23
|
|
23
|
-
checkins = Untappd.
|
24
|
+
checkins = Untappd::Beer.checkins(18099)
|
24
25
|
checkins.each do |checkin|
|
25
26
|
puts "#{checkin.user.first_name} at #{checkin.created_at}"
|
26
27
|
end
|
@@ -37,8 +38,44 @@ Get extended info for Arrogant Bastard Ale
|
|
37
38
|
info = Untappd::Beer.info(18099)
|
38
39
|
puts "#{info.name} by #{info.brewery}"
|
39
40
|
|
41
|
+
All Methods can take additional options specified in the API
|
42
|
+
|
43
|
+
checkins = Untappd::Beer.checkins(18099, :offset => 100)
|
44
|
+
|
45
|
+
beers = Untappd::Beer.search('stone', :sort => "count")
|
46
|
+
|
40
47
|
== Debugging
|
41
48
|
You can dump any result to see what values are available with
|
42
49
|
|
43
50
|
info = Untappd::Beer.info(18099)
|
44
|
-
puts info.inspect
|
51
|
+
puts info.inspect
|
52
|
+
|
53
|
+
== API Coverage
|
54
|
+
|
55
|
+
Beer Object
|
56
|
+
* Beer Feed - done
|
57
|
+
* Beer Info - done
|
58
|
+
* Beer Search - done
|
59
|
+
|
60
|
+
User Object
|
61
|
+
* User Feed - done
|
62
|
+
* User Info - done
|
63
|
+
* User Badges - done
|
64
|
+
* User Friends - done
|
65
|
+
* User Wish List - done
|
66
|
+
* User Distinct Beers - done
|
67
|
+
|
68
|
+
TODO
|
69
|
+
* Friend Feed
|
70
|
+
* The Pub Feed
|
71
|
+
* Venue Feed
|
72
|
+
* Brewery Checkins
|
73
|
+
* Venue Info
|
74
|
+
* Checkin Info
|
75
|
+
* Trending
|
76
|
+
* Checkin (Test)
|
77
|
+
* Checkin
|
78
|
+
* Add Comment
|
79
|
+
* Remove Comment
|
80
|
+
* Toast
|
81
|
+
* Remove Toast
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#list the recent checkins for Arrogant Bastard Ale
|
2
|
+
require 'rubygems'
|
3
|
+
require 'untappd'
|
4
|
+
|
5
|
+
Untappd.configure do |config|
|
6
|
+
config.apikey = 'YOUR_API_KEY'
|
7
|
+
end
|
8
|
+
|
9
|
+
feed = Untappd::User.feed("cmar")
|
10
|
+
feed.each do |f|
|
11
|
+
puts "#{f.user.first_name} at #{f.created_at}"
|
12
|
+
end
|
data/lib/untappd.rb
CHANGED
data/lib/untappd/beer.rb
CHANGED
data/lib/untappd/user.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
module Untappd
|
2
|
+
|
3
|
+
class User < Base
|
4
|
+
|
5
|
+
def self.info(user, options={})
|
6
|
+
options.merge!({
|
7
|
+
:key => Untappd::apikey,
|
8
|
+
:user => user
|
9
|
+
})
|
10
|
+
|
11
|
+
response_to_mash get("/user", :query => options)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.badges(user, options={})
|
15
|
+
options.merge!({
|
16
|
+
:key => Untappd::apikey,
|
17
|
+
:user => user
|
18
|
+
})
|
19
|
+
|
20
|
+
response_to_mash get("/user_badge", :query => options)
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.friends(user, options={})
|
24
|
+
options.merge!({
|
25
|
+
:key => Untappd::apikey,
|
26
|
+
:user => user
|
27
|
+
})
|
28
|
+
|
29
|
+
response_to_mash get("/friends", :query => options)
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.wish_list(user, options={})
|
33
|
+
options.merge!({
|
34
|
+
:key => Untappd::apikey,
|
35
|
+
:user => user
|
36
|
+
})
|
37
|
+
|
38
|
+
response_to_mash get("/wish_list", :query => options)
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.distinct(user, options={})
|
42
|
+
options.merge!({
|
43
|
+
:key => Untappd::apikey,
|
44
|
+
:user => user
|
45
|
+
})
|
46
|
+
|
47
|
+
response_to_mash get("/distinct", :query => options)
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.feed(user, options={})
|
51
|
+
options.merge!({
|
52
|
+
:key => Untappd::apikey,
|
53
|
+
:user => user
|
54
|
+
})
|
55
|
+
|
56
|
+
response_to_mash get("/user_feed", :query => options)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
data/lib/untappd/version.rb
CHANGED
data/spec/beer_spec.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe "Beer" do
|
4
|
+
|
5
|
+
before(:all) do
|
6
|
+
Untappd.configure do |config|
|
7
|
+
config.apikey = '6666666666666666666666'
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
before(:each) do
|
12
|
+
@response = {:results =>[]}
|
13
|
+
@response.stub(:code => 200)
|
14
|
+
Untappd::Beer.stub(:get => @response)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should get checkins" do
|
18
|
+
@response[:results] << {:checkin_id => "610208",
|
19
|
+
:beer_id => "18099",
|
20
|
+
:beer_name => "Arrogant Bastard Ale",
|
21
|
+
:brewery_name => "Stone Brewing Co."}
|
22
|
+
|
23
|
+
checkins = Untappd::Beer.checkins(18099)
|
24
|
+
checkins.first.beer_name.should == "Arrogant Bastard Ale"
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should get info" do
|
28
|
+
@response[:results] = {:brewery_id => "1204",
|
29
|
+
:beer_id => "18099",
|
30
|
+
:name => "Arrogant Bastard Ale",
|
31
|
+
:brewery => "Stone Brewing Co."}
|
32
|
+
|
33
|
+
info = Untappd::Beer.info(18099)
|
34
|
+
info.name.should == "Arrogant Bastard Ale"
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should search" do
|
38
|
+
@response[:results] << {:beer_id => "18099",
|
39
|
+
:beer_name => "Arrogant Bastard Ale",
|
40
|
+
:brewery_name => "Stone Brewing Co."}
|
41
|
+
|
42
|
+
search = Untappd::Beer.info('stone')
|
43
|
+
search.first.beer_name.should == "Arrogant Bastard Ale"
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
#beer checkin JSON
|
49
|
+
#{"next_query":"http:\/\/api.untappd.com\/v3\/beer_checkins?bid=18099&since=610053","next_page":"http:\/\/api.untappd.com\/v3\/beer_checkins?bid=18099&offset=25","http_code":200,"results":[{"user":{"user_name":"micek","first_name":"Cory","last_name":"M.","user_avatar":"https:\/\/untappd.s3.amazonaws.com\/profile\/0d781dfce6d3acfdfbbe9f2692a0d0e4_thumb.jpg","location":"San Diego, CA","bio":"interactive designer\/developer\/creativist, obsessed with user experience, loose leaf teas and micro brews","is_friends":null,"url":""},"checkin_id":"618853","beer_id":"18099","brewery_id":"1204","beer_name":"Arrogant Bastard Ale","brewery_name":"Stone Brewing Co.","created_at":"Sat, 09 Apr 2011 05:27:09 +0000","check_in_comment":"","checkin_link":"http:\/\/untappd.com\/user\/micek\/checkin\/BETZs89","beer_stamp":"https:\/\/untappd.s3.amazonaws.com\/site\/beer_logos\/beer-arrogantBastardAle.jpg","venue_name":"El Take It Easy","venue_id":"272","venue_lat":"32.749","venue_lng":"-117.13"}
|
50
|
+
|
51
|
+
#beer info JSON
|
52
|
+
# {"http_code":200,"results":{"name":"Arrogant Bastard Ale","beer_id":"18099","brewery":"Stone Brewing Co.","brewery_id":"1204","img":"https:\/\/untappd.s3.amazonaws.com\/site\/beer_logos\/beer-arrogantBastardAle.jpg","total_count":"1553","unique_count":"1041","monthly_count":"193","weekly_count":"161","beer_abv":"7.2","beer_created":"Mon, 27 Dec 2010 20:34:38 +0000","type":"American Strong Ale","beer_creator":"Firmansyah","beer_creator_id":"9041"}}
|
53
|
+
|
54
|
+
#beer search JSON
|
55
|
+
#{"search_term":"stone","http_code":200,"returned_results":25,"next_page":"http:\/\/api.untappd.com\/v3\/beer_search?q=stone&offset=25","results":[{"beer_id":"29100","beer_name":" Arrogant Bastard Ale Aged In Bourbon Barrels","beer_stamp":"https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/temp\/badge-beer-default.png","brewery_id":"1204","brewery_name":"Stone Brewing Co.","brewery_stamp":"https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/temp\/badge-brewery-default.png","country_name":"United States","total_count":"11"}
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe "Untappd" do
|
4
|
+
|
5
|
+
it "should configure Rails initializer style" do
|
6
|
+
Untappd.configure do |config|
|
7
|
+
config.apikey = 'c01822f029486661bb3669a845b5ec14'
|
8
|
+
end
|
9
|
+
|
10
|
+
Untappd.apikey.should eq 'c01822f029486661bb3669a845b5ec14'
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
data/spec/user_spec.rb
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
2
|
+
|
3
|
+
describe "User" do
|
4
|
+
|
5
|
+
before(:all) do
|
6
|
+
Untappd.configure do |config|
|
7
|
+
config.apikey = '6666666666666666666666'
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
before(:each) do
|
12
|
+
@response = {:results =>[]}
|
13
|
+
@response.stub(:code => 200)
|
14
|
+
Untappd::User.stub(:get => @response)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should get info" do
|
18
|
+
@response[:results] = {:user => {
|
19
|
+
:user_name => "cmar",
|
20
|
+
:first_name => "cmar"
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
info = Untappd::User.info("cmar")
|
25
|
+
info.user.user_name.should == "cmar"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should get badges" do
|
29
|
+
@response[:results] << {
|
30
|
+
:badge_name => "Newbie",
|
31
|
+
:checkin_id => "413105"
|
32
|
+
}
|
33
|
+
|
34
|
+
badges = Untappd::User.badges("cmar")
|
35
|
+
badges.first.badge_name.should == "Newbie"
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should get friends" do
|
39
|
+
@response[:results] << {
|
40
|
+
:user_name => "pks1850",
|
41
|
+
:user_id => "10819"
|
42
|
+
}
|
43
|
+
|
44
|
+
friends = Untappd::User.friends("cmar")
|
45
|
+
friends.first.user_name.should == "pks1850"
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should get the wish list" do
|
49
|
+
@response[:results] << {
|
50
|
+
:user => {:user_name => "cmar"},
|
51
|
+
:beer_name => "Aprihop",
|
52
|
+
:beer_id => "4665"
|
53
|
+
}
|
54
|
+
|
55
|
+
wish_list = Untappd::User.wish_list("cmar")
|
56
|
+
wish_list.first.beer_name.should == "Aprihop"
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should get distinct beers" do
|
60
|
+
@response[:results] << {
|
61
|
+
:user => {:user_name => "cmar"},
|
62
|
+
:beer_name => "Aprihop",
|
63
|
+
:beer_id => "4665"
|
64
|
+
}
|
65
|
+
|
66
|
+
distinct_beers = Untappd::User.distinct("cmar")
|
67
|
+
distinct_beers.first.beer_name.should == "Aprihop"
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should get feed" do
|
71
|
+
@response[:results] << {
|
72
|
+
:user => {:user_name => "cmar"},
|
73
|
+
:beer_name => "Aprihop",
|
74
|
+
:checkin_id => "551239"
|
75
|
+
}
|
76
|
+
|
77
|
+
feed = Untappd::User.feed("cmar")
|
78
|
+
feed.first.beer_name.should == "Aprihop"
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
#User feed JSON
|
84
|
+
#{"http_code":200,"returned_results":2,"next_query":"http:\/\/api.untappd.com\/v3\/user_feed?user=cmar&since=551239","next_page":"http:\/\/api.untappd.com\/v3\/user_feed?user=cmar&offset=25","results":[{"user":{"user_name":"cmar","first_name":"cmar","last_name":"","user_avatar":"http:\/\/gravatar.com\/avatar.php?gravatar_id=cf989ae1f7ddd979f38b00ec033a0e7d&rating=X&size=80&default=https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/default_avatar.jpg","location":"Leesburg, VA","bio":"","is_friends":null,"url":""},"checkin_id":"551239","beer_id":"4665","brewery_id":"459","beer_name":"Aprihop","brewery_name":"Dogfish Head Craft Brewery","created_at":"Wed, 30 Mar 2011 20:03:03 +0000","check_in_comment":"Love this beer. Similar to Magic Hat #9","checkin_link":"http:\/\/untappd.com\/user\/cmar\/checkin\/551239","beer_stamp":"https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/temp\/badge-beer-default.png","venue_name":null,"venue_id":null,"venue_lat":null,"venue_lng":null},
|
85
|
+
|
86
|
+
#User distinct JSON
|
87
|
+
#{"http_code":200,"returned_results":2,"next_page":"http:\/\/api.untappd.com\/v3\/user_distinct\/cmar?offset=25","results":[{"user":{"user_name":"cmar","first_name":"cmar","last_name":"","user_avatar":"http:\/\/gravatar.com\/avatar.php?gravatar_id=cf989ae1f7ddd979f38b00ec033a0e7d&rating=X&size=80&default=https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/default_avatar.jpg","location":"Leesburg, VA","bio":"","is_friends":null,"url":""},"beer_id":"4665","brewery_id":"459","checkin_id":"551239","beer_name":"Aprihop","brewery_name":"Dogfish Head Craft Brewery","created_at":"Wed, 30 Mar 2011 20:03:03 +0000","checkin_link":"http:\/\/untappd.com\/user\/cmar\/checkin\/551239","beer_stamp":"https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/temp\/badge-beer-default.png"},
|
88
|
+
|
89
|
+
#User wishlist JSON
|
90
|
+
#{"http_code":200,"returned_results":2,"results":[{"user":{"user_name":"cmar","first_name":"cmar","last_name":"","user_avatar":"http:\/\/gravatar.com\/avatar.php?gravatar_id=cf989ae1f7ddd979f38b00ec033a0e7d&rating=X&size=80&default=https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/default_avatar.jpg","location":"Leesburg, VA","bio":"","is_friends":null,"url":""},"beer_name":"Aprihop","beer_id":"4665","brewery_id":"459","brewery_name":"Dogfish Head Craft Brewery","created_at":"Wed, 30 Mar 2011 20:03:27 +0000","beer_stamp":"https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/temp\/badge-beer-default.png"},
|
91
|
+
|
92
|
+
#User friends JSON
|
93
|
+
#{"http_code":200,"returned_results":1,"next_page":"http:\/\/api.untappd.com\/v3\/friends\/cmar?offset=25","results":[{"user_id":"10819","user_name":"pks1850","first_name":"sam","last_name":"","user_avatar":"http:\/\/gravatar.com\/avatar.php?gravatar_id=414bd46a3e2ccdb0620d80a30c088ac2&rating=X&size=80&default=https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/default_avatar.jpg","location":"","bio":"","is_friends":null,"is_requested":null,"url":"http:\/\/WWW.TEST.COM","date_joined":"Thu, 23 Dec 2010 16:58:12 +0000","is_private":"0"}]}
|
94
|
+
|
95
|
+
#User Badges JSON
|
96
|
+
#{"http_code":200,"returned_results":1,"results":[{"badge_name":"Newbie","checkin_id":"413105","badge_description":"So, you're new around here? Congrats on your first brew! This ones for you.","badge_image_sm":"https:\/\/untappd.s3.amazonaws.com\/assets\/badges\/bdg_newbie_sm.png","badge_image_md":"https:\/\/untappd.s3.amazonaws.com\/assets\/badges\/bdg_newbie_md.png","badge_image_lg":"https:\/\/untappd.s3.amazonaws.com\/assets\/badges\/bdg_newbie_lg.png","badge_category":"Beer Badges","badge_earned_date":"Mon, 07 Mar 2011 01:45:07 +0000","badge_link":"http:\/\/untappd.com\/user\/cmar\/badge\/58708"}]}
|
97
|
+
|
98
|
+
|
99
|
+
#User Info JSON
|
100
|
+
#{"http_code":200,"results":{"user":{"user_name":"cmar","first_name":"cmar","last_name":"","user_avatar":"http:\/\/gravatar.com\/avatar.php?gravatar_id=cf989ae1f7ddd979f38b00ec033a0e7d&rating=X&size=80&default=https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/default_avatar.jpg","location":"Leesburg, VA","bio":"","is_friends":null,"url":"","date_joined":"Thu, 23 Dec 2010 17:22:26 +0000","is_private":"0","total_badges":"1","total_friends":"1","total_checkins":"2","total_beers":"2","total_created_beers":"0","social_accounts":{"facebook":true,"twitter":true,"foursquare":true}}}}
|
data/untappd.gemspec
CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.add_dependency('httparty', '>= 0.7.3')
|
18
18
|
s.add_dependency('hashie', '>= 1.0.0')
|
19
19
|
|
20
|
-
s.add_development_dependency('rspec')
|
20
|
+
s.add_development_dependency('rspec', '>= 2.5.1')
|
21
21
|
|
22
22
|
s.files = `git ls-files`.split("\n")
|
23
23
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: untappd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- cmar
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-04-
|
18
|
+
date: 2011-04-11 00:00:00 -04:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -58,10 +58,12 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
hash:
|
61
|
+
hash: 25
|
62
62
|
segments:
|
63
|
-
-
|
64
|
-
|
63
|
+
- 2
|
64
|
+
- 5
|
65
|
+
- 1
|
66
|
+
version: 2.5.1
|
65
67
|
type: :development
|
66
68
|
version_requirements: *id003
|
67
69
|
description: wrapper around the untappd.com API
|
@@ -80,11 +82,16 @@ files:
|
|
80
82
|
- README.rdoc
|
81
83
|
- Rakefile
|
82
84
|
- examples/aba_checkins.rb
|
85
|
+
- examples/user_feed.rb
|
83
86
|
- lib/untappd.rb
|
84
87
|
- lib/untappd/base.rb
|
85
88
|
- lib/untappd/beer.rb
|
89
|
+
- lib/untappd/user.rb
|
86
90
|
- lib/untappd/version.rb
|
87
|
-
- spec/
|
91
|
+
- spec/beer_spec.rb
|
92
|
+
- spec/spec_helper.rb
|
93
|
+
- spec/untappd_spec.rb
|
94
|
+
- spec/user_spec.rb
|
88
95
|
- untappd.gemspec
|
89
96
|
has_rdoc: true
|
90
97
|
homepage: http://cmar.me
|
@@ -121,4 +128,7 @@ signing_key:
|
|
121
128
|
specification_version: 3
|
122
129
|
summary: Wrapper around the untappd.com API
|
123
130
|
test_files:
|
124
|
-
- spec/
|
131
|
+
- spec/beer_spec.rb
|
132
|
+
- spec/spec_helper.rb
|
133
|
+
- spec/untappd_spec.rb
|
134
|
+
- spec/user_spec.rb
|