untappd 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- untappd (0.0.2)
4
+ untappd (0.0.3)
5
5
  hashie (>= 1.0.0)
6
6
  httparty (>= 0.7.3)
7
7
 
@@ -26,5 +26,5 @@ PLATFORMS
26
26
  ruby
27
27
 
28
28
  DEPENDENCIES
29
- rspec
29
+ rspec (>= 2.5.0)
30
30
  untappd!
data/README.rdoc CHANGED
@@ -1,17 +1,56 @@
1
1
  == untappd API
2
2
 
3
- I have just started and would love help trying to cover all the end points.
4
-
5
- This is a simple wrapper around the untappd API packaged as a ruby gem.
3
+ Wrapper around the Untappd API. This organizes the untappd api
4
+ into proper RESTFUL objects. See API coverage below for mapping from
5
+ the API documentation.
6
6
 
7
7
  * You will need to register for an API key: http://untappd.com/api/register
8
8
  * Attempting to wrap all the API documented here: http://untappd.com/api/docs/v3
9
+ * All options can be passed into the calls
9
10
 
10
11
  == Releases
11
12
 
13
+ * 0.0.3 Venue Info & Feed, Trending Beer, Brewery Feed, Checkin info & Feed (the pub), Renamed Beer.checkins to Beer.feed
12
14
  * 0.0.2 User feed, distinct beers, info, badges, friends, wish list
13
15
  * 0.0.1 Beer Search, Info and Checkins
14
16
 
17
+ == API Coverage
18
+
19
+ Beer Object
20
+ * Beer Feed - Untappd::Beer.feed
21
+ * Beer Info - Untappd::Beer.info
22
+ * Beer Search - Untappd::Beer.search
23
+ * Trending - Untappd::Beer.trending
24
+
25
+ User Object
26
+ * User Feed - Untappd::User.feed
27
+ * User Info - Untappd::User.info
28
+ * User Badges - Untappd::User.badges
29
+ * User Friends - Untappd::User.friends
30
+ * User Wish List - Untappd::User.wish_list
31
+ * User Distinct Beers - Untappd::User.distinct
32
+
33
+ Venue Object
34
+ * Venue Feed - Untappd::Venue.feed
35
+ * Venue Info - Untappd::Venue.info
36
+
37
+ Brewery Object
38
+ * Brewery Checkins - Untappd::Brewery.feed
39
+
40
+ Checkin Object
41
+ * The Pub Feed - Untappd::Checkin.feed
42
+ * Checkin Info - Untappd::Checkin.info
43
+
44
+ TODO
45
+
46
+ * Friend Feed
47
+ * Checkin (Test)
48
+ * Checkin
49
+ * Add Comment
50
+ * Remove Comment
51
+ * Toast
52
+ * Remove Toast
53
+
15
54
  == Examples
16
55
  Configure your API KEY
17
56
 
@@ -48,34 +87,4 @@ All Methods can take additional options specified in the API
48
87
  You can dump any result to see what values are available with
49
88
 
50
89
  info = Untappd::Beer.info(18099)
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
90
+ puts info.inspect
data/lib/untappd/beer.rb CHANGED
@@ -1,7 +1,11 @@
1
1
  module Untappd
2
2
 
3
3
  class Beer < Base
