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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 21707c780210a5ded4161bcc0cd5c3ad45ae98bc
4
- data.tar.gz: d3ef0aced19fb250ab90bafed746e306bdbebd78
3
+ metadata.gz: 108cbd88f65699d4b6c14c1ff9f33d89d29c3fd9
4
+ data.tar.gz: 07b6e07d268f524dfc3ac4d956437464b92bb3dd
5
5
  SHA512:
6
- metadata.gz: bee308f93ff9aace074d3404a3e3e9fa04c648671214071a616858566905508bdb77ec051602da7b1c4bc3a89f9e628c675008219453738fe0d0df1b4222b140
7
- data.tar.gz: 7ae0fdb46cf96a83345be094c6184dde2ce284c5f45e71e55f999296af276c813fdbdcd12769f5605a11e9002b67e4f3c9c062e3d4c33edd4041735122ab22ec
6
+ metadata.gz: 834ba666981125994210cc15181bbb95aeda785f0e12c7364bc4f2d53e8b2d42297c82ff95ab40f58c1cb9ebd9d8b3d4413270d1e474bd6c077a469f9dbe5ef5
7
+ data.tar.gz: 6687c4f34e64243c035bb698cb4c5ee706eb7225ec4be1caf80418d7cc776477b3e5fc31ba5f65f7b46536fe789db471fc761c0e36381a1d39a0fe3f21fbb633
@@ -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 = redis.hget(key(env_id), 'user')
20
- if current_user.nil? || current_user.empty?
19
+ case current_user(env_id)
20
+ when nil
21
21
  redis.hset(key(env_id), 'user', response.user.name)
22
- response.reply('ok')
23
- elsif current_user == response.user.name
24
- response.reply("Hmm, you are already using #{env_id}")
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("Hmm, #{env_id} is currently in use by #{current_user}")
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 = redis.hget(key(env_id), 'user')
33
- if current_user == response.user.name
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('ok')
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("Hmm, you are not currently using #{env_id} (#{current_user} is)")
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
- response.reply(lines.join("\n"))
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 = redis.hget(key(env_id), 'user')
59
- if current_user == response.user.name
60
- response.reply("Hmm, you are currently using #{env_id}")
61
- elsif current_user.nil?
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('ok')
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("Hmm, #{env_id} is currently in use by #{current_user}")
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 = redis.hget(key(env_id), 'user')
74
- if specified_user == current_user
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('ok')
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("Hmm, #{env_id} is currently in use by #{current_user}, not #{specified_user}")
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.5"
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, you are not currently using ENV234")
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
- it "should list environments" do
190
- subject.redis.hset('environments:my_project:ENV123', 'user', 'Alicia')
191
- subject.redis.hset('environments:my_project:ENV234', 'user', 'Carl')
192
- subject.redis.hset('environments:my_project:ENV345', 'user', '')
193
- send_command('envs')
194
- expect(replies.first.split("\n")).to eq([
195
- "ENV123 (Alicia)",
196
- "ENV234 (Carl)",
197
- "ENV345"
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 forgetironments" do
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.5
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-03 00:00:00.000000000 Z
11
+ date: 2016-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lita