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 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