Class: Lita::Handlers::OnewheelBeerTinBucket

Inherits:
OnewheelBeerBase
  • Object
show all
Defined in:
lib/lita/handlers/onewheel_beer_tin_bucket.rb

Instance Method Summary collapse

Instance Method Details

#get_sourceObject



53
54
55
56
57
58
59
60
61
# File 'lib/lita/handlers/onewheel_beer_tin_bucket.rb', line 53

def get_source
  Lita.logger.debug 'get_source started'
  unless (response = redis.get('page_response'))
    Lita.logger.info 'No cached result found, fetching.'
    response = RestClient.get('http://fbpage.digitalpour.com/?companyID=55a59fd25e002c0a205393cc&locationID=1')
    redis.setex('page_response', 1800, response)
  end
  parse_response response
end

#parse_response(response) ⇒ Object

This is the worker bee- decoding the html into our “standard” document. Future implementations could simply override this implementation-specific code to help this grow more widely.



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/lita/handlers/onewheel_beer_tin_bucket.rb', line 66

def parse_response(response)
  Lita.logger.debug 'parse_response started.'
  gimme_what_you_got = {}
  noko = Nokogiri.HTML response
  index = 1

  noko.css("div.beverageInfo[name='beerLayout']").each do |beer_node|
    next if beer_node.css('.beverageName').children.to_s == ''

    tap_name = index.to_s
    index += 1

    brewery = beer_node.css('.producerName').children.to_s
    beer_name = beer_node.css('.beverageName').children.to_s
    beer_type = beer_node.css('.beverageStyle').children.to_s
    beer_location = beer_node.css('.producerLocation').children.to_s
    abv = beer_node.css('.abv').children.to_s.sub /%\s*/, ''
    ibu = beer_node.css('.ibu').children.to_s
    full_text_search = "#{brewery} #{beer_name} #{beer_type} #{beer_location}"  # #{beer_desc.to_s.gsub /\d+\.*\d*%*/, ''}

    gimme_what_you_got[tap_name] = {
    #     type: tap_type,
    #     remaining: remaining,
        brewery: brewery.to_s,
        name: beer_name.to_s,
        desc: beer_type.to_s,
        abv: abv.to_f,
        # price: price,
        search: full_text_search
    }
  end
  # puts gimme_what_you_got.inspect

  gimme_what_you_got
end

#send_response(tap, datum, response) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/lita/handlers/onewheel_beer_tin_bucket.rb', line 39

def send_response(tap, datum, response)
  reply = "Tin Bucket tap #{tap}) #{get_tap_type_text(datum[:type])}"
  # reply += "#{datum[:brewery]} "
  reply += "#{datum[:name]} "
  # reply += "- #{datum[:desc]}, "
  # reply += "Served in a #{datum[1]['glass']} glass.  "
  # reply += "#{datum[:remaining]}"
  reply += "#{datum[:abv]}%"

  Lita.logger.info "send_response: Replying with #{reply}"

  response.reply reply
end