lita-onewheel-baileys 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7704f88f1316c98b6781f5ecf31cfc1eb8e29525
4
- data.tar.gz: d2acc68ec67dc78bce800c7127930282f0a8528a
3
+ metadata.gz: c567adea9608809dd87a888de332df23256ac610
4
+ data.tar.gz: 4f4f5cdfa7ac0a0d5e6dabf62e0c1f7cf79a6678
5
5
  SHA512:
6
- metadata.gz: 5e85d5077ad6b1ae6a6f12b0b51354aca03c839d02a4a29e374555273d7460ff84e4262e537ce8591268aa95207464b51ca0da9fbf26636d25db6a5b4ef5cb63
7
- data.tar.gz: 3e723e6aeb8531a6765cba66f956e874f70ede278b9af0e80a77b223b8be4e8ad083b4a39a163af12827540b3a2c42d3569d8f987431b0f076c825c7e2ee86a4
6
+ metadata.gz: c6a5dfd46627e8dd456c8276823bf38fc80494752613df3b9b30999a39a02e56201d4ed98d37d48b63e5713e7713c21545f698d942c4aa090f727296b0ba79fb
7
+ data.tar.gz: d06627fbdd5ff720530ebaf8dc50c79bcc82cf26bfc83b96f751952696cd6552d05f755199d1e3ef8a57bef9b66e8b039b5f8b6c7e74d1a574932ed541126f36
@@ -31,10 +31,11 @@ module Lita
31
31
  help: {'taps roulette' => 'Can\'t decide? Let me do it for you!'}
32
32
 
33
33
  def taps_list(response)
34
- beers = get_baileys
34
+ beers = get_source
35
35
  reply = "Bailey's taps: "
36
36
  beers.each do |tap, datum|
37
37
  reply += "#{tap}) "
38
+ reply += get_tap_type_text(datum[:type])
38
39
  reply += datum[:brewery] + ' '
39
40
  reply += datum[:name] + ' '
40
41
  end
@@ -45,24 +46,25 @@ module Lita
45
46
  end
46
47
 
47
48
  def taps_deets(response)
48
- beers = get_baileys
49
+ beers = get_source
49
50
  beers.each do |tap, datum|
50
51
  query = response.matches[0][0].strip
51
52
  # Search directly by tap number OR full text match.
