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



58
59
60
61
62
63
64
65
66
# File 'lib/lita/handlers/onewheel_beer_tin_bucket.rb', line 58

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.



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
101
102
103
104
105
# File 'lib/lita/handlers/onewheel_beer_tin_bucket.rb', line 71

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



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/lita/handlers/onewheel_beer_tin_bucket.rb', line 44

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