lita-conferenz 1.0.2 → 1.0.3

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: c01edae6597a11d821cb3584499b884aea18bd30
4
- data.tar.gz: d9def971f5d6708a941621b1adbd9d3b3717b4ae
3
+ metadata.gz: 8bc840a09d0293f6970b379a6c2f6d008ea47fd4
4
+ data.tar.gz: 628b0f02d9a73f7a0c97bc3ecf173049090859bf
5
5
  SHA512:
6
- metadata.gz: 940ae2080b798b0dccde2859f84bc8ef737ebb518d145cfdc6c038040f8202761162a99d8dfc417bc716b358815023791aae827d5335d3728da1ee8a8cc6d7b2
7
- data.tar.gz: 177610688810155fb8acbe14e6e8d64777a6fe14490998854c79969102136b16f97b5383edffae217d1fdc837ca92806c3e1e400e7ae73b6b2629d734974a9b5
6
+ metadata.gz: 7b19d26b73be4cc5747e69df2cc7188aa8b79af4dde33a0b86733daa9230a15cb2d076ba8d3d5b7e21a9bf603dcad2b6250165f53630655a9e66b73cbb46f86a
7
+ data.tar.gz: 759de86aaaf8b84429bc836bf935d1f575aedd911930e3313686eace8d41087703323067d8b98dd563b5fd3cf1eafef9b85563442486631e1dcc95a9d62d5575
@@ -127,21 +127,21 @@ module Lita::Handlers::Conferenz
127
127
 
128
128
  def define_static_routes
129
129
  self.class.route(
130
- %r{^conferenz\s+worst},
130
+ %r{^conferenz\s+niche},
131
131
  :list_worst,
132
132
  command: true,
133
133
  help: { t("help.list_worst_key") => t("help.list_worst_value") }
134
134
  )
135
135
 
136
136
  self.class.route(
137
- %r{^conferenz\s+best},
137
+ %r{^conferenz\s+popular},
138
138
  :list_best,
139
139
  command: true,
140
140
  help: { t("help.list_best_key") => t("help.list_best_value") }
141
141
  )
142
142
 