52
- if (query.match(/^\d+$/) and tap == query) or (datum[:search].match(/#{query}/i))
53
+ # Let's make cask and nitro taps specific.
54
+ if (query.match(/^\d+$/) and tap == query) or (datum[:search].match(/#{query}/i)) or (datum[:type].downcase.match(/#{query}/i)) # Cask and Nitro
53
55
  send_response(tap, datum, response)
54
56
  end
55
57
  end
56
58
  end
57
59
 
58
60
  def taps_by_abv(response)
59
- beers = get_baileys
61
+ beers = get_source
60
62
  beers.each do |tap, datum|
61
63
  if datum[:abv].to_f == 0.0
62
64
  next
63
65
  end
64
66
  query = response.matches[0][0].strip
65
- # Search directly by tap number OR full text match.
67
+ # Search directly by abv matcher.
66
68
  if (abv_matches = query.match(/([><])(\d+\.*\d*)/))
67
69
  direction = abv_matches.to_s.match(/[<>]/).to_s
68
70
  abv_requested = abv_matches.to_s.match(/\d+.*\d*/).to_s
@@ -77,7 +79,7 @@ module Lita
77
79
  end
78
80
 
79
81
  def taps_by_price(response)
80
- beers = get_baileys
82
+ beers = get_source
81
83
  beers.each do |tap, datum|
82
84
  # if datum[:prices][1][:cost].to_f == 0.0
83
85
  # next
@@ -99,13 +101,13 @@ module Lita
99
101
  end
100
102
 
101
103
  def taps_by_random(response)
102
- beers = get_baileys
104
+ beers = get_source
103
105
  beer = beers.to_a.sample
104
106
  send_response(beer[0], beer[1], response)
105
107
  end
106
108
 
107
109
  def send_response(tap, datum, response)
108
- reply = "Bailey's tap #{tap}) "
110
+ reply = "Bailey's tap #{tap}) #{get_tap_type_text(datum[:type])}"
109
111
  reply += "#{datum[:brewery]} "
110
112
  reply += "#{datum[:name]} "
111
113
  reply += "- #{datum[:desc]}, "
@@ -115,6 +117,10 @@ module Lita
115
117
  response.reply reply
116
118
  end
117
119
 
120
+ def get_tap_type_text(type)
121
+ (type.empty?) ? '' : "(#{type}) "
122
+ end
123
+
118
124
  def get_display_prices(prices)
119
125
  price_array = []
120
126
  prices.each do |p|
@@ -123,7 +129,7 @@ module Lita
123
129
  price_array.join ' | '
124
130
  end
125
131
 
126
- def get_baileys
132
+ def get_source
127
133
  unless (response = redis.get('page_response'))
128
134
  Lita.logger.info 'No cached result found.'
129
135
  response = RestClient.get('http://www.baileystaproom.com/draft-list/')
@@ -133,12 +139,18 @@ module Lita
133
139
  parse_response response
134
140
  end
135
141
 
142
+ # This is the worker bee- decoding the html into our "standard" document.
143
+ # Future implementations could simply override this implementation-specific
144
+ # code to help this grow more widely.
136
145
  def parse_response(response)
137
146
  gimme_what_you_got = {}
138
147
  noko = Nokogiri.HTML response
139
148
  noko.css('div#boxfielddata').each do |beer_node|
140
149
  # gimme_what_you_got
141
- tap = get_tap_name(beer_node)
150
+ tap_name = get_tap_name(beer_node)
151
+ tap = tap_name.match(/\d+/).to_s
152
+ tap_type = tap_name.match(/(cask|nitro)/i).to_s
153
+
142
154
  remaining = beer_node.attributes['title']
143
155
 
144
156
  brewery = get_brewery(beer_node)
@@ -149,6 +161,7 @@ module Lita
149
161
  prices = get_prices(beer_node)
150
162
 
151
163
  gimme_what_you_got[tap] = {
164
+ type: tap_type,
152
165
  remaining: remaining,
153
166
  brewery: brewery.to_s,
154
167
  name: beer_name.to_s,
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'lita-onewheel-baileys'
3
- spec.version = '3.2.0'
3
+ spec.version = '3.3.0'
4
4
  spec.authors = ['Andrew Kreps']
5
5
  spec.email = ['andrew.kreps@gmail.com']
6
6
  spec.description = %q{Lita interface to Bailey's Taproom listings.}
@@ -11,7 +11,7 @@ describe Lita::Handlers::OnewheelBaileys, lita_handler: true do
11
11
 
12
12
  it 'shows the taps' do
13
13
  send_command 'taps'
14
- expect(replies.last).to eq("Bailey's taps: 1) Cider Riot! Plastic Paddy 2) Fox Tail Rosenberry Cask 3) Machine House Crystal Maze 4) Wild Ride Solidarity 5) Mazama Gillian’s Red Nitro 6) Backwoods Winchester Brown 7) Fort George Vortex 8) Fat Head’s Zeus Juice 9) Hopworks Noggin’ Floggin’ 10) Anderson Valley Briney Melon Gose 11) Lagunitas Copper Fusion Ale 12) Double Mountain Fast Lane 13) Burnside Couch Lager 14) Bell’s Oatmeal Stout 15) Baerlic Wildcat 16) New Belgium La Folie 17) Culmination Urizen 18) Knee Deep Hop Surplus 19) Cascade Lakes Ziggy Stardust 20) Knee Deep Dark Horse 21) Coronado Orange Avenue Wit 22) GoodLife 29er 23) Amnesia Slow Train Porter 24) Oakshire Perfect Storm 25) Green Flash Passion Fruit Kicker")
14
+ expect(replies.last).to eq("Bailey's taps: 1) Cider Riot! Plastic Paddy 2) Fox Tail Rosenberry 3) (Cask) Machine House Crystal Maze 4) Wild Ride Solidarity 5) Mazama Gillian’s Red 6) (Nitro) Backwoods Winchester Brown 7) Fort George Vortex 8) Fat Head’s Zeus Juice 9) Hopworks Noggin’ Floggin’ 10) Anderson Valley Briney Melon Gose 11) Lagunitas Copper Fusion Ale 12) Double Mountain Fast Lane 13) Burnside Couch Lager 14) Bell’s Oatmeal Stout 15) Baerlic Wildcat 16) New Belgium La Folie 17) Culmination Urizen 18) Knee Deep Hop Surplus 19) Cascade Lakes Ziggy Stardust 20) Knee Deep Dark Horse 21) Coronado Orange Avenue Wit 22) GoodLife 29er 23) Amnesia Slow Train Porter 24) Oakshire Perfect Storm 25) Green Flash Passion Fruit Kicker")
15
15
  end
16
16
 
17
17
  it 'displays details for tap 4' do
@@ -27,12 +27,12 @@ describe Lita::Handlers::OnewheelBaileys, lita_handler: true do
27
27
 
28
28
  it 'gets nitro' do
29
29
  send_command 'taps nitro'
30
- expect(replies.last).to eq('Bailey\'s tap Nitro 6) Backwoods Winchester Brown - Brown Ale 6.2%, 10oz - $3 | 20oz - $5, 98% remaining')
30
+ expect(replies.last).to eq('Bailey\'s tap 6) (Nitro) Backwoods Winchester Brown - Brown Ale 6.2%, 10oz - $3 | 20oz - $5, 98% remaining')
31
31
  end
32
32
 
33
33
  it 'gets cask' do
34
34
  send_command 'taps cask'
35
- expect(replies.last).to eq("Bailey's tap Cask 3) Machine House Crystal Maze - ESB 4.0%, 10oz - $3 | 20oz - $5, 57% remaining")
35
+ expect(replies.last).to eq("Bailey's tap 3) (Cask) Machine House Crystal Maze - ESB 4.0%, 10oz - $3 | 20oz - $5, 57% remaining")
36
36
  end
37
37
 
38
38
  it 'searches for ipa' do
@@ -58,7 +58,7 @@ describe Lita::Handlers::OnewheelBaileys, lita_handler: true do
58
58
  it 'searches for abv < 4%' do
59
59
  send_command 'taps <4%'
60
60
  expect(replies.count).to eq(2)
61
- expect(replies[0]).to eq("Bailey's tap Cask 3) Machine House Crystal Maze - ESB 4.0%, 10oz - $3 | 20oz - $5, 57% remaining")
61
+ expect(replies[0]).to eq("Bailey's tap 3) (Cask) Machine House Crystal Maze - ESB 4.0%, 10oz - $3 | 20oz - $5, 57% remaining")
62
62
  expect(replies.last).to eq("Bailey's tap 11) Lagunitas Copper Fusion Ale - Copper Ale 4.0%, 10oz - $3 | 20oz - $5 | 32oz Crowler - $8, 19% remaining")
63
63
  end
64
64
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-onewheel-baileys
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kreps
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-24 00:00:00.000000000 Z
11
+ date: 2016-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita