untappd-api 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/MIT-LICENSE +20 -0
- data/README.rdoc +5 -6
- data/lib/untappd-api.rb +58 -12
- data/lib/untappd-api/version.rb +1 -1
- data/spec/untappd-api_spec.rb +1 -99
- data/untappd-api.gemspec +0 -3
- metadata +4 -18
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Jeff Smith
|
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
CHANGED
@@ -4,13 +4,12 @@ A simple Ruby wrapper for accessing the Untappd API.
|
|
4
4
|
For more information, see http://untappd.com/api/dashboard.
|
5
5
|
|
6
6
|
== Usage
|
7
|
-
Each method returns a
|
7
|
+
Each method returns a Hash representing the response.
|
8
8
|
|
9
9
|
=== Example:
|
10
10
|
require 'untappd-api'
|
11
11
|
|
12
|
-
client = Untappd::Base.new(
|
13
|
-
client.
|
14
|
-
beer
|
15
|
-
beer
|
16
|
-
beer.brewery #=> "Bell's Brewery, Inc."
|
12
|
+
client = Untappd::Base.new(API_KEY)
|
13
|
+
beer = client.beer_info(:bid => 17904)["results"]
|
14
|
+
beer["name"] # => "Third Coast Old Ale"
|
15
|
+
beer["brewery"] #=> "Bell's Brewery, Inc."
|
data/lib/untappd-api.rb
CHANGED
@@ -1,20 +1,29 @@
|
|
1
1
|
require 'httparty'
|
2
|
-
require 'hashie'
|
3
2
|
require 'digest/md5'
|
4
3
|
|
5
|
-
Hash.send :include, Hashie::HashExtensions
|
6
|
-
|
7
4
|
module Untappd
|
8
5
|
class Base
|
9
6
|
include HTTParty
|
10
|
-
BASE_URI = 'http://api.untappd.com/
|
7
|
+
BASE_URI = 'http://api.untappd.com/v3'
|
11
8
|
base_uri BASE_URI
|
12
9
|
|
13
|
-
def initialize(user, pass
|
14
|
-
@auth = {
|
10
|
+
def initialize(key, user = nil, pass = nil)
|
11
|
+
@auth = {}
|
12
|
+
if user && pass
|
13
|
+
@auth = { :username => user, :password => Digest::MD5.hexdigest(pass) }
|
14
|
+
end
|
15
15
|
@key = key
|
16
16
|
end
|
17
17
|
|
18
|
+
# Get the beer's feed
|
19
|
+
# Params:
|
20
|
+
# :bid => Your API Key provided when you are approved
|
21
|
+
# :since => The numeric ID of the last recent check-in. (Optional)
|
22
|
+
# :offset => The offset that you like the dataset to begin with. (Optional)
|
23
|
+
def beer_feed(params={})
|
24
|
+
get('beer_checkins', params)
|
25
|
+
end
|
26
|
+
|
18
27
|
# Get extended information about a beer.
|
19
28
|
# Params:
|
20
29
|
# :bid => The numeric beer ID of the beer you wish to look up.
|
@@ -29,11 +38,20 @@ module Untappd
|
|
29
38
|
get('beer_search', params)
|
30
39
|
end
|
31
40
|
|
41
|
+
# Get the brewery's feed
|
42
|
+
# Params:
|
43
|
+
# :brewery_id => Your API Key provided when you are approved
|
44
|
+
# :since => The numeric ID of the last recent check-in. (Optional)
|
45
|
+
# :offset => The offset that you like the dataset to begin with. (Optional)
|
46
|
+
def brewery_feed(params={})
|
47
|
+
get('brewery_checkins', params)
|
48
|
+
end
|
49
|
+
|
32
50
|
# Get extended details for a particular checkin,
|
33
51
|
# which includes location, comments and toasts.
|
34
52
|
# Params:
|
35
53
|
# :id => The numeric ID of the check-in.
|
36
|
-
def
|
54
|
+
def checkin_info(params={})
|
37
55
|
get('details', params)
|
38
56
|
end
|
39
57
|
|
@@ -55,12 +73,22 @@ module Untappd
|
|
55
73
|
get('thepub', params)
|
56
74
|
end
|
57
75
|
|
76
|
+
# Get currently trending beers.
|
77
|
+
# Params:
|
78
|
+
# :type => "all", "macro", "micro", "local". "all" set to default. (Optional)
|
79
|
+
# :limit => The number of records that will return (max 10). (Optional)
|
80
|
+
# :age => "daily", "weekly", "monthly". (Optional)
|
81
|
+
# :geolat => The numeric Latitude to filter the public feed. (Optional, required for type "local")
|
82
|
+
# :geolng => The numeric Longitude to filter the public feed. (Optional, required for type "local")
|
83
|
+
def trending(params={})
|
84
|
+
get('trending', params)
|
85
|
+
end
|
86
|
+
|
58
87
|
# Get the user information for a selected user.
|
59
88
|
# Params:
|
60
89
|
# :user => The username of the person who you wish to obtain the user information. (Optional)
|
61
|
-
def
|
62
|
-
|
63
|
-
result.user unless result.nil?
|
90
|
+
def user_info(params={})
|
91
|
+
get('user', params)
|
64
92
|
end
|
65
93
|
|
66
94
|
# Get a list of the user's badges.
|
@@ -104,17 +132,35 @@ module Untappd
|
|
104
132
|
get('wish_list', params)
|
105
133
|
end
|
106
134
|
|
135
|
+
# Get the venue's feed
|
136
|
+
# Params:
|
137
|
+
# :venue_id => Your API Key provided when you are approved
|
138
|
+
# :since => The numeric ID of the last recent check-in. (Optional)
|
139
|
+
# :offset => The offset that you like the dataset to begin with. (Optional)
|
140
|
+
def venue_feed(params={})
|
141
|
+
get('venue_checkins', params)
|
142
|
+
end
|
143
|
+
|
144
|
+
# Get extended information about a venue.
|
145
|
+
# Params:
|
146
|
+
# :venue_id => The numeric beer ID of the beer you wish to look up.
|
147
|
+
def venue_info(params={})
|
148
|
+
get('venue_info', params)
|
149
|
+
end
|
150
|
+
|
107
151
|
private
|
108
152
|
|
109
153
|
def get(method, params={})
|
110
154
|
path = "/#{method}?key=#{@key}"
|
111
155
|
params.each { |k,v| path += "&#{k.to_s}=#{v.to_s}" }
|
112
156
|
|
113
|
-
options = {
|
157
|
+
options = {}
|
158
|
+
options.merge({:basic_auth => @auth}) unless @auth.empty?
|
159
|
+
|
114
160
|
response = self.class.get(URI.escape(path), options)
|
115
161
|
raise_errors(response)
|
116
162
|
|
117
|
-
response.parsed_response
|
163
|
+
response.parsed_response
|
118
164
|
end
|
119
165
|
|
120
166
|
def raise_errors(response)
|
data/lib/untappd-api/version.rb
CHANGED
data/spec/untappd-api_spec.rb
CHANGED
@@ -1,103 +1,5 @@
|
|
1
1
|
require 'untappd-api'
|
2
2
|
|
3
3
|
describe Untappd::Base do
|
4
|
-
|
5
|
-
@user = "YOUR_USERNAME"
|
6
|
-
pass = "YOUR_PASSWORD"
|
7
|
-
key = "YOUR_KEY"
|
8
|
-
@client = Untappd::Base.new(@user, pass, key)
|
9
|
-
end
|
10
|
-
|
11
|
-
describe "beer_info method" do
|
12
|
-
it "should find the correct beer" do
|
13
|
-
beer_name = "Hocus Pocus"
|
14
|
-
@client.beer_info(:bid => 1).name.should == beer_name
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should raise Unauthorized exception with bad parameters" do
|
18
|
-
expect {
|
19
|
-
@client.beer_info
|
20
|
-
}.to raise_exception(Untappd::Unauthorized, /You must provide a beer id to continue/)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
describe "beer_search method" do
|
25
|
-
it "should return an Array of search results" do
|
26
|
-
@client.beer_search(:q => "Devil").size.should >= 0
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should raise Unavailable exception with bad parameters" do
|
30
|
-
expect {
|
31
|
-
@client.beer_search
|
32
|
-
}.to raise_exception(Untappd::Unavailable, /You have not passed anything to search/)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe "checkin_details method" do
|
37
|
-
it "should return the checkin details for given checkin id" do
|
38
|
-
pending("Checkin id is currently not exposed.")
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should raise Unauthorized exception with bad parameters" do
|
42
|
-
expect {
|
43
|
-
@client.checkin_details
|
44
|
-
}.to raise_exception(Untappd::Unauthorized, /You must provide a check-in ID to continue/)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
describe "friend_feed method" do
|
49
|
-
it "should return the authenticated user's friend feed" do
|
50
|
-
@client.friend_feed.size.should >= 0
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
describe "public_feed method" do
|
55
|
-
it "should return the public feed" do
|
56
|
-
@client.public_feed.size.should >= 0
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
describe "user method" do
|
61
|
-
it "should return the authenticated user if no user specified" do
|
62
|
-
@client.user.user_name.should == @user
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should return the specified user if user parameter is set" do
|
66
|
-
@client.user(:user => "gambrinus").user_name.should == "gambrinus"
|
67
|
-
end
|
68
|
-
|
69
|
-
it "should return nil if the specified user is not found" do
|
70
|
-
@client.user(:user => ".....").should be_nil
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
describe "user_badges method" do
|
75
|
-
it "should return the authenticated user's badges" do
|
76
|
-
@client.user_badges.size.should >= 0
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
describe "user_distinct_beers method" do
|
81
|
-
it "should return the authenticated user's distinct beers" do
|
82
|
-
@client.user_distinct_beers.size.should >= 0
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
describe "user_feed method" do
|
87
|
-
it "should return the authenticated user's feed" do
|
88
|
-
@client.user_feed.size.should >= 0
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
describe "user_friends method" do
|
93
|
-
it "should return the authenticated user's friends" do
|
94
|
-
@client.user_friends.size.should >= 0
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
describe "user_wish_list method" do
|
99
|
-
it "should return the authenticated user's wish list" do
|
100
|
-
@client.user_wish_list.size.should >= 0
|
101
|
-
end
|
102
|
-
end
|
4
|
+
pending "Add some tests..."
|
103
5
|
end
|
data/untappd-api.gemspec
CHANGED
@@ -25,15 +25,12 @@ Gem::Specification.new do |s|
|
|
25
25
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
26
26
|
s.add_development_dependency %q<rspec>, ['~> 2.0.0.beta.22']
|
27
27
|
s.add_dependency %q<httparty>, ['~> 0.7.4']
|
28
|
-
s.add_dependency %q<hashie>, ['~> 1.0.0']
|
29
28
|
else
|
30
29
|
s.add_dependency %q<rspec>, ['~> 2.0.0.beta.22']
|
31
30
|
s.add_dependency %q<httparty>, ['~> 0.7.4']
|
32
|
-
s.add_dependency %q<hashie>, ['~> 1.0.0']
|
33
31
|
end
|
34
32
|
else
|
35
33
|
s.add_dependency %q<rspec>, ['~> 2.0.0.beta.22']
|
36
34
|
s.add_dependency %q<httparty>, ['~> 0.7.4']
|
37
|
-
s.add_dependency %q<hashie>, ['~> 1.0.0']
|
38
35
|
end
|
39
36
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jeff Smith
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-02-
|
17
|
+
date: 2011-02-28 00:00:00 -05:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -49,21 +49,6 @@ dependencies:
|
|
49
49
|
version: 0.7.4
|
50
50
|
type: :runtime
|
51
51
|
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: hashie
|
54
|
-
prerelease: false
|
55
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
|
-
requirements:
|
58
|
-
- - ~>
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
segments:
|
61
|
-
- 1
|
62
|
-
- 0
|
63
|
-
- 0
|
64
|
-
version: 1.0.0
|
65
|
-
type: :runtime
|
66
|
-
version_requirements: *id003
|
67
52
|
description: Ruby wrapper for the untappd API.
|
68
53
|
email:
|
69
54
|
- jffreyjs@gmail.com
|
@@ -76,6 +61,7 @@ extra_rdoc_files: []
|
|
76
61
|
files:
|
77
62
|
- .gitignore
|
78
63
|
- Gemfile
|
64
|
+
- MIT-LICENSE
|
79
65
|
- README.rdoc
|
80
66
|
- Rakefile
|
81
67
|
- lib/untappd-api.rb
|