Tankard
Allows easy quering of the BreweryDB Api
About
I decided to make Tankard for a personal project and then figured why not put it on github as I am working on it. Tankard is very immature at the moment. I plan on adding support for all of the get routes to the BreweryDB Api. I've also been pretty interested in Jruby as of late and wanted to make Tankard thread safe.
Installation
gem install "tankard"
or add it to your gemfile
Documentation
Everytime a commit is pushed to github the documentation regenerates. You can find this at http://rubydoc.info/github/matthewshafer/tankard/frames
If you visit rubygems you can find the documentation for a specific gem release.
Usage
If you happen to be using Rails you can do the configuration in an initializer, something like:
require 'tankard'
Tankard.configure do |config|
config.api_key = "YOUR_API_KEY"
end
After being configured this is a sample of ways to use Tankard:
Beer
Tankard.beer.id("some_id").breweries.each { |x| p x}
beer = Tankard.beer.find(["first_id", "second_id"])
Alternatively you can send parameters to the request in two ways. Here are examples:
Tankard.beer(id: "some_id", endpoint: "breweries", anotherParam: "something").each { |x| p x }
Tankard.beer.id("some_id").breweries.params(anotherParam: "something").each { |x| p x }
Beers
This would return an array with all beers greater than 10% (to_a comes from enumerable in this case)
Tankard.beers.params(abv: "+10").to_a
Search
Here is how we could search for everything that matches "stone". We would get results that contain more than just beer (EX I would probably get a result for Stone Brewing)
Tankard.search.query("stone").each { |x| p x }
Style
This works similiar to Beer, it just has less options
Tankard.style.id("some_id").each { |x| p x }
Styles
Styles don't have any options so if I would like an array with all styles I can do something like
Tankard.styles.to_a
Contributing
Issues
Issues can be reported right here on the git repo. Everyone is encouraged to write an issue if they encounter a bug or have a feature request.
Pull Requests
I will be accepting pull requests once I get most of the endpoints implemented. Check back soon for more details.