brewery_db 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -2
- data/CHANGELOG.md +13 -6
- data/README.md +35 -19
- data/examples/kaminari.rb +13 -0
- data/examples/will_paginate.rb +12 -0
- data/lib/brewery_db.rb +1 -0
- data/lib/brewery_db/collection.rb +4 -21
- data/lib/brewery_db/config.rb +1 -0
- data/lib/brewery_db/mash.rb +2 -2
- data/lib/brewery_db/middleware/error_handler.rb +2 -2
- data/lib/brewery_db/paginated_collection.rb +34 -0
- data/lib/brewery_db/request.rb +2 -2
- data/lib/brewery_db/resource.rb +3 -2
- data/lib/brewery_db/resources/beers.rb +1 -1
- data/lib/brewery_db/resources/breweries.rb +1 -1
- data/lib/brewery_db/resources/brewery.rb +1 -1
- data/lib/brewery_db/resources/categories.rb +1 -1
- data/lib/brewery_db/resources/fermentables.rb +1 -1
- data/lib/brewery_db/resources/fluid_size.rb +1 -1
- data/lib/brewery_db/resources/glassware.rb +1 -1
- data/lib/brewery_db/resources/hops.rb +1 -1
- data/lib/brewery_db/resources/locations.rb +1 -1
- data/lib/brewery_db/resources/menu.rb +3 -3
- data/lib/brewery_db/resources/search.rb +5 -1
- data/lib/brewery_db/resources/styles.rb +1 -1
- data/lib/brewery_db/resources/yeasts.rb +1 -1
- data/lib/brewery_db/response.rb +4 -0
- data/lib/brewery_db/version.rb +1 -1
- data/lib/brewery_db/web_hook.rb +2 -1
- data/spec/brewery_db/resource_spec.rb +1 -1
- data/spec/brewery_db/resources/brewery_spec.rb +1 -1
- data/spec/brewery_db/resources/search_spec.rb +12 -0
- data/spec/fixtures/BreweryDB_Resources_Search/_upc/for_an_existing_upc_code/returns_a_collection_with_the_matched_beer.yml +66 -0
- metadata +8 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c41d08cf80ce37ceecbd402e664ea0822d2fe19a
|
4
|
+
data.tar.gz: fd57ff883a8ad9ffb8cc2f51847bd6e5fc155c88
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 507531603d79ced7a95b1f15dc1a8f6ce6423b3d975b71aae978151558171d3bc7a76b9ebdb66985476206f4ed893dbd82832ccb660cead06c9132ea84b9814a
|
7
|
+
data.tar.gz: 973b7b4c6fa87af1596b5a0601d34c94a15cef7d62cb8da7737168b042b7abdd551fbe0ba0ba47dc97a894a59585772411951ca7a10388f6eafda0afa5784865
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
##
|
3
|
+
## 0.2.3 (2014-02-21)
|
4
|
+
|
5
|
+
* Add support for `search/upc` endpoint. ([Matt Griffin][betamatt])
|
6
|
+
* Add support for request logging. ([Matt Griffin][betamatt])
|
4
7
|
|
5
8
|
## 0.2.2 (2013-08-05)
|
6
9
|
|
7
10
|
* Add support for `fluidsizes`, `fluidsize/:id`, and `menu/beer-availability`
|
8
11
|
endpoints. ([Steven Harman][stevenharman])
|
9
|
-
* Fix: Paginate `Hops`, `Fermentables`, and `Yeasts`
|
10
|
-
Harman][stevenharman])
|
12
|
+
* Fix: Paginate `Hops`, `Fermentables`, and `Yeasts`
|
13
|
+
([Steven Harman][stevenharman])
|
11
14
|
|
12
15
|
## 0.2.1 (2013-08-02)
|
13
16
|
|
@@ -16,14 +19,17 @@
|
|
16
19
|
|
17
20
|
## 0.2.0 (2013-06-26)
|
18
21
|
|
19
|
-
* Add support for `locations` and `location/:id` endpoints
|
20
|
-
|
22
|
+
* Add support for `locations` and `location/:id` endpoints
|
23
|
+
([dbc-apprentice][dbc-apprentice])
|
24
|
+
* Add support for `subAttributeId` webhook parameter
|
25
|
+
([Steven Harman][stevenharman])
|
21
26
|
|
22
27
|
## 0.1.0 (2013-05-14)
|
23
28
|
|
24
29
|
* Add support for handling webhook parameters ([Steven Harman][stevenharman])
|
25
30
|
* Raise exceptions on unsuccessful responses ([Tyler Hunt][tylerhunt])
|
26
|
-
* Return the data directly on successful responses
|
31
|
+
* Return the data directly on successful responses
|
32
|
+
([Steven Harman][stevenharman])
|
27
33
|
* Add support for `brewery/:id/beers` endpoint ([Steven Harman][stevenharman])
|
28
34
|
* Require `faraday_middleware` ~> 0.8 ([Steven Harman][stevenharman])
|
29
35
|
|
@@ -32,6 +38,7 @@
|
|
32
38
|
* Initial release ([Tyler Hunt][tylerhunt])
|
33
39
|
|
34
40
|
[dbc-apprentice]: https://github.com/dbc-apprentice
|
41
|
+
[betamatt]: http://github.com/betamatt
|
35
42
|
[jtadeulopes]: https://github.com/jtadeulopes
|
36
43
|
[stevenharman]: http://github.com/stevenharman
|
37
44
|
[tylerhunt]: http://github.com/tylerhunt
|
data/README.md
CHANGED
@@ -21,11 +21,12 @@ Tested and known to work with the following Rubies:
|
|
21
21
|
[jruby]: http://jruby.org/
|
22
22
|
[rubinius]: http://rubini.us/
|
23
23
|
|
24
|
+
|
24
25
|
## Installation
|
25
26
|
|
26
|
-
Add this line to your application
|
27
|
+
Add this line to your application’s `Gemfile`:
|
27
28
|
|
28
|
-
```
|
29
|
+
```ruby
|
29
30
|
gem 'brewery_db'
|
30
31
|
```
|
31
32
|
|
@@ -40,25 +41,36 @@ Or install it yourself as:
|
|
40
41
|
|
41
42
|
## Configuration
|
42
43
|
|
43
|
-
You must have a valid API key to use the BreweryDB API. If you don
|
44
|
+
You must have a valid API key to use the BreweryDB API. If you don’t yet have
|
44
45
|
one, you may [request one here][api-key].
|
45
46
|
|
46
47
|
[api-key]: http://www.brewerydb.com/developers
|
47
48
|
|
48
49
|
You can use the following method to configure your API key:
|
49
50
|
|
50
|
-
```
|
51
|
+
```ruby
|
51
52
|
brewery_db = BreweryDB::Client.new do |config|
|
52
53
|
config.api_key = API_KEY
|
53
54
|
end
|
54
55
|
```
|
55
56
|
|
57
|
+
### Logging
|
58
|
+
|
59
|
+
Optionally, you can configure `BreweryDB` to use a logger for to help with
|
60
|
+
request debugging.
|
61
|
+
|
62
|
+
```ruby
|
63
|
+
brewery_db = BreweryDB::Client.new do |config|
|
64
|
+
# ...
|
65
|
+
config.logger = Rails.logger
|
66
|
+
end
|
67
|
+
```
|
56
68
|
|
57
69
|
## Usage
|
58
70
|
|
59
71
|
Once an API key has been set, resources can be called on the client instance.
|
60
72
|
|
61
|
-
```
|
73
|
+
```ruby
|
62
74
|
brewery_db.beers.all(abv: '5.5')
|
63
75
|
brewery_db.beers.find('vYlBZQ')
|
64
76
|
|
@@ -87,6 +99,7 @@ brewery_db.search.beers(q: 'IPA')
|
|
87
99
|
brewery_db.search.breweries(q: 'IPA')
|
88
100
|
brewery_db.search.guilds(q: 'IPA')
|
89
101
|
brewery_db.search.events(q: 'IPA')
|
102
|
+
brewery_db.search.upc(code: '030613000043')
|
90
103
|
|
91
104
|
brewery_db.styles.all
|
92
105
|
brewery_db.styles.find(1)
|
@@ -97,14 +110,13 @@ brewery_db.yeasts.all
|
|
97
110
|
brewery_db.yeasts.find(1836)
|
98
111
|
|
99
112
|
brewery_db.menu.beer_availability
|
100
|
-
|
101
113
|
```
|
102
114
|
|
103
115
|
### WebHooks
|
104
116
|
|
105
|
-
The BreweryDB API also provides [
|
117
|
+
The BreweryDB API also provides [webhooks][], which can be used to:
|
106
118
|
|
107
|
-
> keep your local data stores in sync with the main BreweryDB API.
|
119
|
+
> keep your local data stores in sync with the main BreweryDB API. Instead of
|
108
120
|
> having to constantly query the API, webhooks will send you a message when
|
109
121
|
> something changes.
|
110
122
|
|
@@ -119,25 +131,21 @@ webhook = BreweryDB::WebHook.new(webhook_params_hash)
|
|
119
131
|
|
120
132
|
The `webhook_params_hash` should contain the `key`, `nonce`, `action`, etc.
|
121
133
|
sent as the payload of the webhook. A `BreweryDB::WebHook` object can validate
|
122
|
-
the posted data by
|
134
|
+
the posted data by SHA-1 hashing your API key with the `nonce` value and
|
123
135
|
comparing it to the `key` value (as per the [docs][webhooks]).
|
124
136
|
|
125
137
|
```ruby
|
126
|
-
webhook.valid?(API_KEY)
|
138
|
+
webhook.valid?(API_KEY) # => true or false
|
127
139
|
```
|
128
140
|
|
129
|
-
#### Idiomatic
|
141
|
+
#### Idiomatic Access to WebHook Parameters
|
130
142
|
|
131
|
-
The `BreweryDB::WebHook` object also provides an idiomatic Ruby
|
143
|
+
The `BreweryDB::WebHook` object also provides an idiomatic Ruby interface to
|
132
144
|
the parameters. For example, one of the parameters posted in a webhook is
|
133
|
-
`attributeId`, which is the BreweryDB
|
134
|
-
parameter is exposed by an instance of `BreweryDB::WebHook`
|
135
|
-
|
136
|
-
```ruby
|
137
|
-
webhook.attribute_id #=> 'x6bRxw'
|
138
|
-
```
|
145
|
+
`attributeId`, which is the BreweryDB ID for a brewery, beer, etc. This
|
146
|
+
parameter is exposed by an instance of `BreweryDB::WebHook` as `#attribute_id`.
|
139
147
|
|
140
|
-
|
148
|
+
Here’s the full list of parameters:
|
141
149
|
|
142
150
|
```ruby
|
143
151
|
webhook.action #=> 'insert'
|
@@ -152,6 +160,12 @@ webhook.timestamp #=> '1350573527'
|
|
152
160
|
|
153
161
|
[webhooks]: http://www.brewerydb.com/developers/docs-webhooks
|
154
162
|
|
163
|
+
|
164
|
+
### Examples
|
165
|
+
|
166
|
+
Additional examples may be found in the `examples` directory.
|
167
|
+
|
168
|
+
|
155
169
|
## Contributing
|
156
170
|
|
157
171
|
1. Fork it.
|
@@ -167,6 +181,8 @@ Thanks to the following people who have contributed patches or helpful
|
|
167
181
|
suggestions:
|
168
182
|
|
169
183
|
* [Steven Harman](https://github.com/stevenharman)
|
184
|
+
* [Jésus Lopes](https://github.com/jtadeulopes)
|
185
|
+
* [Matt Griffin](https://github.com/betamatt)
|
170
186
|
|
171
187
|
|
172
188
|
## Copyright
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# Paginate beer search results using Kaminari.
|
2
|
+
|
3
|
+
query = params[:query]
|
4
|
+
page = params[:page] || 1
|
5
|
+
per_page = BreweryDB::PaginatedCollection::BATCH_SIZE
|
6
|
+
|
7
|
+
results = client.search.beers(q: query, p: page)
|
8
|
+
count = results.count
|
9
|
+
|
10
|
+
beers = Kaminari
|
11
|
+
.paginate_array(results.take(per_page), total_count: count)
|
12
|
+
.page(page)
|
13
|
+
.per(per_page)
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# Paginate beer search results using will_paginate.
|
2
|
+
|
3
|
+
query = params[:query]
|
4
|
+
page = params[:page] || 1
|
5
|
+
per_page = BreweryDB::PaginatedCollection::BATCH_SIZE
|
6
|
+
|
7
|
+
results = client.search.beers(q: query, p: page)
|
8
|
+
count = results.count
|
9
|
+
|
10
|
+
beers = WillPaginate::Collection.create(page, per_page, count) do |pager|
|
11
|
+
pager.replace results.take(per_page)
|
12
|
+
end
|
data/lib/brewery_db.rb
CHANGED
@@ -11,6 +11,7 @@ module BreweryDB
|
|
11
11
|
autoload :Collection, 'brewery_db/collection'
|
12
12
|
autoload :Config, 'brewery_db/config'
|
13
13
|
autoload :Mash, 'brewery_db/mash'
|
14
|
+
autoload :PaginatedCollection, 'brewery_db/paginated_collection'
|
14
15
|
autoload :Request, 'brewery_db/request'
|
15
16
|
autoload :Resource, 'brewery_db/resource'
|
16
17
|
autoload :Response, 'brewery_db/response'
|
@@ -2,8 +2,6 @@ module BreweryDB
|
|
2
2
|
class Collection
|
3
3
|
include Enumerable
|
4
4
|
|
5
|
-
BATCH_SIZE = 50
|
6
|
-
|
7
5
|
attr_reader :size
|
8
6
|
alias length size
|
9
7
|
|
@@ -11,32 +9,17 @@ module BreweryDB
|
|
11
9
|
self.response = response
|
12
10
|
end
|
13
11
|
|
14
|
-
def count(*args, &block)
|
15
|
-
# The Ruby documentation is wrong, and Enumerable#count no longer calls
|
16
|
-
# #size, so let's make sure it's used here when no arguments are given.
|
17
|
-
if args.empty? && !block_given?
|
18
|
-
size
|
19
|
-
else
|
20
|
-
super
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
12
|
def each
|
25
13
|
return to_enum unless block_given?
|
26
|
-
|
27
|
-
while @collection.any?
|
28
|
-
@collection.each { |element| yield(element) }
|
29
|
-
break if @collection.size < BATCH_SIZE
|
30
|
-
self.response = @response.next_page
|
31
|
-
end
|
14
|
+
@collection.each { |element| yield(element) }
|
32
15
|
end
|
33
16
|
|
17
|
+
private
|
18
|
+
|
34
19
|
def response=(response)
|
35
20
|
@response = response
|
36
21
|
@collection = Array(response.data) || []
|
37
|
-
@size =
|
38
|
-
@page_count = response.page_count
|
22
|
+
@size = @collection.length
|
39
23
|
end
|
40
|
-
private :response=
|
41
24
|
end
|
42
25
|
end
|
data/lib/brewery_db/config.rb
CHANGED
data/lib/brewery_db/mash.rb
CHANGED
@@ -2,17 +2,17 @@ require 'hashie'
|
|
2
2
|
|
3
3
|
module BreweryDB
|
4
4
|
class Mash < Hashie::Mash
|
5
|
+
protected
|
6
|
+
|
5
7
|
def convert_key(key)
|
6
8
|
key = key.to_s.dup
|
7
9
|
key.gsub!(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
|
8
10
|
key.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
|
9
11
|
key.tr('-', '_').downcase
|
10
12
|
end
|
11
|
-
protected :convert_key
|
12
13
|
|
13
14
|
def convert_value(value, duping=false)
|
14
15
|
value.is_a?(String) ? super.gsub("\r\n", "\n") : super
|
15
16
|
end
|
16
|
-
protected :convert_value
|
17
17
|
end
|
18
18
|
end
|
@@ -11,18 +11,18 @@ module BreweryDB
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
+
private
|
15
|
+
|
14
16
|
def rate_limit_exceeded_or_unauthorized(headers)
|
15
17
|
rate_limit = headers.fetch('x-ratelimit-remaining') { :rate_limit_unknown }
|
16
18
|
|
17
19
|
rate_limit == '0' ? RateLimitExceeded : Unauthorized
|
18
20
|
end
|
19
|
-
private :rate_limit_exceeded_or_unauthorized
|
20
21
|
|
21
22
|
def with(error_class, env)
|
22
23
|
message = "Status => #{env[:status]}. Error message => #{env[:body].error_message}"
|
23
24
|
error_class.new(message)
|
24
25
|
end
|
25
|
-
private :with
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module BreweryDB
|
2
|
+
class PaginatedCollection < Collection
|
3
|
+
include Enumerable
|
4
|
+
|
5
|
+
BATCH_SIZE = 50
|
6
|
+
|
7
|
+
def count(*args, &block)
|
8
|
+
# The Ruby documentation is wrong, and Enumerable#count no longer calls
|
9
|
+
# #size, so let's make sure it's used here when no arguments are given.
|
10
|
+
if args.empty? && !block_given?
|
11
|
+
size
|
12
|
+
else
|
13
|
+
super
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def each
|
18
|
+
return to_enum unless block_given?
|
19
|
+
|
20
|
+
while @collection.any?
|
21
|
+
@collection.each { |element| yield(element) }
|
22
|
+
break if @collection.size < BATCH_SIZE
|
23
|
+
self.response = @response.next_page
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def response=(response)
|
30
|
+
super
|
31
|
+
@size = response.count || 0
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/brewery_db/request.rb
CHANGED
@@ -14,14 +14,14 @@ module BreweryDB
|
|
14
14
|
self.class.new(@connection, @path, @params.merge(p: page_number + 1))
|
15
15
|
end
|
16
16
|
|
17
|
+
private
|
18
|
+
|
17
19
|
def response_body
|
18
20
|
@connection.get(@path, @params).body
|
19
21
|
end
|
20
|
-
private :response_body
|
21
22
|
|
22
23
|
def page_number
|
23
24
|
@params[:p] || 1
|
24
25
|
end
|
25
|
-
private :page_number
|
26
26
|
end
|
27
27
|
end
|
data/lib/brewery_db/resource.rb
CHANGED
@@ -7,10 +7,11 @@ module BreweryDB
|
|
7
7
|
@config = config
|
8
8
|
end
|
9
9
|
|
10
|
+
private
|
11
|
+
|
10
12
|
def get(path, params={})
|
11
13
|
Request.new(connection, path, params).response
|
12
14
|
end
|
13
|
-
private :get
|
14
15
|
|
15
16
|
def connection
|
16
17
|
Faraday.new(request: { timeout: @config.timeout }) do |builder|
|
@@ -18,6 +19,7 @@ module BreweryDB
|
|
18
19
|
builder.headers[:user_agent] = @config.user_agent
|
19
20
|
builder.params[:key] = @config.api_key
|
20
21
|
|
22
|
+
builder.response(:logger, @config.logger) if @config.logger
|
21
23
|
builder.use(Middleware::ErrorHandler)
|
22
24
|
builder.response(:mashify, mash_class: Mash)
|
23
25
|
builder.response(:json, content_type: /\bjson$/)
|
@@ -25,6 +27,5 @@ module BreweryDB
|
|
25
27
|
builder.adapter(@config.adapter)
|
26
28
|
end
|
27
29
|
end
|
28
|
-
private :connection
|
29
30
|
end
|
30
31
|
end
|
@@ -2,14 +2,14 @@ module BreweryDB
|
|
2
2
|
module Resources
|
3
3
|
class Menu < Resource
|
4
4
|
def beer_availability(params={})
|
5
|
-
get_menu('beer-availability', params).
|
5
|
+
get_menu('beer-availability', params).collection
|
6
6
|
end
|
7
7
|
|
8
|
+
private
|
9
|
+
|
8
10
|
def get_menu(name, params)
|
9
11
|
get("menu/#{name}", params)
|
10
12
|
end
|
11
|
-
private :get_menu
|
12
13
|
end
|
13
14
|
end
|
14
15
|
end
|
15
|
-
|
@@ -2,7 +2,7 @@ module BreweryDB
|
|
2
2
|
module Resources
|
3
3
|
class Search < Resource
|
4
4
|
def all(params={})
|
5
|
-
get('search', params).
|
5
|
+
get('search', params).paginated_collection
|
6
6
|
end
|
7
7
|
|
8
8
|
def beers(params={})
|
@@ -20,6 +20,10 @@ module BreweryDB
|
|
20
20
|
def events(params={})
|
21
21
|
all(params.merge(type: 'event'))
|
22
22
|
end
|
23
|
+
|
24
|
+
def upc(params={})
|
25
|
+
get('search/upc', params).paginated_collection
|
26
|
+
end
|
23
27
|
end
|
24
28
|
end
|
25
29
|
end
|
data/lib/brewery_db/response.rb
CHANGED
data/lib/brewery_db/version.rb
CHANGED
data/lib/brewery_db/web_hook.rb
CHANGED
@@ -4,7 +4,7 @@ describe BreweryDB::Resources::Brewery do
|
|
4
4
|
context '#beers' do
|
5
5
|
let(:config) { double }
|
6
6
|
let(:id) { 'KlSsWY' }
|
7
|
-
let(:response) { double(
|
7
|
+
let(:response) { double(collection: :some_beers) }
|
8
8
|
|
9
9
|
subject(:brewery) { described_class.new(config, id: id) }
|
10
10
|
|
@@ -27,4 +27,16 @@ describe BreweryDB::Resources::Search, :resource do
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
30
|
+
|
31
|
+
context "#upc", :vcr do
|
32
|
+
subject(:search) { described_class.new(config) }
|
33
|
+
|
34
|
+
context "for an existing upc code" do
|
35
|
+
let(:upc) { '030613000043' }
|
36
|
+
|
37
|
+
it "returns a collection with the matched beer" do
|
38
|
+
expect(search.upc(code: upc).map(&:id)).to eq(['LVjHK1'])
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
30
42
|
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://api.brewerydb.com/v2/search/upc?key=API_KEY&code=030613000043
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- BreweryDB Ruby Gem 0.2.2
|
12
|
+
response:
|
13
|
+
status:
|
14
|
+
code: 200
|
15
|
+
message:
|
16
|
+
headers:
|
17
|
+
date:
|
18
|
+
- Fri, 04 Oct 2013 00:33:46 GMT
|
19
|
+
server:
|
20
|
+
- Apache/2.2.25 (Amazon)
|
21
|
+
x-powered-by:
|
22
|
+
- PHP/5.3.27
|
23
|
+
x-ratelimit-limit:
|
24
|
+
- Unlimited
|
25
|
+
x-ratelimit-remaining:
|
26
|
+
- Unlimited
|
27
|
+
vary:
|
28
|
+
- Accept-Encoding
|
29
|
+
content-length:
|
30
|
+
- '1342'
|
31
|
+
connection:
|
32
|
+
- close
|
33
|
+
content-type:
|
34
|
+
- application/json
|
35
|
+
body:
|
36
|
+
encoding: UTF-8
|
37
|
+
string: '{"currentPage":1,"numberOfPages":1,"totalResults":1,"data":[{"id":"LVjHK1","name":"Brooklyn
|
38
|
+
Brown Ale","description":"This is the award-winning original American brown
|
39
|
+
ale, first brewed as a holiday specialty, and now one of our most popular
|
40
|
+
beers year-round. Northern English brown ales tend to be strong and dry, while
|
41
|
+
southern English brown ales are milder and sweeter. Brooklyn Brown Ale combines
|
42
|
+
the best of those classic styles and then adds an American accent in the form
|
43
|
+
of a firm hop character and roasty palate. A blend of six malts, some of them
|
44
|
+
roasted, give this beer its deep russet-brown color and complex malt flavor,
|
45
|
+
fruity, smooth and rich, with a caramel, chocolate and coffee background.
|
46
|
+
Generous late hopping brings forward a nice hop aroma to complete the picture.
|
47
|
+
Brooklyn Brown Ale is full-flavored but retains a smoothness and easy drinkability
|
48
|
+
that has made it one of the most popular dark beers in the Northeast.","abv":"5.6","ibu":"30","glasswareId":5,"availableId":1,"styleId":37,"isOrganic":"N","labels":{"icon":"https:\/\/s3.amazonaws.com\/brewerydbapi\/beer\/LVjHK1\/upload_yxlhuf-icon.png","medium":"https:\/\/s3.amazonaws.com\/brewerydbapi\/beer\/LVjHK1\/upload_yxlhuf-medium.png","large":"https:\/\/s3.amazonaws.com\/brewerydbapi\/beer\/LVjHK1\/upload_yxlhuf-large.png"},"status":"verified","statusDisplay":"Verified","foodPairings":"Brooklyn
|
49
|
+
Brown Ale is particularly good with steaks, burgers, stews and barbecue, where
|
50
|
+
it can put its caramel flavors to work with the caramelized flavors in the
|
51
|
+
meat. It\u2019s also excellent with venison, ham and roasted pork, which engage
|
52
|
+
the depth of malt character. Well-aged cheddar and sheep\u2019s milk cheese
|
53
|
+
will pair up nicely.","originalGravity":"1.063","createDate":"2012-01-03 02:42:54","updateDate":"2013-08-13
|
54
|
+
15:55:57","glass":{"id":5,"name":"Pint","createDate":"2012-01-03 02:41:33"},"available":{"id":1,"name":"Year
|
55
|
+
Round","description":"Available year round as a staple beer."},"style":{"id":37,"categoryId":3,"category":{"id":3,"name":"North
|
56
|
+
American Origin Ales","createDate":"2012-03-21 20:06:45"},"name":"American-Style
|
57
|
+
Brown Ale","description":"American brown ales range from deep copper to brown
|
58
|
+
in color. Roasted malt caramel-like and chocolate-like characters should be
|
59
|
+
of medium intensity in both flavor and aroma. American brown ales have evident
|
60
|
+
low to medium hop flavor and aroma, medium to high hop bitterness, and a medium
|
61
|
+
body. Estery and fruity-ester characters should be subdued. Diacetyl should
|
62
|
+
not be perceived. Chill haze is allowable at cold temperatures.","ibuMin":"25","ibuMax":"45","abvMin":"4","abvMax":"6.4","srmMin":"15","srmMax":"26","ogMin":"1.04","fgMin":"1.01","fgMax":"1.018","createDate":"2012-03-21
|
63
|
+
20:06:46"},"fluidSize":{"id":9,"volume":"case","createDate":"2012-01-03 02:41:33"}}],"status":"success"}'
|
64
|
+
http_version:
|
65
|
+
recorded_at: Fri, 04 Oct 2013 00:33:57 GMT
|
66
|
+
recorded_with: VCR 2.6.0
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brewery_db
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler Hunt
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-02-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -116,12 +116,15 @@ files:
|
|
116
116
|
- README.md
|
117
117
|
- Rakefile
|
118
118
|
- brewery_db.gemspec
|
119
|
+
- examples/kaminari.rb
|
120
|
+
- examples/will_paginate.rb
|
119
121
|
- lib/brewery_db.rb
|
120
122
|
- lib/brewery_db/client.rb
|
121
123
|
- lib/brewery_db/collection.rb
|
122
124
|
- lib/brewery_db/config.rb
|
123
125
|
- lib/brewery_db/mash.rb
|
124
126
|
- lib/brewery_db/middleware/error_handler.rb
|
127
|
+
- lib/brewery_db/paginated_collection.rb
|
125
128
|
- lib/brewery_db/request.rb
|
126
129
|
- lib/brewery_db/resource.rb
|
127
130
|
- lib/brewery_db/resources/beers.rb
|
@@ -182,6 +185,7 @@ files:
|
|
182
185
|
- spec/fixtures/BreweryDB_Resources_Locations/_find/fetches_only_the_location_asked_for.yml
|
183
186
|
- spec/fixtures/BreweryDB_Resources_Menu/_beer_availability/fetches_all_of_the_beer_availabilities_at_once.yml
|
184
187
|
- spec/fixtures/BreweryDB_Resources_Search/_all/fetches_all_of_the_search_results_at_once.yml
|
188
|
+
- spec/fixtures/BreweryDB_Resources_Search/_upc/for_an_existing_upc_code/returns_a_collection_with_the_matched_beer.yml
|
185
189
|
- spec/fixtures/BreweryDB_Resources_Styles/_all/fetches_all_of_the_styles_at_once.yml
|
186
190
|
- spec/fixtures/BreweryDB_Resources_Styles/_find/fetches_only_the_style_asked_for.yml
|
187
191
|
- spec/fixtures/BreweryDB_Resources_Yeasts/_all/fetches_all_of_the_yeasts_at_once.yml
|
@@ -209,7 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
209
213
|
version: '0'
|
210
214
|
requirements: []
|
211
215
|
rubyforge_project:
|
212
|
-
rubygems_version: 2.0.
|
216
|
+
rubygems_version: 2.0.14
|
213
217
|
signing_key:
|
214
218
|
specification_version: 4
|
215
219
|
summary: A Ruby library for using the BreweryDB API.
|
@@ -256,6 +260,7 @@ test_files:
|
|
256
260
|
- spec/fixtures/BreweryDB_Resources_Locations/_find/fetches_only_the_location_asked_for.yml
|
257
261
|
- spec/fixtures/BreweryDB_Resources_Menu/_beer_availability/fetches_all_of_the_beer_availabilities_at_once.yml
|
258
262
|
- spec/fixtures/BreweryDB_Resources_Search/_all/fetches_all_of_the_search_results_at_once.yml
|
263
|
+
- spec/fixtures/BreweryDB_Resources_Search/_upc/for_an_existing_upc_code/returns_a_collection_with_the_matched_beer.yml
|
259
264
|
- spec/fixtures/BreweryDB_Resources_Styles/_all/fetches_all_of_the_styles_at_once.yml
|
260
265
|
- spec/fixtures/BreweryDB_Resources_Styles/_find/fetches_only_the_style_asked_for.yml
|
261
266
|
- spec/fixtures/BreweryDB_Resources_Yeasts/_all/fetches_all_of_the_yeasts_at_once.yml
|