lita-envy 0.1.5 → 0.1.6
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/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
|