lita-restart-elvis 0.1.0
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 +7 -0
- data/.gitignore +22 -0
- data/.travis.yml +8 -0
- data/Gemfile +3 -0
- data/README.md +22 -0
- data/Rakefile +6 -0
- data/lib/lita-restart-elvis.rb +12 -0
- data/lib/lita/handlers/restart_elvis.rb +30 -0
- data/lita-restart-elvis.gemspec +28 -0
- data/locales/en.yml +4 -0
- data/spec/lita/handlers/restart_elvis_spec.rb +39 -0
- data/spec/spec_helper.rb +20 -0
- data/templates/.gitkeep +0 -0
- metadata +199 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 02fe5652872ec5019668ecfbef7a4eaeba285501
|
4
|
+
data.tar.gz: d3ea366751d5ec168896dba718ef8d0c5e2d3cab
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 05b96bd1af416203936f5afd63e76a8b3540bdd37aceff85925c9a5f18143338cf5d695171bcd0bbf8c05203fc39a593640b49a9a9a6822329bb41ec8ff6a4e6
|
7
|
+
data.tar.gz: 2e07aac51228a247d796beffe0d7b2e760d63f552e54138a0e2d04fe779f0718443ee36e39b1423259d21c56765f06791aca641b187e924a212c3b22a36585da
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# lita-restart-elvis
|
2
|
+
|
3
|
+
[](https://travis-ci.org/dpritchett/lita-restart-elvis)
|
4
|
+
[](https://coveralls.io/r/dpritchett/lita-restart-elvis)
|
5
|
+
|
6
|
+
TODO: Add a description of the plugin.
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
Add lita-restart-elvis to your Lita instance's Gemfile:
|
11
|
+
|
12
|
+
``` ruby
|
13
|
+
gem "lita-restart-elvis"
|
14
|
+
```
|
15
|
+
|
16
|
+
## Configuration
|
17
|
+
|
18
|
+
TODO: Describe any configuration attributes the plugin exposes.
|
19
|
+
|
20
|
+
## Usage
|
21
|
+
|
22
|
+
TODO: Describe the plugin's features and how to use them.
|
data/Rakefile
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'lita'
|
2
|
+
|
3
|
+
Lita.load_locales Dir[File.expand_path(
|
4
|
+
File.join('..', '..', 'locales', '*.yml'), __FILE__
|
5
|
+
)]
|
6
|
+
|
7
|
+
require 'lita/handlers/restart_elvis'
|
8
|
+
|
9
|
+
Lita::Handlers::RestartElvis.template_root File.expand_path(
|
10
|
+
File.join('..', '..', 'templates'),
|
11
|
+
__FILE__
|
12
|
+
)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'platform-api'
|
2
|
+
|
3
|
+
module Lita
|
4
|
+
module Handlers
|
5
|
+
class RestartElvis < Handler
|
6
|
+
route /^restart elvis$/i,
|
7
|
+
:restart_bot,
|
8
|
+
command: true,
|
9
|
+
help: { 'restart elvis' => 'asks the heroku API to bounce elvis' }
|
10
|
+
|
11
|
+
BLOG_URL = 'https://whatsbradeating.tumblr.com'.freeze
|
12
|
+
|
13
|
+
def heroku
|
14
|
+
@_heroku ||= PlatformAPI.connect_oauth(ENV.fetch('HEROKU_OAUTH_TOKEN'))
|
15
|
+
end
|
16
|
+
|
17
|
+
def restart_dyno_named(dyno_name)
|
18
|
+
heroku.dyno.restart_all(dyno_name)
|
19
|
+
end
|
20
|
+
|
21
|
+
def restart_bot(response)
|
22
|
+
restart_dyno_named ENV.fetch('HEROKU_RESTARTABLE_APP_NAME')
|
23
|
+
|
24
|
+
response.reply 'I may have restarted, IDK'
|
25
|
+
end
|
26
|
+
|
27
|
+
Lita.register_handler(self)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = 'lita-restart-elvis'
|
3
|
+
spec.version = '0.1.0'
|
4
|
+
spec.authors = ['Daniel J. Pritchett']
|
5
|
+
spec.email = ['dpritchett@gmail.com']
|
6
|
+
spec.description = 'Restarts a specific heroku app on demand'
|
7
|
+
spec.summary = 'Restarts a specific heroku app on demand'
|
8
|
+
spec.homepage = 'https://dpritchett.net'
|
9
|
+
spec.license = 'MIT'
|
10
|
+
spec.metadata = { 'lita_plugin_type' => 'handler' }
|
11
|
+
|
12
|
+
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
13
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
14
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
15
|
+
spec.require_paths = ['lib']
|
16
|
+
|
17
|
+
spec.add_runtime_dependency 'lita', '>= 4.7'
|
18
|
+
spec.add_runtime_dependency 'platform-api'
|
19
|
+
|
20
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
21
|
+
spec.add_development_dependency 'pry-byebug'
|
22
|
+
spec.add_development_dependency 'rake'
|
23
|
+
spec.add_development_dependency 'rack-test'
|
24
|
+
spec.add_development_dependency 'rspec', '>= 3.0.0'
|
25
|
+
spec.add_development_dependency 'simplecov'
|
26
|
+
spec.add_development_dependency 'coveralls'
|
27
|
+
spec.add_development_dependency 'vcr'
|
28
|
+
end
|
data/locales/en.yml
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'pry'
|
3
|
+
|
4
|
+
describe Lita::Handlers::RestartElvis, lita_handler: true do
|
5
|
+
let(:robot) { Lita::Robot.new(registry) }
|
6
|
+
use_vcr_cassette
|
7
|
+
|
8
|
+
subject { described_class.new(robot) }
|
9
|
+
|
10
|
+
before do
|
11
|
+
ENV['HEROKU_OAUTH_TOKEN'] = 'abcdef'
|
12
|
+
ENV['HEROKU_RESTARTABLE_APP_NAME'] = 'fake-elvis'
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'routes' do
|
16
|
+
it { is_expected.to route('lita restart elvis') }
|
17
|
+
end
|
18
|
+
|
19
|
+
describe ':heroku' do
|
20
|
+
it 'should connect with our oauth token' do
|
21
|
+
expect(PlatformAPI).to receive(:connect_oauth)
|
22
|
+
subject.heroku
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe ':restart_dyno_named' do
|
27
|
+
let(:heroku_double) { double }
|
28
|
+
let(:dyno_double) { double }
|
29
|
+
|
30
|
+
before { allow(subject).to receive(:heroku) { heroku_double } }
|
31
|
+
before { allow(heroku_double).to receive(:dyno) { dyno_double } }
|
32
|
+
|
33
|
+
it 'should ask to restart a dyno' do
|
34
|
+
expect(dyno_double).to receive(:restart_all).with('xyz')
|
35
|
+
|
36
|
+
subject.restart_dyno_named('xyz')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'coveralls'
|
2
|
+
Coveralls.wear!
|
3
|
+
|
4
|
+
require 'lita-restart-elvis'
|
5
|
+
require 'lita/rspec'
|
6
|
+
|
7
|
+
# A compatibility mode is provided for older plugins upgrading from Lita 3. Since this plugin
|
8
|
+
# was generated with Lita 4, the compatibility mode should be left disabled.
|
9
|
+
Lita.version_3_compatibility_mode = false
|
10
|
+
|
11
|
+
require 'vcr'
|
12
|
+
|
13
|
+
VCR.configure do |c|
|
14
|
+
c.cassette_library_dir = 'spec/cassettes'
|
15
|
+
c.hook_into :faraday
|
16
|
+
end
|
17
|
+
|
18
|
+
RSpec.configure do |c|
|
19
|
+
c.extend VCR::RSpec::Macros
|
20
|
+
end
|
data/templates/.gitkeep
ADDED
File without changes
|
metadata
ADDED
@@ -0,0 +1,199 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lita-restart-elvis
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Daniel J. Pritchett
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-04-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: lita
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.7'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: platform-api
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: pry-byebug
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rack-test
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rspec
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 3.0.0
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 3.0.0
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: simplecov
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: coveralls
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: vcr
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
description: Restarts a specific heroku app on demand
|
154
|
+
email:
|
155
|
+
- dpritchett@gmail.com
|
156
|
+
executables: []
|
157
|
+
extensions: []
|
158
|
+
extra_rdoc_files: []
|
159
|
+
files:
|
160
|
+
- ".gitignore"
|
161
|
+
- ".travis.yml"
|
162
|
+
- Gemfile
|
163
|
+
- README.md
|
164
|
+
- Rakefile
|
165
|
+
- lib/lita-restart-elvis.rb
|
166
|
+
- lib/lita/handlers/restart_elvis.rb
|
167
|
+
- lita-restart-elvis.gemspec
|
168
|
+
- locales/en.yml
|
169
|
+
- spec/lita/handlers/restart_elvis_spec.rb
|
170
|
+
- spec/spec_helper.rb
|
171
|
+
- templates/.gitkeep
|
172
|
+
homepage: https://dpritchett.net
|
173
|
+
licenses:
|
174
|
+
- MIT
|
175
|
+
metadata:
|
176
|
+
lita_plugin_type: handler
|
177
|
+
post_install_message:
|
178
|
+
rdoc_options: []
|
179
|
+
require_paths:
|
180
|
+
- lib
|
181
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '0'
|
186
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
|
+
requirements:
|
188
|
+
- - ">="
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: '0'
|
191
|
+
requirements: []
|
192
|
+
rubyforge_project:
|
193
|
+
rubygems_version: 2.5.1
|
194
|
+
signing_key:
|
195
|
+
specification_version: 4
|
196
|
+
summary: Restarts a specific heroku app on demand
|
197
|
+
test_files:
|
198
|
+
- spec/lita/handlers/restart_elvis_spec.rb
|
199
|
+
- spec/spec_helper.rb
|