Skip to content

Commit

Permalink
Add Random Beer resource
Browse files Browse the repository at this point in the history
Closes #31
  • Loading branch information
stevenharman committed Apr 7, 2014
1 parent d29c24a commit 6c74d9e
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 2 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog

## 0.2.4 (2014-04-07)

* Add support for `beer/random` endpoint. ([Steven Harman][stevenharman])

## 0.2.3 (2014-02-21)

* Add support for `search/upc` endpoint. ([Matt Griffin][betamatt])
Expand Down
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -73,6 +73,7 @@ Once an API key has been set, resources can be called on the client instance.
```ruby
brewery_db.beers.all(abv: '5.5')
brewery_db.beers.find('vYlBZQ')
brewery_db.beers.random

brewery_db.breweries.all(established: 2006)
brewery_db.breweries.find('d1zSa7')
Expand Down
1 change: 1 addition & 0 deletions brewery_db.gemspec
Expand Up @@ -17,6 +17,7 @@ Gem::Specification.new do |gem|
gem.add_development_dependency 'pry'
gem.add_development_dependency 'rspec', '~> 2.14'
gem.add_development_dependency 'vcr', '~> 2.0'
gem.add_development_dependency 'rake', '~> 10.2'

gem.files = `git ls-files`.split($\)
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
Expand Down
4 changes: 4 additions & 0 deletions lib/brewery_db/resources/beers.rb
Expand Up @@ -8,6 +8,10 @@ def all(params={})
def find(id, params={})
get('beer/%s' % id, params).data
end

def random(params={})
find('random', params)
end
end
end
end
15 changes: 13 additions & 2 deletions spec/brewery_db/resources/beers_spec.rb
Expand Up @@ -3,19 +3,30 @@
require 'spec_helper'

describe BreweryDB::Resources::Beers, :resource do
subject(:beers_resource) { described_class.new(config) }

context '#all', :vcr do
let(:response) { described_class.new(config).all(abv: '5.5') }
let(:response) { beers_resource.all(abv: '5.5') }

it 'fetches all of the beers at once' do
expect(response.count).to eq(985)
end
end

context '#find', :vcr do
let(:response) { described_class.new(config).find('99Uj1n') }
let(:response) { beers_resource.find('99Uj1n') }

it 'fetches only the beer asked for' do
expect(response.id).to eq('99Uj1n')
end
end

context '#random', :vcr do
let(:response) { beers_resource.random(hasLabels: 'Y') }

it 'fetches a random beer' do
expect(response.status).to eq('verified')
expect(response.labels.size).to eq(3)
end
end
end

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 6c74d9e

Please sign in to comment.