lita-enhance 0.9.2 → 0.9.3
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 +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
|