lita-enhance 0.9.2 → 0.9.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/lita/handlers/enhance.rb +21 -61
- data/lib/lita/handlers/enhance/enhancer.rb +1 -1
- data/lita-enhance.gemspec +1 -1
- data/spec/lita/handlers/enhance/enhancer_example.rb +2 -2
- data/spec/lita/handlers/enhance_spec.rb +34 -10
- data/spec/spec_helper.rb +2 -0
- data/templates/{enhance.erb → failed.erb} +0 -0
- data/templates/failed.hipchat.erb +1 -0
- data/templates/failed.slack.erb +1 -0
- data/templates/mono.erb +1 -0
- data/templates/{enhance.hipchat.erb → mono.hipchat.erb} +0 -0
- data/templates/{enhance.slack.erb → mono.slack.erb} +0 -0
- data/templates/no_change.erb +1 -0
- data/templates/no_change.hipchat.erb +1 -0
- data/templates/no_change.slack.erb +1 -0
- data/templates/success.erb +1 -0
- data/templates/success.hipchat.erb +1 -0
- data/templates/success.slack.erb +1 -0
- metadata +14 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 856a763659c54a676c1516beac9bd6e3f6bfcc9b
|
4
|
+
data.tar.gz: 6254798d459f7209b75c0513cff2f3eb29d30a3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da9f0f937afced190dbba4e7625215646bb1f87a75a1778fb6459fe8acb10cfa909b94dc44da0823a20ec4ba1e5cb51c6cd4f6677acd616bd9fdabf02261552f
|
7
|
+
data.tar.gz: a51619607f7538fcb21f08f54b40f61b28f7caabef17feb5f1431c321cdcd4eee011e03b5d6717608cd3eec91b2bf2be73f4f404462aa26c27f8f3e3ebcdc4ea
|
data/README.md
CHANGED
@@ -31,7 +31,7 @@ Machine details are obtained by indexing database of machine assets. Right now o
|
|
31
31
|
|
32
32
|
```
|
33
33
|
you> enhance lvl:2 old-box01
|
34
|
-
lita>
|
34
|
+
lita> ?old-box01 (us-east-1)?
|
35
35
|
```
|
36
36
|
|
37
37
|
[And for fun](https://www.youtube.com/watch?v=Vxq9yj2pVWk), you can implicitly enhance previously enhanced text by just sending ```enhance```. The string to enhance is retained separately in each room that the enhance string was sent.
|
@@ -70,9 +70,9 @@ module Lita
|
|
70
70
|
after(0) do
|
71
71
|
begin
|
72
72
|
lock_and_refresh_index
|
73
|
-
response.reply(success(t 'refresh.success'))
|
73
|
+
response.reply(render_template('success', message: (t 'refresh.success')))
|
74
74
|
rescue => e
|
75
|
-
response.reply(failed(t 'refresh.failed'))
|
75
|
+
response.reply(render_template('failed', message: (t 'refresh.failed')))
|
76
76
|
log.info { "#{e.message}\n#{e.backtrace.join("\n")}" }
|
77
77
|
end
|
78
78
|
end
|
@@ -97,26 +97,26 @@ module Lita
|
|
97
97
|
end
|
98
98
|
|
99
99
|
unless blurry_string
|
100
|
-
response.reply(failed(t 'enhance.message_required'))
|
100
|
+
response.reply(render_template('failed', message: (t 'enhance.message_required')))
|
101
101
|
return
|
102
102
|
end
|
103
103
|
|
104
104
|
level = session.last_level + 1 unless level
|
105
105
|
|
106
106
|
if level > max_level
|
107
|
-
response.reply(failed(t 'enhance.level_too_high', max_level: max_level))
|
107
|
+
response.reply(render_template('failed', message: (t 'enhance.level_too_high', max_level: max_level)))
|
108
108
|
return
|
109
109
|
elsif level < 1
|
110
|
-
response.reply(failed(t 'enhance.level_too_low', max_level: max_level))
|
110
|
+
response.reply(render_template('failed', message: (t 'enhance.level_too_low', max_level: max_level)))
|
111
111
|
return
|
112
112
|
end
|
113
113
|
|
114
114
|
enhanced_message = session.enhance!(blurry_string, level)
|
115
115
|
|
116
116
|
if enhanced_message != blurry_string
|
117
|
-
response.reply(render_template('
|
117
|
+
response.reply(render_template('mono', message: enhanced_message))
|
118
118
|
else
|
119
|
-
response.reply(no_change(t 'enhance.nothing_to_enhance'))
|
119
|
+
response.reply(render_template('no_change', message: (t 'enhance.nothing_to_enhance')))
|
120
120
|
end
|
121
121
|
end
|
122
122
|
|
@@ -132,68 +132,28 @@ module Lita
|
|
132
132
|
end
|
133
133
|
|
134
134
|
private
|
135
|
-
# This mutex must be obtained to refresh the index
|
136
|
-
REFRESH_MUTEX = Mutex.new unless defined?(REFRESH_MUTEX)
|
137
135
|
|
138
|
-
|
139
|
-
|
136
|
+
# This mutex must be obtained to refresh the index
|
137
|
+
REFRESH_MUTEX ||= Mutex.new
|
140
138
|
|
141
|
-
|
142
|
-
|
143
|
-
@@chef_indexer.refresh
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
|
-
def last_message_key(response)
|
148
|
-
response.message.source.room || response.message.source.user.id
|
149
|
-
end
|
150
|
-
|
151
|
-
def max_level
|
152
|
-
@@enhancers.map {|x| x.max_level }.max
|
153
|
-
end
|
154
|
-
|
155
|
-
def adapter
|
156
|
-
if Lita.respond_to?(:config)
|
157
|
-
Lita.config.robot.adapter
|
158
|
-
elsif robot.respond_to?(:config)
|
159
|
-
robot.config.robot.adapter
|
160
|
-
else
|
161
|
-
:unknown
|
162
|
-
end
|
163
|
-
end
|
139
|
+
# This mutex must be obtains to update the index with new data, or to use the index to enhance some text
|
140
|
+
INDEX_MUTEX ||= Mutex.new
|
164
141
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
when :hipchat
|
169
|
-
"(successful) #{message}"
|
170
|
-
else
|
171
|
-
message
|
172
|
-
end
|
142
|
+
def lock_and_refresh_index
|
143
|
+
REFRESH_MUTEX.synchronize do
|
144
|
+
@@chef_indexer.refresh
|
173
145
|
end
|
146
|
+
end
|
174
147
|
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
when :hipchat
|
179
|
-
"(failed) #{message}"
|
180
|
-
else
|
181
|
-
message
|
182
|
-
end
|
183
|
-
end
|
148
|
+
def last_message_key(response)
|
149
|
+
response.message.source.room || response.message.source.user.id
|
150
|
+
end
|
184
151
|
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
when :hipchat
|
189
|
-
"(nothingtodohere) #{message}"
|
190
|
-
else
|
191
|
-
message
|
192
|
-
end
|
193
|
-
end
|
152
|
+
def max_level
|
153
|
+
@@enhancers.map {|x| x.max_level }.max
|
154
|
+
end
|
194
155
|
end
|
195
156
|
|
196
|
-
|
197
157
|
Lita.register_handler(Enhance)
|
198
158
|
end
|
199
159
|
end
|
data/lita-enhance.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "lita-enhance"
|
3
|
-
spec.version = "0.9.
|
3
|
+
spec.version = "0.9.3"
|
4
4
|
spec.authors = ["Doug Barth"]
|
5
5
|
spec.email = ["doug@pagerduty.com"]
|
6
6
|
spec.description = %q{A Lita handler that enhances text by replacing opaque machine identifiers with that machine's hostname}
|
@@ -10,7 +10,7 @@ RSpec.shared_examples 'an enhancer' do
|
|
10
10
|
node = nodes.first
|
11
11
|
node.last_seen_at = Time.now - 24 * 60 * 60
|
12
12
|
|
13
|
-
expect(enhancer.render(node, 1)).to eq('
|
14
|
-
expect(enhancer.render(node, 2)).to eq('
|
13
|
+
expect(enhancer.render(node, 1)).to eq('?box01?')
|
14
|
+
expect(enhancer.render(node, 2)).to eq('?box01 (us-west-2b)?')
|
15
15
|
end
|
16
16
|
end
|
@@ -3,18 +3,20 @@ require "spec_helper"
|
|
3
3
|
describe Lita::Handlers::Enhance, lita_handler: true do
|
4
4
|
include_context 'indexed'
|
5
5
|
|
6
|
+
before { allow(described_class).to receive(:new).and_return(subject) }
|
7
|
+
|
6
8
|
# Make sure that we are indexing into the same Redis namespace that the handler uses.
|
7
9
|
let(:redis) { subject.redis }
|
8
10
|
|
9
|
-
let(:alice) { Lita::User.create(
|
11
|
+
let(:alice) { Lita::User.create('2', name: 'Alice') }
|
10
12
|
|
11
|
-
it {
|
12
|
-
it {
|
13
|
+
it { is_expected.to route_command('refresh enhance').to(:refresh) }
|
14
|
+
it { is_expected.to route_command('enhance stats').to(:stats) }
|
13
15
|
|
14
|
-
it {
|
15
|
-
it {
|
16
|
-
it {
|
17
|
-
it {
|
16
|
+
it { is_expected.to route_command('enhance 127.0.0.1').to(:enhance) }
|
17
|
+
it { is_expected.to route_command("enhance lvl:1 blah\nblah").to(:enhance) }
|
18
|
+
it { is_expected.to route_command('enhance').to(:enhance) }
|
19
|
+
it { is_expected.to route_command('enhance lvl:2').to(:enhance) }
|
18
20
|
|
19
21
|
it 'should show stats about itself' do
|
20
22
|
send_command('enhance stats')
|
@@ -103,18 +105,40 @@ describe Lita::Handlers::Enhance, lita_handler: true do
|
|
103
105
|
|
104
106
|
describe 'under Slack' do
|
105
107
|
before do
|
106
|
-
|
108
|
+
allow_any_instance_of(Lita::TemplateResolver).to receive(:adapter_name).and_return(:slack)
|
109
|
+
end
|
110
|
+
|
111
|
+
it 'should mark success using an emoji' do
|
112
|
+
expect(subject).to receive(:lock_and_refresh_index)
|
113
|
+
|
114
|
+
send_command('refresh enhance')
|
115
|
+
|
116
|
+
# Give the timer a chance to run
|
117
|
+
sleep(0.5)
|
118
|
+
|
119
|
+
expect(replies).to include('Will refresh enhance index...')
|
120
|
+
expect(replies).to include(':heavy_check_mark: Refreshed enhance index')
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'mark failure using an emoji' do
|
124
|
+
send_command('enhance')
|
125
|
+
expect(replies).to include(':heavy_multiplication_x: I need a string to enhance')
|
107
126
|
end
|
108
127
|
|
109
|
-
it 'should
|
128
|
+
it 'should use backticks to render mono text' do
|
110
129
|
send_command('enhance 54.214.188.37')
|
111
130
|
expect(replies).to include('```*box01*```')
|
112
131
|
end
|
132
|
+
|
133
|
+
it 'should use emoji to call out when nothing was found to enhance' do
|
134
|
+
send_command('enhance bubbles')
|
135
|
+
expect(replies).to include(':heavy_minus_sign: I could not find anything to enhance')
|
136
|
+
end
|
113
137
|
end
|
114
138
|
|
115
139
|
describe 'under HipChat' do
|
116
140
|
before do
|
117
|
-
|
141
|
+
allow_any_instance_of(Lita::TemplateResolver).to receive(:adapter_name).and_return(:hipchat)
|
118
142
|
end
|
119
143
|
|
120
144
|
it 'should mark success using an emoji' do
|
data/spec/spec_helper.rb
CHANGED
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
(failed) <%= @message %>
|
@@ -0,0 +1 @@
|
|
1
|
+
:heavy_multiplication_x: <%= @message %>
|
data/templates/mono.erb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
<%= @message %>
|
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= @message %>
|
@@ -0,0 +1 @@
|
|
1
|
+
(nothingtodohere) <%= @message %>
|
@@ -0,0 +1 @@
|
|
1
|
+
:heavy_minus_sign: <%= @message %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= @message %>
|
@@ -0,0 +1 @@
|
|
1
|
+
(successful) <%= @message %>
|
@@ -0,0 +1 @@
|
|
1
|
+
:heavy_check_mark: <%= @message %>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lita-enhance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Doug Barth
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: lita
|
@@ -123,9 +123,18 @@ files:
|
|
123
123
|
- spec/lita/handlers/enhance/session_spec.rb
|
124
124
|
- spec/lita/handlers/enhance_spec.rb
|
125
125
|
- spec/spec_helper.rb
|
126
|
-
- templates/
|
127
|
-
- templates/
|
128
|
-
- templates/
|
126
|
+
- templates/failed.erb
|
127
|
+
- templates/failed.hipchat.erb
|
128
|
+
- templates/failed.slack.erb
|
129
|
+
- templates/mono.erb
|
130
|
+
- templates/mono.hipchat.erb
|
131
|
+
- templates/mono.slack.erb
|
132
|
+
- templates/no_change.erb
|
133
|
+
- templates/no_change.hipchat.erb
|
134
|
+
- templates/no_change.slack.erb
|
135
|
+
- templates/success.erb
|
136
|
+
- templates/success.hipchat.erb
|
137
|
+
- templates/success.slack.erb
|
129
138
|
homepage: https://github.com/PagerDuty/lita-enhance
|
130
139
|
licenses:
|
131
140
|
- MIT
|