class Tankard::Api::Beer

Access for the /beer route on brewerydb

@see www.brewerydb.com/developers/docs-endpoint/beer_index @author Matthew Shafer

Attributes

http_client[R]
http_request_parameters[R]

Public Class Methods

new(request, options = {}) click to toggle source

Initialize a new object

@param request [Tankard::Request] @param options [Hash] @return [Tankard::Api::Beer]

# File lib/tankard/api/beer.rb, line 21
def initialize(request, options = {})
  @http_client = request
  @http_request_parameters = Hashie::Mash.new(options)
end

Public Instance Methods

breweries() click to toggle source

Sets the request to beer/:id/breweries

@return [self] returns itself

# File lib/tankard/api/beer.rb, line 57
def breweries
  @http_request_parameters.endpoint = 'breweries'
  self
end
events() click to toggle source

Sets the request to beer/:id/events

@return [self] returns itself

# File lib/tankard/api/beer.rb, line 65
def events
  @http_request_parameters.endpoint = 'events'
  self
end
id(beer_id) click to toggle source

BeerID to query

@param beer_id [String] @return [self] returns itself

# File lib/tankard/api/beer.rb, line 49
def id(beer_id)
  @http_request_parameters.id = beer_id
  self
end
ingredients() click to toggle source

Sets the request to beer/:id/ingredients

@return [self] returns itself

# File lib/tankard/api/beer.rb, line 73
def ingredients
  @http_request_parameters.endpoint = 'ingredients'
  self
end
params(options = {}) click to toggle source

Additional parameters to send with the request

@param options [Hash] @return [self] returns itself

# File lib/tankard/api/beer.rb, line 98
def params(options = {})
  options.each_pair do |key, value|
    @http_request_parameters[key] = value
  end
  self
end
social_accounts() click to toggle source

Sets the request to beer/:id/socialaccounts

@return [self] returns itself

# File lib/tankard/api/beer.rb, line 81
def social_accounts
  @http_request_parameters.endpoint = 'socialaccounts'
  self
end
variations() click to toggle source

Sets the request to beer/:id/variations

@return [self] returns itself

# File lib/tankard/api/beer.rb, line 89
def variations
  @http_request_parameters.endpoint = 'variations'
  self
end

Private Instance Methods

http_request_uri() click to toggle source
# File lib/tankard/api/beer.rb, line 110
def http_request_uri
  @request_endpoint = "/#{@http_request_parameters.delete(:endpoint)}" if @http_request_parameters.endpoint?
  endpoint = "#{route}/#{raise_if_no_id_in_options}"
  endpoint += @request_endpoint if @request_endpoint
  endpoint
end
raise_if_no_id_in_options() click to toggle source
# File lib/tankard/api/beer.rb, line 117
def raise_if_no_id_in_options
  @beer_id = @http_request_parameters.delete(:id) if @http_request_parameters.id?
  fail Tankard::Error::MissingParameter, 'No Beer ID is set' unless @beer_id
  @beer_id
end
route() click to toggle source
# File lib/tankard/api/beer.rb, line 123
def route
  'beer'
end