lita-envy 0.1.5 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/lita/handlers/envy.rb +44 -30
- data/lita-envy.gemspec +1 -1
- data/locales/en.yml +28 -0
- data/spec/lita/handlers/envy_spec.rb +42 -12
- 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: 108cbd88f65699d4b6c14c1ff9f33d89d29c3fd9
|
4
|
+
data.tar.gz: 07b6e07d268f524dfc3ac4d956437464b92bb3dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 834ba666981125994210cc15181bbb95aeda785f0e12c7364bc4f2d53e8b2d42297c82ff95ab40f58c1cb9ebd9d8b3d4413270d1e474bd6c077a469f9dbe5ef5
|
7
|
+
data.tar.gz: 6687c4f34e64243c035bb698cb4c5ee706eb7225ec4be1caf80418d7cc776477b3e5fc31ba5f65f7b46536fe789db471fc761c0e36381a1d39a0fe3f21fbb633
|
data/lib/lita/handlers/envy.rb
CHANGED
@@ -16,29 +16,33 @@ module Lita
|
|
16
16
|
|
17
17
|
def claim_environment(response)
|
18
18
|
env_id = response.matches.first.first
|
19
|
-
current_user
|
20
|
-
|
19
|
+
case current_user(env_id)
|
20
|
+
when nil
|
21
21
|
redis.hset(key(env_id), 'user', response.user.name)
|
22
|
-
response.reply('
|
23
|
-
|
24
|
-
|
22
|
+
response.reply t('claim_environment.success')
|
23
|
+
when ''
|
24
|
+
redis.hset(key(env_id), 'user', response.user.name)
|
25
|
+
response.reply t('claim_environment.success')
|
26
|
+
when response.user.name
|
27
|
+
response.reply t('claim_environment.failure.env_in_use_by_user', :env_id => env_id)
|
25
28
|
else
|
26
|
-
response.reply(
|
29
|
+
response.reply t('claim_environment.failure.env_in_use_by_other_user', :env_id => env_id, :user => current_user(env_id))
|
27
30
|
end
|
28
31
|
end
|
29
32
|
|
30
33
|
def release_environment(response)
|
31
34
|
env_id = response.matches.first.first
|
32
|
-
current_user
|
33
|
-
|
35
|
+
case current_user(env_id)
|
36
|
+
when nil
|
37
|
+
response.reply t('release_environment.failure.env_unknown', :env_id => env_id)
|
38
|
+
when ''
|
39
|
+
response.reply t('release_environment.failure.env_not_in_use_by_user', :env_id => env_id)
|
40
|
+
when response.user.name
|
34
41
|
redis.hset(key(env_id), 'user', nil)
|
35
|
-
response.reply('
|
36
|
-
elsif current_user.nil? || current_user.empty?
|
37
|
-
response.reply("Hmm, you are not currently using #{env_id}")
|
42
|
+
response.reply t('release_environment.success')
|
38
43
|
else
|
39
|
-
response.reply(
|
44
|
+
response.reply t('release_environment.failure.env_in_use_by_other_user', :env_id => env_id, :user => current_user(env_id))
|
40
45
|
end
|
41
|
-
|
42
46
|
end
|
43
47
|
|
44
48
|
def list_environments(response)
|
@@ -50,36 +54,42 @@ module Lita
|
|
50
54
|
line += " (#{user})" unless user.empty?
|
51
55
|
lines << line
|
52
56
|
end
|
53
|
-
|
57
|
+
if lines.any?
|
58
|
+
response.reply(lines.join("\n"))
|
59
|
+
else
|
60
|
+
response.reply t('list_environments.failure.no_environments')
|
61
|
+
end
|
54
62
|
end
|
55
63
|
|
56
64
|
def forget_environment(response)
|
57
65
|
env_id = response.matches.first.first
|
58
|
-
current_user
|
59
|
-
|
60
|
-
response.reply(
|
61
|
-
|
62
|
-
response.reply("Hmm, I do not know about #{env_id}")
|
63
|
-
elsif current_user.empty?
|
66
|
+
case current_user(env_id)
|
67
|
+
when nil
|
68
|
+
response.reply t('forget_environment.failure.env_unknown', :env_id => env_id)
|
69
|
+
when ''
|
64
70
|
redis.del(key(env_id))
|
65
|
-
response.reply('
|
71
|
+
response.reply t('forget_environment.success')
|
72
|
+
when response.user.name
|
73
|
+
response.reply t('forget_environment.failure.env_in_use_by_user', :env_id => env_id)
|
66
74
|
else
|
67
|
-
response.reply(
|
75
|
+
response.reply t('forget_environment.failure.env_in_use_by_other_user', :env_id => env_id, :user => current_user(env_id))
|
68
76
|
end
|
69
77
|
end
|
70
78
|
|
71
79
|
def claim_used_environment(response)
|
72
80
|
env_id, specified_user = response.matches.first
|
73
|
-
current_user
|
74
|
-
|
81
|
+
case current_user(env_id)
|
82
|
+
when nil
|
83
|
+
response.reply t('claim_used_environment.failure.env_unknown', :env_id => env_id)
|
84
|
+
when ''
|
85
|
+
response.reply t('claim_used_environment.failure.env_not_in_use', :env_id => env_id)
|
86
|
+
when response.user.name
|
87
|
+
response.reply t('claim_used_environment.failure.env_in_use_by_user', :env_id => env_id)
|
88
|
+
when specified_user
|
75
89
|
redis.hset(key(env_id), 'user', response.user.name)
|
76
|
-
response.reply('
|
77
|
-
elsif current_user.nil? or current_user.empty?
|
78
|
-
response.reply("Hmm, #{env_id} is not currently in use")
|
79
|
-
elsif current_user == response.user.name
|
80
|
-
response.reply("Hmm, you are already using #{env_id}")
|
90
|
+
response.reply t('claim_used_environment.success')
|
81
91
|
else
|
82
|
-
response.reply(
|
92
|
+
response.reply t('claim_used_environment.failure.env_in_use_by_user_other_than_specified_one', :env_id => env_id, :user => current_user(env_id), :specified_user => specified_user)
|
83
93
|
end
|
84
94
|
end
|
85
95
|
|
@@ -89,6 +99,10 @@ module Lita
|
|
89
99
|
['environments', config.namespace, env_id].join(':')
|
90
100
|
end
|
91
101
|
|
102
|
+
def current_user(env_id)
|
103
|
+
redis.hget(key(env_id), 'user')
|
104
|
+
end
|
105
|
+
|
92
106
|
Lita.register_handler(self)
|
93
107
|
end
|
94
108
|
end
|
data/lita-envy.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "lita-envy"
|
3
|
-
spec.version = "0.1.
|
3
|
+
spec.version = "0.1.6"
|
4
4
|
spec.authors = ["Ingo Weiss"]
|
5
5
|
spec.email = ["ingo@ingoweiss.com"]
|
6
6
|
spec.description = "Helps with management of environment ussage. Adds commands for claiming and releasing environments"
|
data/locales/en.yml
CHANGED
@@ -2,3 +2,31 @@ en:
|
|
2
2
|
lita:
|
3
3
|
handlers:
|
4
4
|
envy:
|
5
|
+
claim_environment:
|
6
|
+
success: ok
|
7
|
+
failure:
|
8
|
+
env_in_use_by_user: "Hmm, you are already using %{env_id}"
|
9
|
+
env_in_use_by_other_user: "Hmm, %{env_id} is currently in use by %{user}"
|
10
|
+
release_environment:
|
11
|
+
success: ok
|
12
|
+
failure:
|
13
|
+
env_unknown: "Hmm, I do not know about %{env_id}"
|
14
|
+
env_not_in_use_by_user: "Hmm, you are not currently using %{env_id}"
|
15
|
+
env_in_use_by_other_user: "Hmm, you are not currently using %{env_id} (%{user} is)"
|
16
|
+
forget_environment:
|
17
|
+
success: ok
|
18
|
+
failure:
|
19
|
+
env_unknown: "Hmm, I do not know about %{env_id}"
|
20
|
+
env_in_use_by_user: "Hmm, you are currently using %{env_id}"
|
21
|
+
env_in_use_by_other_user: "Hmm, %{env_id} is currently in use by %{user}"
|
22
|
+
claim_used_environment:
|
23
|
+
success: ok
|
24
|
+
failure:
|
25
|
+
env_unknown: "Hmm, I do not know about %{env_id}"
|
26
|
+
env_not_in_use: "Hmm, %{env_id} is not currently in use"
|
27
|
+
env_in_use_by_user: "Hmm, you are already using %{env_id}"
|
28
|
+
env_in_use_by_user_other_than_specified_one: "Hmm, %{env_id} is currently in use by %{user}, not %{specified_user}"
|
29
|
+
list_environments:
|
30
|
+
failure:
|
31
|
+
no_environments: "I do not know about any environments yet"
|
32
|
+
|
@@ -177,7 +177,7 @@ describe Lita::Handlers::Envy, lita_handler: true do
|
|
177
177
|
it "should reply with notification" do
|
178
178
|
alicia = Lita::User.create(123, name: "Alicia")
|
179
179
|
send_command('release ENV234', :as => alicia)
|
180
|
-
expect(replies.first).to eq("Hmm,
|
180
|
+
expect(replies.first).to eq("Hmm, I do not know about ENV234")
|
181
181
|
end
|
182
182
|
|
183
183
|
end
|
@@ -186,16 +186,32 @@ describe Lita::Handlers::Envy, lita_handler: true do
|
|
186
186
|
|
187
187
|
describe 'User listing environments' do
|
188
188
|
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
189
|
+
context "with environments recorded" do
|
190
|
+
|
191
|
+
before(:each) do
|
192
|
+
subject.redis.hset('environments:my_project:ENV345', 'user', '')
|
193
|
+
subject.redis.hset('environments:my_project:ENV123', 'user', 'Alicia')
|
194
|
+
subject.redis.hset('environments:my_project:ENV234', 'user', 'Carl')
|
195
|
+
end
|
196
|
+
|
197
|
+
it "should list environments" do
|
198
|
+
send_command('envs')
|
199
|
+
expect(replies.first.split("\n")).to eq([
|
200
|
+
"ENV123 (Alicia)",
|
201
|
+
"ENV234 (Carl)",
|
202
|
+
"ENV345"
|
203
|
+
])
|
204
|
+
end
|
205
|
+
|
206
|
+
end
|
207
|
+
|
208
|
+
context "with no environments recorded" do
|
209
|
+
|
210
|
+
it "should respond with notification" do
|
211
|
+
send_command('envs')
|
212
|
+
expect(replies.first).to eq("I do not know about any environments yet")
|
213
|
+
end
|
214
|
+
|
199
215
|
end
|
200
216
|
|
201
217
|
end
|
@@ -208,7 +224,7 @@ describe Lita::Handlers::Envy, lita_handler: true do
|
|
208
224
|
subject.redis.hset('environments:my_project:ENV345', 'user', '')
|
209
225
|
end
|
210
226
|
|
211
|
-
it "should
|
227
|
+
it "should forget environment" do
|
212
228
|
send_command('forget ENV345')
|
213
229
|
expect(subject.redis.keys).to_not include('environments:my_project:ENV345')
|
214
230
|
end
|
@@ -353,6 +369,20 @@ describe Lita::Handlers::Envy, lita_handler: true do
|
|
353
369
|
|
354
370
|
end
|
355
371
|
|
372
|
+
context "when environment is unknown to bot" do
|
373
|
+
|
374
|
+
before(:each) do
|
375
|
+
subject.redis.del('environments:my_project:ENV123')
|
376
|
+
end
|
377
|
+
|
378
|
+
it "should reply with notification" do
|
379
|
+
carl = Lita::User.create(123, name: "Carl")
|
380
|
+
send_command('wrestle ENV123 from Ben', :as => carl)
|
381
|
+
expect(replies.first).to eq("Hmm, I do not know about ENV123")
|
382
|
+
end
|
383
|
+
|
384
|
+
end
|
385
|
+
|
356
386
|
end
|
357
387
|
|
358
388
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-envy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ingo Weiss
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|