Class: Lita::Handlers::OnewheelBeerLoyalLegion

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

Instance Method Summary collapse

Instance Method Details

#get_sourceObject



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

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://loyallegionpdx.com/taplist')
    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.



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
# File 'lib/lita/handlers/onewheel_beer_loyal_legion.rb', line 72

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

  noko.css('article.tap-item').each do |beer_node|
    # gimme_what_you_got
    tap_name = beer_node.css('small.tapnum').children.to_s.sub 'Tap#', ''
    next if tap_name.empty?

    beer_name = beer_node.css('div.tap-content h1').children.to_s.strip
    full_text_search = beer_name

    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
57
# File 'lib/lita/handlers/onewheel_beer_loyal_legion.rb', line 44

def send_response(tap, datum, response)
  reply = "Loyal Legion 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]}%, "
  # reply += "$#{datum[:price].to_s.sub '.0', ''}"

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

  response.reply reply
end