lita-coffee 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/lita/handlers/coffee.rb +27 -27
- data/lita-coffee.gemspec +1 -1
- data/spec/lita/handlers/coffee_spec.rb +46 -27
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b49345f070b8d118bf1d960e0f07dcd7a56dffc
|
4
|
+
data.tar.gz: 7ff14d8b53dbeb2cee7200933edcd8e164e96c2e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48816a6a46e4569e3b64a2e3393c9be8daa0855bcb5db2260b248be329e0ecb215c24f4337ec549caa47537953793b54933e34b3575fd7344ad78ae1779ca113
|
7
|
+
data.tar.gz: b897fd6aa5f26089d1a0d57636ffe8163f33f9f509f7a2e3282856fc0b92f13a294de8e0b12acbe7aa4c91233a309aebbe617abf8c34ef533cce0f9ee2747dcc
|
data/lib/lita/handlers/coffee.rb
CHANGED
@@ -19,18 +19,18 @@ module Lita
|
|
19
19
|
end
|
20
20
|
|
21
21
|
route(
|
22
|
-
/^\(coffee\)(\s+\-[bcdgist]?|\s+\+)?(.*)/i,
|
22
|
+
/^\(?coffee\)?(\s+\-[bcdgist]?|\s+\+)?(.*)/i,
|
23
23
|
:coffee,
|
24
24
|
help: {
|
25
|
-
'
|
26
|
-
'
|
27
|
-
'
|
28
|
-
'
|
29
|
-
'
|
30
|
-
'
|
31
|
-
'
|
32
|
-
'
|
33
|
-
'
|
25
|
+
'coffee' => "List the orders for your group",
|
26
|
+
'coffee -i' => "Display your profile",
|
27
|
+
'coffee -s Colombian Filter' => "Set your coffee preference",
|
28
|
+
'coffee -g Cool Kids' => "Change your group",
|
29
|
+
'coffee +' => "Order a coffee",
|
30
|
+
'coffee -c' => "Cancel your order",
|
31
|
+
'coffee -b You owe me one!' => "Buy coffee for your group, clear the orders and send a message to each coffee drinker",
|
32
|
+
'coffee -t' => "Display system settings",
|
33
|
+
'coffee -d' => "Delete you from the coffee system",
|
34
34
|
}
|
35
35
|
)
|
36
36
|
|
@@ -50,71 +50,71 @@ module Lita
|
|
50
50
|
group = get_group(my_user)
|
51
51
|
|
52
52
|
# Setup new users
|
53
|
-
response.reply("Welcome to
|
53
|
+
response.reply("Welcome to coffee! You have been added to the #{@@DEFAULT_GROUP} group with an order of #{@@DEFAULT_COFFEE}. Type help coffee for help.") if initialize_user_redis(my_user) == :new_user
|
54
54
|
|
55
55
|
# Retrieve my preference
|
56
56
|
if get_settings
|
57
57
|
settings = get_settings(my_user)
|
58
|
-
response.reply("Your current
|
58
|
+
response.reply("Your current coffee is #{settings['coffee']}. You are in the #{settings['group']} group.")
|
59
59
|
# Set my coffee
|
60
60
|
elsif set_coffee
|
61
61
|
result = set_coffee(my_user,preference)
|
62
62
|
if result == "OK"
|
63
|
-
response.reply("
|
63
|
+
response.reply("Coffee set to #{preference}")
|
64
64
|
else
|
65
|
-
response.reply("(sadpanda) Failed to set your
|
65
|
+
response.reply("(sadpanda) Failed to set your coffee for some reason: #{result.inspect}")
|
66
66
|
end
|
67
67
|
# Delete me altogether
|
68
68
|
elsif delete_me
|
69
69
|
result = delete_user(my_user)
|
70
70
|
if result == 1
|
71
|
-
response.reply("You have been deleted from
|
71
|
+
response.reply("You have been deleted from coffee")
|
72
72
|
else
|
73
|
-
response.reply("(sadpanda) Failed to delete you from
|
73
|
+
response.reply("(sadpanda) Failed to delete you from coffee for some reason: #{result.inspect}")
|
74
74
|
end
|
75
75
|
# Change my coffee group
|
76
76
|
elsif change_group
|
77
77
|
result = set_coffee_group(my_user,preference)
|
78
78
|
if result == "OK"
|
79
|
-
response.reply("
|
79
|
+
response.reply("Group set to #{preference}")
|
80
80
|
else
|
81
|
-
response.reply("(sadpanda) Failed to set your
|
81
|
+
response.reply("(sadpanda) Failed to set your coffee group for some reason: #{result.inspect}")
|
82
82
|
end
|
83
83
|
# Order a coffee
|
84
84
|
elsif order
|
85
85
|
result = order_coffee(my_user)
|
86
86
|
if result == "OK"
|
87
|
-
response.reply("Ordered you a
|
87
|
+
response.reply("Ordered you a coffee")
|
88
88
|
else
|
89
|
-
response.reply("(sadpanda) Failed to order your
|
89
|
+
response.reply("(sadpanda) Failed to order your coffee for some reason: #{result.inspect}")
|
90
90
|
end
|
91
91
|
# Cancel a coffee
|
92
92
|
elsif cancel
|
93
93
|
result = cancel_coffee(my_user)
|
94
94
|
if result == "OK"
|
95
|
-
response.reply("Cancelled your
|
95
|
+
response.reply("Cancelled your coffee")
|
96
96
|
else
|
97
|
-
response.reply("(sadpanda) Failed to cancel your
|
97
|
+
response.reply("(sadpanda) Failed to cancel your coffee for some reason: #{result.inspect}")
|
98
98
|
end
|
99
99
|
# Buy the coffees and clear the orders
|
100
100
|
elsif buy_coffee
|
101
|
-
response.reply("Thanks for ordering the
|
101
|
+
response.reply("Thanks for ordering the coffee for #{group}!\n--")
|
102
102
|
get_orders(group).each do |order|
|
103
103
|
response.reply("#{order}: #{get_coffee(order)}")
|
104
104
|
send_coffee_message(order,my_user,preference) unless order == my_user
|
105
105
|
end
|
106
106
|
result = clear_orders(group)
|
107
107
|
if result == "OK"
|
108
|
-
response.reply("Cleared all
|
108
|
+
response.reply("Cleared all orders for #{group}")
|
109
109
|
else
|
110
|
-
response.reply("(sadpanda) Failed to clear the
|
110
|
+
response.reply("(sadpanda) Failed to clear the orders for some reason: #{result.inspect}")
|
111
111
|
end
|
112
112
|
# tests
|
113
113
|
elsif system_settings
|
114
114
|
response.reply("Default coffee: #{@@DEFAULT_COFFEE}, Default group: #{@@DEFAULT_GROUP}")
|
115
115
|
# List the orders
|
116
116
|
else
|
117
|
-
response.reply("Current
|
117
|
+
response.reply("Current orders for #{group}:-\n--")
|
118
118
|
get_orders(group).each do |order|
|
119
119
|
response.reply("#{order}: #{get_coffee(order)}")
|
120
120
|
end
|
@@ -192,7 +192,7 @@ module Lita
|
|
192
192
|
def send_coffee_message(user,purchaser,message)
|
193
193
|
myuser = Lita::User.find_by_name(user)
|
194
194
|
msg = Lita::Message.new(robot,'',Lita::Source.new(user: myuser))
|
195
|
-
msg.reply("#{purchaser} has bought you a
|
195
|
+
msg.reply("#{purchaser} has bought you a coffee!")
|
196
196
|
msg.reply(message) # what happens if message is nil?
|
197
197
|
rescue => e
|
198
198
|
Lita.logger.error("Coffee#send_coffee_message raised #{e.class}: #{e.message}\n#{e.backtrace}")
|
data/lita-coffee.gemspec
CHANGED
@@ -1,71 +1,90 @@
|
|
1
1
|
require "spec_helper"
|
2
|
-
#TODO: write this stuff
|
3
2
|
|
4
3
|
describe Lita::Handlers::Coffee, lita_handler: true do
|
5
4
|
|
6
|
-
it { is_expected.to route('(coffee).to(:coffee)
|
5
|
+
it { is_expected.to route('(coffee)').to(:coffee) }
|
6
|
+
it { is_expected.to route('coffee').to(:coffee) }
|
7
7
|
|
8
8
|
describe '#coffee' do
|
9
9
|
before{robot.trigger(:loaded)}
|
10
10
|
|
11
11
|
it 'sets up a user if they do not exist already' do
|
12
|
-
send_message("
|
13
|
-
expect(replies.first).to start_with("Welcome to
|
12
|
+
send_message("coffee")
|
13
|
+
expect(replies.first).to start_with("Welcome to coffee!")
|
14
14
|
end
|
15
15
|
|
16
16
|
it 'lists the current coffee orders if no options received' do
|
17
|
-
send_message("
|
18
|
-
expect(replies.last).to start_with("Current
|
17
|
+
send_message("coffee")
|
18
|
+
expect(replies.last).to start_with("Current orders")
|
19
19
|
end
|
20
20
|
|
21
21
|
it 'orders me a coffee if I ask it!' do
|
22
|
-
send_message("
|
23
|
-
expect(replies.last).to eq("Ordered you a
|
22
|
+
send_message("coffee +")
|
23
|
+
expect(replies.last).to eq("Ordered you a coffee")
|
24
|
+
send_message("coffee")
|
25
|
+
expect(replies.last).to start_with("Test User:")
|
24
26
|
end
|
25
27
|
|
26
28
|
it 'displays my profile settings' do
|
27
|
-
send_message("
|
28
|
-
expect(replies.last).to start_with("Your current
|
29
|
+
send_message("coffee -i")
|
30
|
+
expect(replies.last).to start_with("Your current coffee is")
|
29
31
|
end
|
30
32
|
|
31
33
|
it 'sets my coffee preference' do
|
32
|
-
send_message("
|
33
|
-
expect(replies.last).to eq("
|
34
|
-
send_message("
|
35
|
-
expect(replies.last).to start_with("Your current
|
34
|
+
send_message("coffee -s decaf soy cappuccino")
|
35
|
+
expect(replies.last).to eq("Coffee set to decaf soy cappuccino")
|
36
|
+
send_message("coffee -i")
|
37
|
+
expect(replies.last).to start_with("Your current coffee is decaf soy cappuccino")
|
36
38
|
end
|
37
39
|
|
38
40
|
it 'changes my coffee group' do
|
39
|
-
send_message("
|
40
|
-
expect(replies.last).to eq("
|
41
|
-
send_message("
|
41
|
+
send_message("coffee -g testing team")
|
42
|
+
expect(replies.last).to eq("Group set to testing team")
|
43
|
+
send_message("coffee -i")
|
42
44
|
expect(replies.last).to end_with("You are in the testing team group.")
|
43
45
|
end
|
44
46
|
|
45
47
|
it 'cancels my order' do
|
46
|
-
send_message("
|
47
|
-
|
48
|
+
send_message("coffee +")
|
49
|
+
order_a_coffee('stu')
|
50
|
+
order_a_coffee('joel')
|
51
|
+
expect(coffees_in_the_queue).to eq(3)
|
52
|
+
send_message("coffee -c")
|
53
|
+
expect(replies.last).to eq("Cancelled your coffee") #TODO: check that my name has been removed from the queue
|
54
|
+
expect(coffees_in_the_queue).to eq(2)
|
48
55
|
end
|
49
56
|
|
50
57
|
it 'deletes me from the system' do
|
51
|
-
send_message("
|
52
|
-
expect(replies.last).to eq("You have been deleted from
|
58
|
+
send_message("coffee -d")
|
59
|
+
expect(replies.last).to eq("You have been deleted from coffee")
|
53
60
|
end
|
54
61
|
|
55
62
|
it 'displays default settings' do
|
56
|
-
send_message("
|
63
|
+
send_message("coffee -t")
|
57
64
|
expect(replies.last).to start_with("Default coffee:")
|
58
65
|
end
|
59
66
|
|
60
67
|
it 'buys the coffees and clears the queue' do
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
68
|
+
order_a_coffee('stu')
|
69
|
+
order_a_coffee('joel')
|
70
|
+
send_message("coffee -b")
|
71
|
+
expect(replies.last).to start_with("Cleared all orders")
|
72
|
+
send_message("coffee")
|
65
73
|
expect(replies.last).to end_with("--")
|
74
|
+
expect(replies.select{|x| x == "Test User has bought you a coffee!"}.count).to eq(2)
|
66
75
|
end
|
67
76
|
|
68
|
-
|
77
|
+
def order_a_coffee(user)
|
78
|
+
user = Lita::User.create(1,name: user)
|
79
|
+
send_message('coffee +', as: user)
|
80
|
+
end
|
81
|
+
|
82
|
+
def coffees_in_the_queue
|
83
|
+
send_message('coffee')
|
84
|
+
replies.reverse.slice(0,replies.reverse.index{|x| ( x =~ /^Current orders/ ) == 0}).count
|
85
|
+
end
|
86
|
+
|
87
|
+
|
69
88
|
|
70
89
|
|
71
90
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-coffee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stuart Auld
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|