slack-ruby-bot-server 0.11.1 → 1.0.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 +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.rubocop.yml +1 -1
- data/.rubocop_todo.yml +45 -13
- data/.travis.yml +7 -6
- data/CHANGELOG.md +49 -22
- data/DEBUGGING.md +0 -20
- data/Dangerfile +1 -0
- data/Gemfile +3 -2
- data/LICENSE +1 -1
- data/README.md +106 -52
- data/UPGRADING.md +14 -0
- data/images/create-app.png +0 -0
- data/lib/slack-ruby-bot-server.rb +11 -13
- data/lib/slack-ruby-bot-server/api.rb +4 -4
- data/lib/slack-ruby-bot-server/api/endpoints.rb +3 -3
- data/lib/slack-ruby-bot-server/api/endpoints/teams_endpoint.rb +11 -3
- data/lib/slack-ruby-bot-server/api/helpers.rb +4 -4
- data/lib/slack-ruby-bot-server/api/helpers/cursor_helpers.rb +2 -0
- data/lib/slack-ruby-bot-server/api/helpers/sort_helpers.rb +1 -0
- data/lib/slack-ruby-bot-server/api/middleware.rb +5 -10
- data/lib/slack-ruby-bot-server/api/presenters.rb +5 -5
- data/lib/slack-ruby-bot-server/api/presenters/status_presenter.rb +1 -0
- data/lib/slack-ruby-bot-server/config.rb +16 -2
- data/lib/slack-ruby-bot-server/config/database_adapters/activerecord.rb +2 -2
- data/lib/slack-ruby-bot-server/config/database_adapters/mongoid.rb +4 -2
- data/lib/slack-ruby-bot-server/ext.rb +1 -1
- data/lib/slack-ruby-bot-server/ext/mongoid/slack-ruby-bot/commands/base.rb +2 -2
- data/lib/slack-ruby-bot-server/loggable.rb +25 -0
- data/lib/slack-ruby-bot-server/models/team/activerecord.rb +8 -5
- data/lib/slack-ruby-bot-server/models/team/methods.rb +12 -0
- data/lib/slack-ruby-bot-server/models/team/mongoid.rb +8 -4
- data/lib/slack-ruby-bot-server/rspec.rb +0 -1
- data/lib/slack-ruby-bot-server/service.rb +48 -32
- data/lib/slack-ruby-bot-server/version.rb +1 -1
- data/public/index.html.erb +2 -1
- data/public/scripts/messages.js +33 -0
- data/public/scripts/register.js +0 -31
- data/slack-ruby-bot-server.gemspec +3 -3
- data/tasks/db.rake +0 -36
- metadata +19 -57
- data/images/new.png +0 -0
- data/images/slackbotserver.gif +0 -0
- data/images/slackbutton.gif +0 -0
- data/lib/slack-ruby-bot-server/ext/activerecord/slack-ruby-bot/commands/base.rb +0 -18
- data/lib/slack-ruby-bot-server/ext/slack-ruby-bot.rb +0 -2
- data/lib/slack-ruby-bot-server/ext/slack-ruby-bot/client.rb +0 -12
- data/lib/slack-ruby-bot-server/server.rb +0 -30
- data/sample_apps/README.md +0 -11
- data/sample_apps/sample_app_activerecord/.rspec +0 -3
- data/sample_apps/sample_app_activerecord/.standalone_migrations +0 -3
- data/sample_apps/sample_app_activerecord/Gemfile +0 -24
- data/sample_apps/sample_app_activerecord/Procfile +0 -1
- data/sample_apps/sample_app_activerecord/README.md +0 -11
- data/sample_apps/sample_app_activerecord/Rakefile +0 -14
- data/sample_apps/sample_app_activerecord/commands.rb +0 -2
- data/sample_apps/sample_app_activerecord/commands/help.rb +0 -19
- data/sample_apps/sample_app_activerecord/commands/whoami.rb +0 -6
- data/sample_apps/sample_app_activerecord/config.ru +0 -22
- data/sample_apps/sample_app_activerecord/config/newrelic.yml +0 -217
- data/sample_apps/sample_app_activerecord/config/postgresql.yml +0 -17
- data/sample_apps/sample_app_activerecord/db/migrate/20170307164946_create_teams_table.rb +0 -12
- data/sample_apps/sample_app_activerecord/db/migrate/20190323181453_add_activated_fields.rb +0 -7
- data/sample_apps/sample_app_activerecord/db/schema.rb +0 -29
- data/sample_apps/sample_app_activerecord/spec/api/root_spec.rb +0 -16
- data/sample_apps/sample_app_activerecord/spec/commands/help_spec.rb +0 -14
- data/sample_apps/sample_app_activerecord/spec/commands/whoami_spec.rb +0 -14
- data/sample_apps/sample_app_activerecord/spec/spec_helper.rb +0 -19
- data/sample_apps/sample_app_mongoid/.rspec +0 -3
- data/sample_apps/sample_app_mongoid/Gemfile +0 -20
- data/sample_apps/sample_app_mongoid/Procfile +0 -1
- data/sample_apps/sample_app_mongoid/README.md +0 -14
- data/sample_apps/sample_app_mongoid/Rakefile +0 -10
- data/sample_apps/sample_app_mongoid/commands.rb +0 -2
- data/sample_apps/sample_app_mongoid/commands/help.rb +0 -19
- data/sample_apps/sample_app_mongoid/commands/whoami.rb +0 -6
- data/sample_apps/sample_app_mongoid/config.ru +0 -14
- data/sample_apps/sample_app_mongoid/config/mongoid.yml +0 -27
- data/sample_apps/sample_app_mongoid/config/newrelic.yml +0 -217
- data/sample_apps/sample_app_mongoid/spec/api/root_spec.rb +0 -16
- data/sample_apps/sample_app_mongoid/spec/commands/help_spec.rb +0 -14
- data/sample_apps/sample_app_mongoid/spec/commands/whoami_spec.rb +0 -14
- data/sample_apps/sample_app_mongoid/spec/spec_helper.rb +0 -27
data/public/index.html.erb
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
<title>Slack Ruby Bot Server</title>
|
|
4
4
|
<script src="/scripts/jquery-1.7.1.min.js"></script>
|
|
5
5
|
<script src="/scripts/url.min.js"></script>
|
|
6
|
+
<script src="/scripts/messages.js"></script>
|
|
6
7
|
<script src="/scripts/register.js"></script>
|
|
7
8
|
<script src="/scripts/stats.js"></script>
|
|
8
9
|
</head>
|
|
@@ -15,7 +16,7 @@
|
|
|
15
16
|
</p>
|
|
16
17
|
<p id='messages' />
|
|
17
18
|
<p id='register'>
|
|
18
|
-
<a href="https://slack.com/oauth/authorize?scope
|
|
19
|
+
<a href="https://slack.com/oauth/authorize?scope=<%= SlackRubyBotServer::Config.oauth_scope_s %>&client_id=<%= ENV['SLACK_CLIENT_ID'] %>"><img alt="Add to Slack" height="40" width="139" src="https://platform.slack-edge.com/img/add_to_slack.png" srcset="https://platform.slack-edge.com/img/add_to_slack.png 1x, https://platform.slack-edge.com/img/add_to_slack@2x.png 2x"></a>
|
|
19
20
|
</p>
|
|
20
21
|
<p id='active_teams_count'> </p>
|
|
21
22
|
<p>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
var SlackRubyBotServer = {};
|
|
2
|
+
|
|
3
|
+
$(document).ready(function() {
|
|
4
|
+
|
|
5
|
+
SlackRubyBotServer.message = function(text) {
|
|
6
|
+
$('#messages').fadeOut('slow', function() {
|
|
7
|
+
$('#messages').fadeIn('slow').html(text)
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
SlackRubyBotServer.error = function(xhr) {
|
|
12
|
+
try {
|
|
13
|
+
var message;
|
|
14
|
+
if (xhr.responseText) {
|
|
15
|
+
var rc = JSON.parse(xhr.responseText);
|
|
16
|
+
if (rc && rc.message) {
|
|
17
|
+
message = rc.message;
|
|
18
|
+
if (message == 'invalid_code') {
|
|
19
|
+
message = 'The code returned from the OAuth workflow was invalid.'
|
|
20
|
+
} else if (message == 'code_already_used') {
|
|
21
|
+
message = 'The code returned from the OAuth workflow has already been used.'
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
SlackRubyBotServer.message(message || xhr.statusText || xhr.responseText || 'Unexpected Error');
|
|
27
|
+
|
|
28
|
+
} catch(err) {
|
|
29
|
+
SlackRubyBotServer.message(err.message);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
});
|
data/public/scripts/register.js
CHANGED
|
@@ -1,35 +1,4 @@
|
|
|
1
|
-
var SlackRubyBotServer = {};
|
|
2
|
-
|
|
3
1
|
$(document).ready(function() {
|
|
4
|
-
|
|
5
|
-
SlackRubyBotServer.message = function(text) {
|
|
6
|
-
$('#messages').fadeOut('slow', function() {
|
|
7
|
-
$('#messages').fadeIn('slow').html(text)
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
SlackRubyBotServer.error = function(xhr) {
|
|
12
|
-
try {
|
|
13
|
-
var message;
|
|
14
|
-
if (xhr.responseText) {
|
|
15
|
-
var rc = JSON.parse(xhr.responseText);
|
|
16
|
-
if (rc && rc.message) {
|
|
17
|
-
message = rc.message;
|
|
18
|
-
if (message == 'invalid_code') {
|
|
19
|
-
message = 'The code returned from the OAuth workflow was invalid.'
|
|
20
|
-
} else if (message == 'code_already_used') {
|
|
21
|
-
message = 'The code returned from the OAuth workflow has already been used.'
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
SlackRubyBotServer.message(message || xhr.statusText || xhr.responseText || 'Unexpected Error');
|
|
27
|
-
|
|
28
|
-
} catch(err) {
|
|
29
|
-
SlackRubyBotServer.message(err.message);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
|
|
33
2
|
// Slack OAuth
|
|
34
3
|
var code = $.url('?code')
|
|
35
4
|
var state = $.url('?state')
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
lib = File.expand_path('lib', __dir__)
|
|
2
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
3
|
-
|
|
3
|
+
require_relative 'lib/slack-ruby-bot-server/version'
|
|
4
4
|
|
|
5
5
|
Gem::Specification.new do |spec|
|
|
6
6
|
spec.name = 'slack-ruby-bot-server'
|
|
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
|
14
14
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(spec)/}) }
|
|
15
15
|
spec.require_paths = ['lib']
|
|
16
16
|
|
|
17
|
-
spec.add_dependency 'async
|
|
17
|
+
spec.add_dependency 'async'
|
|
18
18
|
spec.add_dependency 'foreman'
|
|
19
19
|
spec.add_dependency 'grape'
|
|
20
20
|
spec.add_dependency 'grape-roar', '>= 0.4.0'
|
|
@@ -23,5 +23,5 @@ Gem::Specification.new do |spec|
|
|
|
23
23
|
spec.add_dependency 'rack-cors'
|
|
24
24
|
spec.add_dependency 'rack-rewrite'
|
|
25
25
|
spec.add_dependency 'rack-server-pages'
|
|
26
|
-
spec.add_dependency 'slack-ruby-
|
|
26
|
+
spec.add_dependency 'slack-ruby-client'
|
|
27
27
|
end
|
data/tasks/db.rake
CHANGED
|
@@ -5,40 +5,4 @@ namespace :db do
|
|
|
5
5
|
Logger.new(STDOUT)
|
|
6
6
|
end
|
|
7
7
|
end
|
|
8
|
-
|
|
9
|
-
namespace :heroku do
|
|
10
|
-
desc 'Mongodump the BotServer database for a slack-ruby-bot-server Heroku app.'
|
|
11
|
-
task :backup, [:app] do |_t, args|
|
|
12
|
-
require 'mongoid-shell'
|
|
13
|
-
|
|
14
|
-
logger.info("[#{Time.now}] db:heroku:backup started")
|
|
15
|
-
|
|
16
|
-
# get heroku configuration info
|
|
17
|
-
app = args[:app] || raise('Missing app.')
|
|
18
|
-
JSON.parse(`bundle exec heroku config --app #{app} --json`).each_pair do |k, v|
|
|
19
|
-
ENV[k] = v
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
# connect to MongoDB
|
|
23
|
-
env = (ENV['RACK_ENV'] || 'development').to_s
|
|
24
|
-
logger.info "Connecting to the #{env} environment."
|
|
25
|
-
Mongoid.load! 'config/mongoid.yml', env
|
|
26
|
-
|
|
27
|
-
# mongodump
|
|
28
|
-
mongodump = Mongoid::Shell::Commands::Mongodump.new(session: Mongoid.default_client)
|
|
29
|
-
mongodump.out = File.join(Dir.tmpdir, 'db/' + mongodump.host.tr(':', '_'))
|
|
30
|
-
logger.info("[#{Time.now}] clearing (#{mongodump.out})")
|
|
31
|
-
FileUtils.rm_rf mongodump.out if File.directory? mongodump.out
|
|
32
|
-
logger.info("[#{Time.now}] mongodump to #{mongodump.out}")
|
|
33
|
-
system mongodump.to_s
|
|
34
|
-
|
|
35
|
-
# backup
|
|
36
|
-
backup_name = "#{app}-#{Time.now.strftime('%Y-%m-%d-%H%M%S')}"
|
|
37
|
-
tmp_db_filename = File.join(mongodump.out, backup_name)
|
|
38
|
-
logger.info("[#{Time.now}] compressing (#{tmp_db_filename}.tar.gz)")
|
|
39
|
-
system "tar -cvf #{tmp_db_filename}.tar #{mongodump.out}/#{mongodump.db}"
|
|
40
|
-
system "gzip #{tmp_db_filename}.tar"
|
|
41
|
-
logger.info "Created #{tmp_db_filename}.tar.gz."
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
8
|
end
|
metadata
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: slack-ruby-bot-server
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daniel Doubrovkine
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-11-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: async
|
|
14
|
+
name: async
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
|
-
- - "
|
|
17
|
+
- - ">="
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 0
|
|
19
|
+
version: '0'
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
|
-
- - "
|
|
24
|
+
- - ">="
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 0
|
|
26
|
+
version: '0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: foreman
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -137,26 +137,27 @@ dependencies:
|
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
138
|
version: '0'
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
|
140
|
-
name: slack-ruby-
|
|
140
|
+
name: slack-ruby-client
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
142
142
|
requirements:
|
|
143
143
|
- - ">="
|
|
144
144
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: 0
|
|
145
|
+
version: '0'
|
|
146
146
|
type: :runtime
|
|
147
147
|
prerelease: false
|
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
149
|
requirements:
|
|
150
150
|
- - ">="
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: 0
|
|
153
|
-
description:
|
|
152
|
+
version: '0'
|
|
153
|
+
description:
|
|
154
154
|
email:
|
|
155
155
|
- dblock@dblock.org
|
|
156
156
|
executables: []
|
|
157
157
|
extensions: []
|
|
158
158
|
extra_rdoc_files: []
|
|
159
159
|
files:
|
|
160
|
+
- ".github/FUNDING.yml"
|
|
160
161
|
- ".gitignore"
|
|
161
162
|
- ".rspec"
|
|
162
163
|
- ".rubocop.yml"
|
|
@@ -173,9 +174,7 @@ files:
|
|
|
173
174
|
- RELEASING.md
|
|
174
175
|
- Rakefile
|
|
175
176
|
- UPGRADING.md
|
|
176
|
-
- images/
|
|
177
|
-
- images/slackbotserver.gif
|
|
178
|
-
- images/slackbutton.gif
|
|
177
|
+
- images/create-app.png
|
|
179
178
|
- lib/slack-ruby-bot-server.rb
|
|
180
179
|
- lib/slack-ruby-bot-server/api.rb
|
|
181
180
|
- lib/slack-ruby-bot-server/api/endpoints.rb
|
|
@@ -199,19 +198,16 @@ files:
|
|
|
199
198
|
- lib/slack-ruby-bot-server/config/database_adapters/activerecord.rb
|
|
200
199
|
- lib/slack-ruby-bot-server/config/database_adapters/mongoid.rb
|
|
201
200
|
- lib/slack-ruby-bot-server/ext.rb
|
|
202
|
-
- lib/slack-ruby-bot-server/ext/activerecord/slack-ruby-bot/commands/base.rb
|
|
203
201
|
- lib/slack-ruby-bot-server/ext/bson/object_id.rb
|
|
204
202
|
- lib/slack-ruby-bot-server/ext/grape/sort_extension.rb
|
|
205
203
|
- lib/slack-ruby-bot-server/ext/mongoid/slack-ruby-bot/commands/base.rb
|
|
206
|
-
- lib/slack-ruby-bot-server/ext/slack-ruby-bot.rb
|
|
207
|
-
- lib/slack-ruby-bot-server/ext/slack-ruby-bot/client.rb
|
|
208
204
|
- lib/slack-ruby-bot-server/info.rb
|
|
205
|
+
- lib/slack-ruby-bot-server/loggable.rb
|
|
209
206
|
- lib/slack-ruby-bot-server/models/team/activerecord.rb
|
|
210
207
|
- lib/slack-ruby-bot-server/models/team/methods.rb
|
|
211
208
|
- lib/slack-ruby-bot-server/models/team/mongoid.rb
|
|
212
209
|
- lib/slack-ruby-bot-server/rspec.rb
|
|
213
210
|
- lib/slack-ruby-bot-server/rspec/fabricators/team.rb
|
|
214
|
-
- lib/slack-ruby-bot-server/server.rb
|
|
215
211
|
- lib/slack-ruby-bot-server/service.rb
|
|
216
212
|
- lib/slack-ruby-bot-server/version.rb
|
|
217
213
|
- public/favicon.ico
|
|
@@ -219,51 +215,17 @@ files:
|
|
|
219
215
|
- public/index.html.erb
|
|
220
216
|
- public/robots.txt
|
|
221
217
|
- public/scripts/jquery-1.7.1.min.js
|
|
218
|
+
- public/scripts/messages.js
|
|
222
219
|
- public/scripts/register.js
|
|
223
220
|
- public/scripts/stats.js
|
|
224
221
|
- public/scripts/url.min.js
|
|
225
|
-
- sample_apps/README.md
|
|
226
|
-
- sample_apps/sample_app_activerecord/.rspec
|
|
227
|
-
- sample_apps/sample_app_activerecord/.standalone_migrations
|
|
228
|
-
- sample_apps/sample_app_activerecord/Gemfile
|
|
229
|
-
- sample_apps/sample_app_activerecord/Procfile
|
|
230
|
-
- sample_apps/sample_app_activerecord/README.md
|
|
231
|
-
- sample_apps/sample_app_activerecord/Rakefile
|
|
232
|
-
- sample_apps/sample_app_activerecord/commands.rb
|
|
233
|
-
- sample_apps/sample_app_activerecord/commands/help.rb
|
|
234
|
-
- sample_apps/sample_app_activerecord/commands/whoami.rb
|
|
235
|
-
- sample_apps/sample_app_activerecord/config.ru
|
|
236
|
-
- sample_apps/sample_app_activerecord/config/newrelic.yml
|
|
237
|
-
- sample_apps/sample_app_activerecord/config/postgresql.yml
|
|
238
|
-
- sample_apps/sample_app_activerecord/db/migrate/20170307164946_create_teams_table.rb
|
|
239
|
-
- sample_apps/sample_app_activerecord/db/migrate/20190323181453_add_activated_fields.rb
|
|
240
|
-
- sample_apps/sample_app_activerecord/db/schema.rb
|
|
241
|
-
- sample_apps/sample_app_activerecord/spec/api/root_spec.rb
|
|
242
|
-
- sample_apps/sample_app_activerecord/spec/commands/help_spec.rb
|
|
243
|
-
- sample_apps/sample_app_activerecord/spec/commands/whoami_spec.rb
|
|
244
|
-
- sample_apps/sample_app_activerecord/spec/spec_helper.rb
|
|
245
|
-
- sample_apps/sample_app_mongoid/.rspec
|
|
246
|
-
- sample_apps/sample_app_mongoid/Gemfile
|
|
247
|
-
- sample_apps/sample_app_mongoid/Procfile
|
|
248
|
-
- sample_apps/sample_app_mongoid/README.md
|
|
249
|
-
- sample_apps/sample_app_mongoid/Rakefile
|
|
250
|
-
- sample_apps/sample_app_mongoid/commands.rb
|
|
251
|
-
- sample_apps/sample_app_mongoid/commands/help.rb
|
|
252
|
-
- sample_apps/sample_app_mongoid/commands/whoami.rb
|
|
253
|
-
- sample_apps/sample_app_mongoid/config.ru
|
|
254
|
-
- sample_apps/sample_app_mongoid/config/mongoid.yml
|
|
255
|
-
- sample_apps/sample_app_mongoid/config/newrelic.yml
|
|
256
|
-
- sample_apps/sample_app_mongoid/spec/api/root_spec.rb
|
|
257
|
-
- sample_apps/sample_app_mongoid/spec/commands/help_spec.rb
|
|
258
|
-
- sample_apps/sample_app_mongoid/spec/commands/whoami_spec.rb
|
|
259
|
-
- sample_apps/sample_app_mongoid/spec/spec_helper.rb
|
|
260
222
|
- script/console
|
|
261
223
|
- slack-ruby-bot-server.gemspec
|
|
262
224
|
- tasks/db.rake
|
|
263
225
|
homepage: https://github.com/slack-ruby/slack-ruby-bot-server
|
|
264
226
|
licenses: []
|
|
265
227
|
metadata: {}
|
|
266
|
-
post_install_message:
|
|
228
|
+
post_install_message:
|
|
267
229
|
rdoc_options: []
|
|
268
230
|
require_paths:
|
|
269
231
|
- lib
|
|
@@ -278,8 +240,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
278
240
|
- !ruby/object:Gem::Version
|
|
279
241
|
version: '0'
|
|
280
242
|
requirements: []
|
|
281
|
-
rubygems_version: 3.
|
|
282
|
-
signing_key:
|
|
243
|
+
rubygems_version: 3.1.3
|
|
244
|
+
signing_key:
|
|
283
245
|
specification_version: 4
|
|
284
246
|
summary: A Grape API serving a Slack bot to multiple teams.
|
|
285
247
|
test_files: []
|
data/images/new.png
DELETED
|
Binary file
|
data/images/slackbotserver.gif
DELETED
|
Binary file
|
data/images/slackbutton.gif
DELETED
|
Binary file
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
module SlackRubyBot
|
|
2
|
-
module Commands
|
|
3
|
-
class Base
|
|
4
|
-
class << self
|
|
5
|
-
alias _invoke invoke
|
|
6
|
-
|
|
7
|
-
def invoke(client, data)
|
|
8
|
-
_invoke client, data
|
|
9
|
-
rescue StandardError => e
|
|
10
|
-
logger.info "#{name.demodulize.upcase}: #{client.owner}, #{e.class}: #{e}"
|
|
11
|
-
logger.debug e.backtrace.join("\n")
|
|
12
|
-
client.say(channel: data.channel, text: e.message, gif: 'error')
|
|
13
|
-
true
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
module SlackRubyBot
|
|
2
|
-
class Client
|
|
3
|
-
# keep track of the team that the client is connected to
|
|
4
|
-
attr_accessor :owner
|
|
5
|
-
end
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
SlackRubyBot::Client.logger.level = Logger::WARN
|
|
9
|
-
|
|
10
|
-
Slack::RealTime::Client.configure do |config|
|
|
11
|
-
config.store_class = Slack::RealTime::Stores::Starter
|
|
12
|
-
end
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
require_relative 'ext/slack-ruby-bot/client'
|
|
2
|
-
|
|
3
|
-
module SlackRubyBotServer
|
|
4
|
-
class Server < SlackRubyBot::Server
|
|
5
|
-
attr_accessor :team
|
|
6
|
-
|
|
7
|
-
def initialize(attrs = {})
|
|
8
|
-
attrs = attrs.dup
|
|
9
|
-
@team = attrs.delete(:team)
|
|
10
|
-
raise 'Missing team' unless @team
|
|
11
|
-
attrs[:token] = @team.token
|
|
12
|
-
super(attrs)
|
|
13
|
-
open!
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def restart!(wait = 1)
|
|
17
|
-
# when an integration is disabled, a live socket is closed, which causes the default behavior of the client to restart
|
|
18
|
-
# it would keep retrying without checking for account_inactive or such, we want to restart via service which will disable an inactive team
|
|
19
|
-
logger.info "#{team.name}: socket closed, restarting ..."
|
|
20
|
-
SlackRubyBotServer::Service.instance.restart! team, self, wait
|
|
21
|
-
open!
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
private
|
|
25
|
-
|
|
26
|
-
def open!
|
|
27
|
-
client.owner = team
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
data/sample_apps/README.md
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
To run samples, [register a new Slack app](https://api.slack.com/apps), configure a bot user, and OAuth redirect URL to http://localhost:9292 (for development). Configure your development environment by editing `.env` and setting the client ID and secret you were given during registration.
|
|
2
|
-
|
|
3
|
-
```
|
|
4
|
-
SLACK_CLIENT_ID=1111111111.2222222
|
|
5
|
-
SLACK_CLIENT_SECRET=abcdef012345679
|
|
6
|
-
PORT=9292
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
Run tests with `bundle exec rake`.
|
|
10
|
-
|
|
11
|
-
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
|
|
3
|
-
gem 'activerecord', '~> 5.0.0', require: 'active_record'
|
|
4
|
-
gem 'newrelic-slack-ruby-bot'
|
|
5
|
-
gem 'otr-activerecord', '~> 1.2.1'
|
|
6
|
-
gem 'pg'
|
|
7
|
-
gem 'rack-server-pages'
|
|
8
|
-
gem 'rack-test'
|
|
9
|
-
gem 'slack-ruby-bot-server', path: '../../'
|
|
10
|
-
gem 'unicorn'
|
|
11
|
-
|
|
12
|
-
group :development, :test do
|
|
13
|
-
gem 'standalone_migrations', '~> 5.2'
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
group :test do
|
|
17
|
-
gem 'database_cleaner'
|
|
18
|
-
gem 'fabrication'
|
|
19
|
-
gem 'faker'
|
|
20
|
-
gem 'rake'
|
|
21
|
-
gem 'rspec'
|
|
22
|
-
gem 'vcr'
|
|
23
|
-
gem 'webmock'
|
|
24
|
-
end
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
web: bundle exec unicorn -p $PORT
|