4
- def self.checkins(beer_id, options={})
4
+
5
+ # since (optional) - The numeric ID of the last recent check-in. This provided to you in the next_query attribute.
6
+ # offset (optional) - The offset that you like the dataset to begin with.
7
+ # Each set returns 25 max records, so you can use that paginate the feed.
8
+ def self.feed(beer_id, options={})
5
9
  options.merge!({
6
10
  :key => Untappd::apikey,
7
11
  :bid => beer_id
@@ -10,6 +14,7 @@ module Untappd
10
14
  response_to_mash get("/beer_checkins", :query => options)
11
15
  end
12
16
 
17
+ #
13
18
  def self.info(beer_id, options={})
14
19
  options.merge!({
15
20
  :key => Untappd::apikey,
@@ -19,6 +24,11 @@ module Untappd
19
24
  response_to_mash get("/beer_info", :query => options)
20
25
  end
21
26
 
27
+ # offset (optional) - The offset that you like the dataset to
28
+ # begin with. Each set returns 25 max records, so you can use that paginate the results.
29
+ # sort (optional): "count" or "name" (default) - This can let you choose if you
30
+ # want the results to be returned in Alphabetical order (name) or by
31
+ # checkin count (count). By default the search returns all values in Alphabetical order.
22
32
  def self.search(q, options={})
23
33
  options.merge!({
24
34
  :key => Untappd::apikey,
@@ -27,6 +37,20 @@ module Untappd
27
37
 
28
38
  response_to_mash get("/beer_search", :query => options)
29
39
  end
40
+
41
+ # type (optional) - 4 options: "all", "macro", "micro", "local". "All" is set to default.
42
+ # limit (optional) - The number of records that you will return (max 10)
43
+ # age (optional) - 3 options: "daily", "weekly", "monthly".
44
+ # geolat (optional) - The numeric Latitude to filter the public feed. This is required for local "type".
45
+ # geolng (optional) - The numeric Longitude to filter the public feed. This is required for local "type".
46
+ def self.trending(options={})
47
+ options.merge!({
48
+ :key => Untappd::apikey
49
+ })
50
+
51
+ response_to_mash get("/trending", :query => options)
52
+ end
53
+
30
54
  end
31
55
 
32
56
  end
@@ -0,0 +1,21 @@
1
+ module Untappd
2
+
3
+ class Brewery < Base
4
+
5
+ # since (optional) - The numeric ID of the last recent check-in.
6
+ # offset (optional) - The offset that you like the dataset to begin with.
7
+ # Each set returns 25 max records, so you can use that paginate the feed.
8
+ def self.feed(brewery_id, options={})
9
+ options.merge!({
10
+ :key => Untappd::apikey,
11
+ :brewery_id => brewery_id
12
+ })
13
+
14
+ response_to_mash get("/brewery_checkins", :query => options)
15
+ end
16
+
17
+ end
18
+
19
+ end
20
+
21
+
@@ -0,0 +1,31 @@
1
+ module Untappd
2
+
3
+ class Checkin < Base
4
+
5
+ def self.info(checkin_id, options={})
6
+ options.merge!({
7
+ :key => Untappd::apikey,
8
+ :id => checkin_id
9
+ })
10
+
11
+ response_to_mash get("/details", :query => options)
12
+ end
13
+
14
+ # since (optional) - The numeric ID of the last recent check-in. This provided to you in the next_query attribute.
15
+ # geolat (optional) - The numeric Latitude to filter the public feed.
16
+ # geolng (optional) - The numeric Longitude to filter the public feed.
17
+ # offset (optional) - The offset that you like the dataset to begin with.
18
+ # Each set returns 25 max records, so you can use that paginate the feed.
19
+ def self.feed(options={})
20
+ options.merge!({
21
+ :key => Untappd::apikey
22
+ })
23
+
24
+ response_to_mash get("/thepub", :query => options)
25
+ end
26
+
27
+ end
28
+
29
+ end
30
+
31
+
data/lib/untappd/user.rb CHANGED
@@ -47,6 +47,9 @@ module Untappd
47
47
  response_to_mash get("/distinct", :query => options)
48
48
  end
49
49
 
50
+ # since (optional) - The numeric ID of the last recent check-in.
51
+ # offset (optional) - The offset that you like the dataset to begin with.
52
+ # Each set returns 25 max records, so you can use that paginate the feed.
50
53
  def self.feed(user, options={})
51
54
  options.merge!({
52
55
  :key => Untappd::apikey,
@@ -0,0 +1,29 @@
1
+ module Untappd
2
+
3
+ class Venue < Base
4
+
5
+ # since (optional) - The numeric ID of the last recent check-in.
6
+ # offset (optional) - The offset that you like the dataset to begin with.
7
+ # Each set returns 25 max records, so you can use that paginate the feed.
8
+ def self.feed(venue_id, options={})
9
+ options.merge!({
10
+ :key => Untappd::apikey,
11
+ :venue_id => venue_id
12
+ })
13
+
14
+ response_to_mash get("/venue_checkins", :query => options)
15
+ end
16
+
17
+ #
18
+ def self.info(venue_id, options={})
19
+ options.merge!({
20
+ :key => Untappd::apikey,
21
+ :venue_id => venue_id
22
+ })
23
+
24
+ response_to_mash get("/venue_info", :query => options)
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -1,3 +1,3 @@
1
1
  module Untappd
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/untappd.rb CHANGED
@@ -3,6 +3,9 @@ require 'rubygems'
3
3
  require "untappd/base"
4
4
  require "untappd/beer"
5
5
  require "untappd/user"
6
+ require "untappd/venue"
7
+ require "untappd/brewery"
8
+ require "untappd/checkin"
6
9
 
7
10
  module Untappd
8
11
  @apikey = nil
data/spec/beer_spec.rb CHANGED
@@ -14,13 +14,13 @@ describe "Beer" do
14
14
  Untappd::Beer.stub(:get => @response)
15
15
  end
16
16
 
17
- it "should get checkins" do
17
+ it "should get feed" do
18
18
  @response[:results] << {:checkin_id => "610208",
19
19
  :beer_id => "18099",
20
20
  :beer_name => "Arrogant Bastard Ale",
21
21
  :brewery_name => "Stone Brewing Co."}
22
22
 
23
- checkins = Untappd::Beer.checkins(18099)
23
+ checkins = Untappd::Beer.feed(18099)
24
24
  checkins.first.beer_name.should == "Arrogant Bastard Ale"
25
25
  end
26
26
 
@@ -43,8 +43,20 @@ describe "Beer" do
43
43
  search.first.beer_name.should == "Arrogant Bastard Ale"
44
44
  end
45
45
 
46
+ it "gets the trending beers" do
47
+ @response[:results] << {:beer_id => "18099",
48
+ :beer_name => "Arrogant Bastard Ale",
49
+ :brewery_name => "Stone Brewing Co."}
50
+
51
+ trending = Untappd::Beer.trending()
52
+ trending.first.beer_name.should == "Arrogant Bastard Ale"
53
+ end
54
+
46
55
  end
47
56
 
57
+ #beer trending JSON
58
+ # {"http_code":200,"results":[{"beer_name":"Samuel Adams Noble Pils","beer_id":"5743","brewery_id":"157","count":"66","brewery_name":"Boston Beer Company","img":"https:\/\/untappd.s3.amazonaws.com\/site\/beer_logos\/beer-saNobilePils.jpg"},{"beer_name":"Bud Light","beer_id":"3784","brewery_id":"44","count":"55","brewery_name":"Anheuser-Busch","img":"https:\/\/untappd.s3.amazonaws.com\/site\/beer_logos\/beer-budLight.jpg"},{"beer_name":"Miller Lite","beer_id":"3811","brewery_id":"863","count":"55","brewery_name":"Miller Brewing Company","img":"https:\/\/untappd.s3.amazonaws.com\/site\/beer_logos\/beer-millerLite.jpg"},
59
+
48
60
  #beer checkin JSON
49
61
  #{"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
62
 
@@ -0,0 +1,32 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe "Brewery" 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::Brewery.stub(:get => @response)
15
+ end
16
+
17
+ it "gets the feed" do
18
+ @response[:results] << { :user => {:user_name => "cmar"},
19
+ :checkin_id => "610233",
20
+ :beer_id => "18099",
21
+ :beer_name => "Arrogant Bastard Ale",
22
+ :brewery_name => "Stone Brewing Co."}
23
+
24
+ feed = Untappd::Brewery.feed(18099)
25
+ feed.first.beer_name.should == "Arrogant Bastard Ale"
26
+ end
27
+
28
+ end
29
+
30
+
31
+ #Brewery feed JSON
32
+ #{"next_query":"http:\/\/api.untappd.com\/v3\/brewery_checkins?brewery_id=1000&since=125187","next_page":"http:\/\/api.untappd.com\/v3\/brewery_checkins?brewery_id=1000&offset=25","http_code":200,"results":[{"user":{"user_name":"miamichael2","first_name":"Michael","last_name":"","user_avatar":"https:\/\/untappd.s3.amazonaws.com\/profile\/d05bf16dede98638c3521b157d12356d_thumb.JPG","location":"Miami","bio":"","is_friends":null,"url":null},"checkin_id":"617763","beer_id":"4948","brewery_id":"1000","beer_name":"Mamma Mia! Pizza Beer","brewery_name":"Pizza Beer","created_at":"Sat, 09 Apr 2011 03:34:32 +0000","check_in_comment":"A for effort and it really does smell and taste like pizza, but this is absolutely disgusting. http:\/\/flic.kr\/p\/9x1eC2","checkin_link":"http:\/\/untappd.com\/user\/miamichael2\/checkin\/617763","beer_stamp":"https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/temp\/badge-beer-default.png","venue_name":"Midtown 2","venue_id":"38754","venue_lat":"25.8094","venue_lng":"-80.1915"},
@@ -0,0 +1,41 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe "Checkin" 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::Checkin.stub(:get => @response)
15
+ end
16
+
17
+ it "gets info" do
18
+ @response[:results] = { :user => {:user_name => "cmar"},
19
+ :checkin_id => "610233",
20
+ :beer_id => "18099",
21
+ :beer_name => "Arrogant Bastard Ale",
22
+ :brewery_name => "Stone Brewing Co."}
23
+
24
+ checkin = Untappd::Checkin.info(18099)
25
+ checkin.beer_name.should == "Arrogant Bastard Ale"
26
+ end
27
+
28
+ it "gets thepub feed" do
29
+ @response[:results] << {:checkin_id => "610208",
30
+ :beer_id => "18099",
31
+ :beer_name => "Arrogant Bastard Ale",
32
+ :brewery_name => "Stone Brewing Co."}
33
+
34
+ checkins = Untappd::Checkin.feed()
35
+ checkins.first.beer_name.should == "Arrogant Bastard Ale"
36
+ end
37
+ end
38
+
39
+
40
+ #Checkin info JSON
41
+ #{"http_code":200,"results":{"user":{"user_name":"miamichael2","first_name":"Michael","last_name":"","user_avatar":"https:\/\/untappd.s3.amazonaws.com\/profile\/d05bf16dede98638c3521b157d12356d_thumb.JPG","location":"Miami","bio":"","is_friends":null,"url":null},"beer_id":"4948","brewery_id":"1000","checkin_id":"617763","toast_count":"0","comments":[],"beer_name":"Mamma Mia! Pizza Beer","brewery_name":"Pizza Beer","created_at":"Sat, 09 Apr 2011 03:34:32 +0000","check_in_comment":"A for effort and it really does smell and taste like pizza, but this is absolutely disgusting. http:\/\/flic.kr\/p\/9x1eC2","checkin_link":"http:\/\/untappd.com\/user\/miamichael2\/checkin\/617763","beer_stamp":"https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/temp\/badge-beer-default.png","venue_name":"Midtown 2","venue_id":"38754","venue_lat":"25.8094","venue_lng":"-80.1915"}}
@@ -0,0 +1,43 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe "Venue" 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::Venue.stub(:get => @response)
15
+ end
16
+
17
+ it "gets the feed" do
18
+ @response[:results] << { :user => {:user_name => "cmar"},
19
+ :checkin_id => "610233",
20
+ :beer_id => "18099",
21
+ :beer_name => "Arrogant Bastard Ale",
22
+ :brewery_name => "Stone Brewing Co."}
23
+
24
+ feed = Untappd::Venue.feed(18099)
25
+ feed.first.beer_name.should == "Arrogant Bastard Ale"
26
+ end
27
+
28
+ it "gets info" do
29
+ @response[:results] = { :name => "Terminal 5",
30
+ :foursquare_id => "4ad6bf91f964a520380821e3"
31
+ }
32
+
33
+ info = Untappd::Venue.info(18099)
34
+ info.name.should == "Terminal 5"
35
+ end
36
+
37
+ end
38
+
39
+ #Venue info JSON
40
+ # "http_code":200,"results":{"name":"Terminal 5","internal_venue_id":"29296","foursquare_id":"4ad6bf91f964a520380821e3","legacy_foursquare_id":"0","img":"https:\/\/foursquare.com\/img\/categories\/travel\/airport_terminal.png","total_count":"3","unique_count":"2","monthly_count":"2","weekly_count":"0","geolat":"51.4718","geolng":"-0.489278","primary_category":"Travel Spots","address":"LHR Airport","city":"Hounslow","state":"Middlesex","foursquare_link":"http:\/\/4sq.com\/8Nxc2S"}}
41
+
42
+ #Venue feed JSON
43
+ #{"next_query":"http:\/\/api.untappd.com\/v3\/venue_checkins?venue_id=29296&since=433447","next_page":"http:\/\/api.untappd.com\/v3\/venue_checkins?venue_id=29296&offset=25","http_code":200,"results":[{"user":{"user_name":"Netclectic","first_name":"Ade","last_name":"","user_avatar":"http:\/\/gravatar.com\/avatar.php?gravatar_id=bc1736a7204955210453d2dbd441a0f9&amp;rating=X&amp;size=80&amp;default=https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/default_avatar.jpg","location":"Glasgow, Scotland","bio":"I like beer, it makes me a jolly good fellow...","is_friends":null,"url":"http:\/\/www.netclectic.com"},"checkin_id":"640369","beer_id":"6422","brewery_id":"302","beer_name":"Hoegaarden Original White Ale","brewery_name":"Brouwerij van Hoegaarden (InBev)","created_at":"Tue, 12 Apr 2011 11:25:39 +0000","check_in_comment":"So refreshing it would be rude not to have another one","checkin_link":"http:\/\/untappd.com\/user\/Netclectic\/checkin\/640369","beer_stamp":"https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/temp\/badge-beer-default.png","venue_name":"Terminal 5","venue_id":"29296","venue_lat":"51.4718","venue_lng":"-0.489278"},{"user":{"user_name":"Netclectic","first_name":"Ade","last_name":"","user_avatar":"http:\/\/gravatar.com\/avatar.php?gravatar_id=bc1736a7204955210453d2dbd441a0f9&amp;rating=X&amp;size=80&amp;default=https:\/\/untappd.s3.amazonaws.com\/site\/assets\/images\/default_avatar.jpg","location":"Glasgow, Scotland","bio":"I like beer, it makes me a jolly good fellow...","is_friends":null,"url":"http:\/\/www.netclectic.com"},
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', '>= 2.5.1')
20
+ s.add_development_dependency('rspec', '>= 2.5.0')
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: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
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-11 00:00:00 -04:00
18
+ date: 2011-04-12 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -58,12 +58,12 @@ dependencies:
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- hash: 25
61
+ hash: 27
62
62
  segments:
63
63
  - 2
64
64
  - 5
65
- - 1
66
- version: 2.5.1
65
+ - 0
66
+ version: 2.5.0
67
67
  type: :development
68
68
  version_requirements: *id003
69
69
  description: wrapper around the untappd.com API
@@ -86,12 +86,18 @@ files:
86
86
  - lib/untappd.rb
87
87
  - lib/untappd/base.rb
88
88
  - lib/untappd/beer.rb
89
+ - lib/untappd/brewery.rb
90
+ - lib/untappd/checkin.rb
89
91
  - lib/untappd/user.rb
92
+ - lib/untappd/venue.rb
90
93
  - lib/untappd/version.rb
91
94
  - spec/beer_spec.rb
95
+ - spec/brewery_spec.rb
96
+ - spec/checkin_spec.rb
92
97
  - spec/spec_helper.rb
93
98
  - spec/untappd_spec.rb
94
99
  - spec/user_spec.rb
100
+ - spec/venue_spec.rb
95
101
  - untappd.gemspec
96
102
  has_rdoc: true
97
103
  homepage: http://cmar.me
@@ -129,6 +135,9 @@ specification_version: 3
129
135
  summary: Wrapper around the untappd.com API
130
136
  test_files:
131
137
  - spec/beer_spec.rb
138
+ - spec/brewery_spec.rb
139
+ - spec/checkin_spec.rb
132
140
  - spec/spec_helper.rb
133
141
  - spec/untappd_spec.rb
134
142
  - spec/user_spec.rb
143
+ - spec/venue_spec.rb