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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c567adea9608809dd87a888de332df23256ac610
|
4
|
+
data.tar.gz: 4f4f5cdfa7ac0a0d5e6dabf62e0c1f7cf79a6678
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 =
|
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 =
|
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
|
-
|
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 =
|
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
|
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 =
|
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 =
|
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
|
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
|
-
|
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,
|
@@ -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
|
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
|
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
|
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
|
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.
|
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-
|
11
|
+
date: 2016-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|