143
143
  self.class.route(
144
- %r{^conferenz\s+modified\s+.+},
144
+ %r{^conferenz\s+attendees\s+.+},
145
145
  :modified,
146
146
  command: true,
147
147
  help: { t("help.modified_key") => t("help.modified_value") }
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "lita-conferenz"
3
- spec.version = "1.0.2"
3
+ spec.version = "1.0.3"
4
4
  spec.authors = ["Piotr Limanowski"]
5
5
  spec.email = ["plimanowski+conferenz@gmail.com"]
6
6
  spec.description = %q{A Lita handler for tracking conferences attendance.}
@@ -21,7 +21,7 @@ en:
21
21
  unlink_key: TERM1 -= TERM2
22
22
  unlink_value: Unlinks TERM2 from TERM1.
23
23
  list_worst_key: "conferenz worst [N]"
24
- list_worst_value: Lists the bottom N terms by conferenz. N defaults to 5.
24
+ list_worst_value: Lists the bottom N conferences by conferenz. N defaults to 5.
25
25
  list_best_key: "conferenz best [N]"
26
26
  list_best_value: Lists the top N terms by conferenz. N defaults to 5.
27
27
  modified_key: conferenz modified TERM
@@ -18,9 +18,9 @@ describe Lita::Handlers::Conferenz::Chat, lita_handler: true do
18
18
  it { is_expected.to route("foo++ bar").to(:increment) }
19
19
  it { is_expected.to route("foo-- bar").to(:decrement) }
20
20
  it { is_expected.to route("foo~~").to(:check) }
21
- it { is_expected.to route_command("conferenz best").to(:list_best) }
22
- it { is_expected.to route_command("conferenz worst").to(:list_worst) }
23
- it { is_expected.to route_command("conferenz modified foo").to(:modified) }
21
+ it { is_expected.to route_command("conferenz popular").to(:list_best) }
22
+ it { is_expected.to route_command("conferenz niche").to(:list_worst) }
23
+ it { is_expected.to route_command("conferenz attendees foo").to(:modified) }
24
24
  it do
25
25
  is_expected.to route_command("conferenz delete").with_authorization_for(:karma_admins).to(:delete)
26
26
  end
@@ -140,8 +140,8 @@ describe Lita::Handlers::Conferenz::Chat, lita_handler: true do
140
140
  MSG
141
141
  end
142
142
 
143
- it 'lists the bottom 5 terms when passed "worst"' do
144
- send_command("conferenz worst")
143
+ it 'lists the bottom 5 terms when passed "niche"' do
144
+ send_command("conferenz niche")
145
145
  expect(replies.last).to eq <<-MSG.chomp
146
146
  1. five (-1)
147
147
  2. four (0)
@@ -152,7 +152,7 @@ MSG
152
152
  end
153
153
 
154
154
  it "limits the list to the count passed as the second argument" do
155
- send_command("conferenz best 2")
155
+ send_command("conferenz popular 2")
156
156
  expect(replies.last).to eq <<-MSG.chomp
157
157
  1. one (3)
158
158
  2. two (2)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lita-conferenz
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Limanowski
@@ -111,7 +111,6 @@ files:
111
111
  - lita-conferenz.gemspec
112
112
  - locales/en.yml
113
113
  - spec/lita/handlers/conferenz/chat_spec.rb
114
- - spec/lita/handlers/karma/chat_spec.rb
115
114
  - spec/spec_helper.rb
116
115
  homepage: https://github.com/peel/conferenz
117
116
  licenses:
@@ -140,5 +139,4 @@ specification_version: 4
140
139
  summary: A Lita handler for tracking conferences attendance.
141
140
  test_files:
142
141
  - spec/lita/handlers/conferenz/chat_spec.rb
143
- - spec/lita/handlers/karma/chat_spec.rb
144
142
  - spec/spec_helper.rb
@@ -1,339 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- require "spec_helper"
3
-
4
- describe Lita::Handlers::Conferenz::Chat, lita_handler: true do
5
- let(:payload) { double("payload") }
6
-
7
- prepend_before { registry.register_handler(Lita::Handlers::Conferenz::Config) }
8
-
9
- before do
10
- registry.config.handlers.conferenz.cooldown = nil
11
- registry.config.handlers.conferenz.link_karma_threshold = nil
12
- described_class.routes.clear
13
- subject.define_routes(payload)
14
- end
15
-
16
- it { is_expected.to route("foo++").to(:increment) }
17
- it { is_expected.to route("foo--").to(:decrement) }
18
- it { is_expected.to route("foo++ bar").to(:increment) }
19
- it { is_expected.to route("foo-- bar").to(:decrement) }
20
- it { is_expected.to route("foo~~").to(:check) }
21
- it { is_expected.to route_command("conferenz best").to(:list_best) }
22
- it { is_expected.to route_command("conferenz worst").to(:list_worst) }
23
- it { is_expected.to route_command("conferenz modified foo").to(:modified) }
24
- it do
25
- is_expected.to route_command("conferenz delete").with_authorization_for(:karma_admins).to(:delete)
26
- end
27
- it { is_expected.to route_command("conferenz").to(:list_best) }
28
- it { is_expected.to route_command("foo += bar").to(:link) }
29
- it { is_expected.to route_command("foo += bar++").to(:link) }
30
- it { is_expected.to route_command("foo += bar--").to(:link) }
31
- it { is_expected.to route_command("foo += bar~~").to(:link) }
32
- it { is_expected.to route_command("foo -= bar").to(:unlink) }
33
- it { is_expected.to route_command("foo -= bar++").to(:unlink) }
34
- it { is_expected.to route_command("foo -= bar--").to(:unlink) }
35
- it { is_expected.to route_command("foo -= bar~~").to(:unlink) }
36
- it { is_expected.not_to route("+++++").to(:increment) }
37
- it { is_expected.not_to route("-----").to(:decrement) }
38
- it { is_expected.not_to route("foo++bar").to(:increment) }
39
- it { is_expected.not_to route("foo--bar").to(:decrement) }
40
-
41
- describe "#increment" do
42
- it "increases the term's score by one and says the new score" do
43
- send_message("foo++")
44
- expect(replies.last).to eq("foo: 1")
45
- end
46
-
47
- it "matches multiple terms in one message" do
48
- send_message("foo++ bar++")
49
- expect(replies.last).to eq("foo: 1; bar: 1")
50
- end
51
-
52
- it "doesn't start from zero if the term already has a positive score" do
53
- send_message("foo++")
54
- send_message("foo++")
55
- expect(replies.last).to eq("foo: 2")
56
- end
57
-
58
- it "replies with a warning if term increment is on cooldown" do
59
- registry.config.handlers.karma.cooldown = 10
60
- send_message("foo++")
61
- send_message("foo++")
62
- expect(replies.last).to match(/cannot modify foo/)
63
- end
64
-
65
- it "is case insensitive" do
66
- send_message("foo++")
67
- send_message("FOO++")
68
- expect(replies.last).to eq("foo: 2")
69
- end
70
-
71
- it "handles Unicode word characters" do
72
- send_message("föö++")
73
- expect(replies.last).to eq("föö: 1")
74
- end
75
- end
76
-
77
- describe "#decrement" do
78
- it "decreases the term's score by one and says the new score" do
79
- send_message("foo--")
80
- expect(replies.last).to eq("foo: -1")
81
- end
82
-
83
- it "matches multiple terms in one message" do
84
- send_message("foo-- bar--")
85
- expect(replies.last).to eq("foo: -1; bar: -1")
86
- end
87
-
88
- it "doesn't start from zero if the term already has a positive score" do
89
- send_message("foo++")
90
- send_message("foo--")
91
- expect(replies.last).to eq("foo: 0")
92
- end
93
-
94
- it "replies with a warning if term increment is on cooldown" do
95
- registry.config.handlers.karma.cooldown = 10
96
- send_message("foo--")
97
- send_message("foo--")
98
- expect(replies.last).to match(/cannot modify foo/)
99
- end
100
- end
101
-
102
- describe "#check" do
103
- it "says the term's current score" do
104
- send_message("foo~~")
105
- expect(replies.last).to eq("foo: 0")
106
- end
107
-
108
- it "matches multiple terms in one message" do
109
- send_message("foo~~ bar~~")
110
- expect(replies.last).to eq("foo: 0; bar: 0")
111
- end
112
-
113
- it "doesn't match the same term multiple times in one message" do
114
- send_message("foo~~ foo~~")
115
- expect(replies.size).to eq(1)
116
- end
117
- end
118
-
119
- describe "#list" do
120
- it "replies with a warning if there are no terms" do
121
- send_command("conferenz")
122
- expect(replies.last).to match(/no terms being tracked/)
123
- end
124
-
125
- context "with modified terms" do
126
- before do
127
- send_message(
128
- "one++ one++ one++ two++ two++ three++ four++ four-- five--"
129
- )
130
- end
131
-
132
- it "lists the top 5 terms by default" do
133
- send_command("conferenz")
134
- expect(replies.last).to eq <<-MSG.chomp
135
- 1. one (3)
136
- 2. two (2)
137
- 3. three (1)
138
- 4. four (0)
139
- 5. five (-1)
140
- MSG
141
- end
142
-
143
- it 'lists the bottom 5 terms when passed "worst"' do
144
- send_command("conferenz worst")
145
- expect(replies.last).to eq <<-MSG.chomp
146
- 1. five (-1)
147
- 2. four (0)
148
- 3. three (1)
149
- 4. two (2)
150
- 5. one (3)
151
- MSG
152
- end
153
-
154
- it "limits the list to the count passed as the second argument" do
155
- send_command("conferenz best 2")
156
- expect(replies.last).to eq <<-MSG.chomp
157
- 1. one (3)
158
- 2. two (2)
159
- MSG
160
- end
161
- end
162
- end
163
-
164
- describe "#link" do
165
- it "says that it's linked term 2 to term 1" do
166
- send_command("foo += bar")
167
- expect(replies.last).to eq("bar has been linked to foo.")
168
- end
169
-
170
- it "says that term 2 was already linked to term 1 if it was" do
171
- send_command("foo += bar")
172
- send_command("foo += bar")
173
- expect(replies.last).to eq("bar is already linked to foo.")
174
- end
175
-
176
- it "causes term 1's score to be modified by term 2's" do
177
- send_message("foo++ bar++ baz++")
178
- send_command("foo += bar")
179
- send_command("foo += baz")
180
- send_message("foo~~")
181
- expect(replies.last).to match(
182
- /foo: 3 \(1\), linked to: ba[rz]: 1, ba[rz]: 1/
183
- )
184
- end
185
-
186
- context "when link_karma_threshold is set" do
187
- before do
188
- registry.config.handlers.karma.link_karma_threshold = 1
189
- end
190
-
191
- it "doesn't allow a term to be linked if both are below the threshold" do
192
- send_command("foo += bar")
193
- expect(replies.last).to include("must have less than")
194
- end
195
-
196
- it "doesn't allow a term to be linked if it's below the threshold" do
197
- send_command("foo++")
198
- send_command("foo += bar")
199
- expect(replies.last).to include("must have less than")
200
- end
201
-
202
- it "doesn't allow a term to be linked to another term below the threshold" do
203
- send_command("bar++")
204
- send_command("foo += bar")
205
- expect(replies.last).to include("must have less than")
206
- end
207
-
208
- it "allows links if both terms meet the threshold" do
209
- send_command("foo++ bar++")
210
- send_command("foo += bar")
211
- expect(replies.last).to include("has been linked")
212
- send_command("bar += foo")
213
- expect(replies.last).to include("has been linked")
214
- end
215
-
216
- it "uses the absolute value for terms with negative karma" do
217
- send_command("foo-- bar--")
218
- send_command("foo += bar")
219
- expect(replies.last).to include("has been linked")
220
- send_command("bar += foo")
221
- expect(replies.last).to include("has been linked")
222
- end
223
- end
224
- end
225
-
226
- describe "#unlink" do
227
- it "says that it's unlinked term 2 from term 1" do
228
- send_command("foo += bar")
229
- send_command("foo -= bar")
230
- expect(replies.last).to eq("bar has been unlinked from foo.")
231
- end
232
-
233
- it "says that term 2 was not linked to term 1 if it wasn't" do
234
- send_command("foo -= bar")
235
- expect(replies.last).to eq("bar is not linked to foo.")
236
- end
237
-
238
- it "causes term 1's score to stop being modified by term 2's" do
239
- send_message("foo++ bar++")
240
- send_command("foo += bar")
241
- send_command("foo -= bar")
242
- send_message("foo~~")
243
- expect(replies.last).to eq("foo: 1")
244
- end
245
- end
246
-
247
- describe "#modified" do
248
- it "replies with a message if the term hasn't been modified" do
249
- send_command("conferenz modified foo")
250
- expect(replies.last).to match(/never been modified/)
251
- end
252
-
253
- it "lists users who have modified the given term in count order" do
254
- other_user = Lita::User.create("2", name: "Other User")
255
- send_message("foo++", as: user)
256
- send_message("foo++", as: user)
257
- send_message("foo++", as: other_user)
258
- send_command("conferenz modified foo")
259
- expect(replies.last).to eq("#{user.name}, #{other_user.name}")
260
- end
261
- end
262
-
263
- describe "#delete" do
264
- before do
265
- robot.auth.add_user_to_group!(user, :karma_admins)
266
- end
267
-
268
- it "deletes the term" do
269
- send_message("foo++")
270
- send_command("conferenz delete foo")
271
- expect(replies.last).to eq("foo has been deleted.")
272
- send_message("foo~~")
273
- expect(replies.last).to eq("foo: 0")
274
- end
275
-
276
- it "matches terms exactly, including leading whitespace" do
277
- term = " 'foo bar* 'baz''/ :"
278
- subject.redis.zincrby("terms", 1, term)
279
- send_command("conferenz delete #{term}")
280
- expect(replies.last).to include("has been deleted")
281
- end
282
-
283
- it "clears the modification list" do
284
- send_message("foo++")
285
- send_command("conferenz delete foo")
286
- send_command("conferenz modified foo")
287
- expect(replies.last).to eq("foo has never been modified.")
288
- end
289
-
290
- it "clears the deleted term's links" do
291
- send_command("foo += bar")
292
- send_command("foo += baz")
293
- send_command("conferenz delete foo")
294
- send_message("foo++")
295
- expect(replies.last).to eq("foo: 1")
296
- end
297
-
298
- it "clears links from other terms connected to the deleted term" do
299
- send_command("bar += foo")
300
- send_command("baz += foo")
301
- send_command("conferenz delete foo")
302
- send_message("bar++")
303
- expect(replies.last).to eq("bar: 1")
304
- send_message("baz++")
305
- expect(replies.last).to eq("baz: 1")
306
- end
307
- end
308
-
309
- describe "custom term patterns and normalization" do
310
- before do
311
- registry.config.handlers.karma.term_pattern = /[<:]([^>:]+)[>:]/
312
- registry.config.handlers.karma.term_normalizer = lambda do |term|
313
- term.to_s.downcase.strip.sub(/[<:]([^>:]+)[>:]/, '\1')
314
- end
315
- described_class.routes.clear
316
- subject.define_routes(payload)
317
- end
318
-
319
- it "increments multi-word terms bounded by delimeters" do
320
- send_message(":Some Thing:++")
321
- expect(replies.last).to eq("some thing: 1")
322
- end
323
-
324
- it "increments terms with symbols that are bounded by delimeters" do
325
- send_message("<C++>++")
326
- expect(replies.last).to eq("c++: 1")
327
- end
328
-
329
- it "decrements multi-word terms bounded by delimeters" do
330
- send_message(":Some Thing:--")
331
- expect(replies.last).to eq("some thing: -1")
332
- end
333
-
334
- it "checks multi-word terms bounded by delimeters" do
335
- send_message(":Some Thing:~~")
336
- expect(replies.last).to eq("some thing: 0")
337
- end
338
- end
339
- end