slack-ruby-bot-server 0.12.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/.rubocop_todo.yml +7 -10
- data/.travis.yml +0 -1
- data/CHANGELOG.md +22 -0
- data/DEBUGGING.md +0 -20
- data/Dangerfile +1 -0
- data/Gemfile +1 -0
- data/README.md +69 -74
- data/UPGRADING.md +21 -0
- data/lib/slack-ruby-bot-server.rb +3 -3
- data/lib/slack-ruby-bot-server/api/endpoints/teams_endpoint.rb +35 -9
- data/lib/slack-ruby-bot-server/api/middleware.rb +4 -5
- data/lib/slack-ruby-bot-server/app.rb +2 -14
- data/lib/slack-ruby-bot-server/config.rb +32 -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 +21 -1
- 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 +7 -33
- data/lib/slack-ruby-bot-server/version.rb +1 -1
- data/public/index.html.erb +1 -1
- data/slack-ruby-bot-server.gemspec +2 -2
- data/tasks/db.rake +0 -36
- metadata +17 -56
- 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 -31
- 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 -12
- 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
@@ -6,11 +6,10 @@ require 'otr-activerecord' if SlackRubyBotServer::Config.activerecord? && !defin
|
|
6
6
|
module SlackRubyBotServer
|
7
7
|
module Api
|
8
8
|
class Middleware
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
9
|
+
include SlackRubyBotServer::Loggable
|
10
|
+
|
11
|
+
def self.reset!
|
12
|
+
@instance = nil
|
14
13
|
end
|
15
14
|
|
16
15
|
def self.instance
|
@@ -1,10 +1,11 @@
|
|
1
1
|
module SlackRubyBotServer
|
2
2
|
class App
|
3
|
+
include SlackRubyBotServer::Loggable
|
4
|
+
|
3
5
|
def prepare!
|
4
6
|
check_database!
|
5
7
|
init_database!
|
6
8
|
purge_inactive_teams!
|
7
|
-
configure_global_aliases!
|
8
9
|
end
|
9
10
|
|
10
11
|
def self.instance
|
@@ -13,13 +14,6 @@ module SlackRubyBotServer
|
|
13
14
|
|
14
15
|
private
|
15
16
|
|
16
|
-
def logger
|
17
|
-
@logger ||= begin
|
18
|
-
STDOUT.sync = true
|
19
|
-
Logger.new(STDOUT)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
17
|
def check_database!
|
24
18
|
SlackRubyBotServer::DatabaseAdapter.check!
|
25
19
|
end
|
@@ -31,11 +25,5 @@ module SlackRubyBotServer
|
|
31
25
|
def purge_inactive_teams!
|
32
26
|
Team.purge!
|
33
27
|
end
|
34
|
-
|
35
|
-
def configure_global_aliases!
|
36
|
-
SlackRubyBot.configure do |config|
|
37
|
-
config.aliases = ENV['SLACK_RUBY_BOT_ALIASES'].split(' ') if ENV['SLACK_RUBY_BOT_ALIASES']
|
38
|
-
end
|
39
|
-
end
|
40
28
|
end
|
41
29
|
end
|
@@ -2,14 +2,18 @@ module SlackRubyBotServer
|
|
2
2
|
module Config
|
3
3
|
extend self
|
4
4
|
|
5
|
-
attr_accessor :
|
5
|
+
attr_accessor :logger
|
6
6
|
attr_accessor :service_class
|
7
7
|
attr_accessor :database_adapter
|
8
8
|
attr_accessor :view_paths
|
9
|
+
attr_accessor :oauth_scope
|
10
|
+
attr_accessor :oauth_version
|
9
11
|
|
10
12
|
def reset!
|
11
|
-
self.
|
13
|
+
self.logger = nil
|
12
14
|
self.service_class = SlackRubyBotServer::Service
|
15
|
+
self.oauth_scope = nil
|
16
|
+
self.oauth_version = :v2
|
13
17
|
|
14
18
|
self.view_paths = [
|
15
19
|
'views',
|
@@ -26,6 +30,32 @@ module SlackRubyBotServer
|
|
26
30
|
end
|
27
31
|
end
|
28
32
|
|
33
|
+
def oauth_authorize_url
|
34
|
+
case oauth_version
|
35
|
+
when :v2
|
36
|
+
'https://slack.com/oauth/v2/authorize'
|
37
|
+
when :v1
|
38
|
+
'https://slack.com/oauth/authorize'
|
39
|
+
else
|
40
|
+
raise ArgumentError, 'Invalid oauth_version, must be one of :v1 or v2.'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def oauth_access_method
|
45
|
+
case oauth_version
|
46
|
+
when :v2
|
47
|
+
:oauth_v2_access
|
48
|
+
when :v1
|
49
|
+
:oauth_access
|
50
|
+
else
|
51
|
+
raise ArgumentError, 'Invalid oauth_version, must be one of :v1 or v2.'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def oauth_scope_s
|
56
|
+
oauth_scope&.join('+')
|
57
|
+
end
|
58
|
+
|
29
59
|
def activerecord?
|
30
60
|
database_adapter == :activerecord
|
31
61
|
end
|
@@ -8,12 +8,12 @@ module SlackRubyBot
|
|
8
8
|
_invoke client, data
|
9
9
|
rescue Mongoid::Errors::Validations => e
|
10
10
|
logger.info "#{name.demodulize.upcase}: #{client.owner}, error - #{e.document.class}, #{e.document.errors.to_hash}"
|
11
|
-
client.say(channel: data.channel, text: e.document.errors.first[1]
|
11
|
+
client.say(channel: data.channel, text: e.document.errors.first[1])
|
12
12
|
true
|
13
13
|
rescue StandardError => e
|
14
14
|
logger.info "#{name.demodulize.upcase}: #{client.owner}, #{e.class}: #{e}"
|
15
15
|
logger.debug e.backtrace.join("\n")
|
16
|
-
client.say(channel: data.channel, text: e.message
|
16
|
+
client.say(channel: data.channel, text: e.message)
|
17
17
|
true
|
18
18
|
end
|
19
19
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module SlackRubyBotServer
|
4
|
+
module Loggable
|
5
|
+
def self.included(base)
|
6
|
+
base.send :include, InstanceMethods
|
7
|
+
base.extend(ClassMethods)
|
8
|
+
end
|
9
|
+
|
10
|
+
module ClassMethods
|
11
|
+
def logger
|
12
|
+
@logger ||= SlackRubyBotServer::Config.logger || begin
|
13
|
+
$stdout.sync = true
|
14
|
+
Logger.new($stdout)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module InstanceMethods
|
20
|
+
def logger
|
21
|
+
self.class.logger
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -3,11 +3,14 @@ require_relative 'methods'
|
|
3
3
|
class Team < ActiveRecord::Base
|
4
4
|
include Methods
|
5
5
|
|
6
|
-
def self.purge!
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
def self.purge!(dt = 2.weeks.ago)
|
7
|
+
Team.where(active: false).where('updated_at <= ?', dt).each do |team|
|
8
|
+
begin
|
9
|
+
logger.info "Destroying #{team}, inactive since #{team.updated_at}."
|
10
|
+
team.destroy
|
11
|
+
rescue StandardError => e
|
12
|
+
logger.warn "Error destroying #{team}, #{e.message}."
|
13
|
+
end
|
11
14
|
end
|
12
15
|
end
|
13
16
|
end
|
@@ -32,11 +32,31 @@ module Methods
|
|
32
32
|
|
33
33
|
def ping!
|
34
34
|
client = Slack::Web::Client.new(token: token)
|
35
|
+
|
35
36
|
auth = client.auth_test
|
37
|
+
|
38
|
+
presence = begin
|
39
|
+
client.users_getPresence(user: auth['user_id'])
|
40
|
+
rescue Slack::Web::Api::Errors::MissingScope
|
41
|
+
nil
|
42
|
+
end
|
43
|
+
|
36
44
|
{
|
37
45
|
auth: auth,
|
38
|
-
presence:
|
46
|
+
presence: presence
|
39
47
|
}
|
40
48
|
end
|
49
|
+
|
50
|
+
def ping_if_active!
|
51
|
+
return unless active?
|
52
|
+
|
53
|
+
ping!
|
54
|
+
rescue Slack::Web::Api::Errors::SlackError => e
|
55
|
+
logger.warn "Active team #{self} ping, #{e.message}."
|
56
|
+
case e.message
|
57
|
+
when 'account_inactive', 'invalid_auth'
|
58
|
+
deactivate!
|
59
|
+
end
|
60
|
+
end
|
41
61
|
end
|
42
62
|
end
|
@@ -15,11 +15,15 @@ class Team
|
|
15
15
|
|
16
16
|
include Methods
|
17
17
|
|
18
|
-
def self.purge!
|
18
|
+
def self.purge!(dt = 2.weeks.ago)
|
19
19
|
# destroy teams inactive for two weeks
|
20
|
-
Team.where(active: false, :updated_at.lte =>
|
21
|
-
|
22
|
-
|
20
|
+
Team.where(active: false, :updated_at.lte => dt).each do |team|
|
21
|
+
begin
|
22
|
+
logger.info "Destroying #{team}, inactive since #{team.updated_at}."
|
23
|
+
team.destroy
|
24
|
+
rescue StandardError => e
|
25
|
+
logger.warn "Error destroying #{team}, #{e.message}."
|
26
|
+
end
|
23
27
|
end
|
24
28
|
end
|
25
29
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module SlackRubyBotServer
|
2
2
|
class Service
|
3
|
-
include
|
3
|
+
include SlackRubyBotServer::Loggable
|
4
4
|
|
5
5
|
def self.start!
|
6
6
|
Thread.new do
|
@@ -47,34 +47,30 @@ module SlackRubyBotServer
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def start!(team)
|
50
|
-
run_callbacks :starting, team
|
51
50
|
logger.info "Starting team #{team}."
|
52
|
-
|
53
|
-
server = SlackRubyBotServer::Config.server_class.new(options)
|
54
|
-
start_server! team, server
|
51
|
+
run_callbacks :starting, team
|
55
52
|
run_callbacks :started, team
|
56
|
-
server
|
57
53
|
rescue StandardError => e
|
58
54
|
run_callbacks :error, team, e
|
59
55
|
logger.error e
|
60
56
|
end
|
61
57
|
|
62
|
-
def restart!(team
|
58
|
+
def restart!(team)
|
59
|
+
logger.info "Restarting team #{team}."
|
63
60
|
run_callbacks :restarting, team
|
64
|
-
start_server! team, server, wait
|
65
61
|
run_callbacks :restarted, team
|
62
|
+
rescue StandardError => e
|
63
|
+
run_callbacks :error, team, e
|
64
|
+
logger.error e
|
66
65
|
end
|
67
66
|
|
68
67
|
def stop!(team)
|
69
68
|
logger.info "Stopping team #{team}."
|
70
69
|
run_callbacks :stopping, team
|
71
|
-
team.server&.stop!
|
72
70
|
run_callbacks :stopped, team
|
73
71
|
rescue StandardError => e
|
74
72
|
run_callbacks :error, team, e
|
75
73
|
logger.error e
|
76
|
-
ensure
|
77
|
-
team.server = nil
|
78
74
|
end
|
79
75
|
|
80
76
|
def start_from_database!
|
@@ -98,14 +94,9 @@ module SlackRubyBotServer
|
|
98
94
|
run_callbacks :deactivating, team
|
99
95
|
team.deactivate!
|
100
96
|
run_callbacks :deactivated, team
|
101
|
-
rescue Mongoid::Errors::Validations => e
|
102
|
-
run_callbacks :error, team, e
|
103
|
-
logger.error "#{team.name}: #{e.message}, error - #{e.document.class}, #{e.document.errors.to_hash}, ignored."
|
104
97
|
rescue StandardError => e
|
105
98
|
run_callbacks :error, team, e
|
106
99
|
logger.error "#{team.name}: #{e.class}, #{e.message}, ignored."
|
107
|
-
ensure
|
108
|
-
team.server = nil
|
109
100
|
end
|
110
101
|
|
111
102
|
def self.reset!
|
@@ -127,23 +118,6 @@ module SlackRubyBotServer
|
|
127
118
|
end
|
128
119
|
end
|
129
120
|
|
130
|
-
def start_server!(team, server, wait = 1)
|
131
|
-
team.server = server
|
132
|
-
server.start_async
|
133
|
-
rescue StandardError => e
|
134
|
-
run_callbacks :error, team, e
|
135
|
-
case e.message
|
136
|
-
when 'account_inactive', 'invalid_auth' then
|
137
|
-
logger.error "#{team.name}: #{e.message}, team will be deactivated."
|
138
|
-
deactivate!(team)
|
139
|
-
else
|
140
|
-
wait = e.retry_after if e.is_a?(Slack::Web::Api::Errors::TooManyRequestsError)
|
141
|
-
logger.error "#{team.name}: #{e.message}, restarting in #{wait} second(s)."
|
142
|
-
sleep(wait)
|
143
|
-
start_server! team, server, [wait * 2, 60].min
|
144
|
-
end
|
145
|
-
end
|
146
|
-
|
147
121
|
def run_callbacks(type, team = nil, error = nil, options = {})
|
148
122
|
callbacks = @callbacks[type.to_s]
|
149
123
|
return false unless callbacks
|
data/public/index.html.erb
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
</p>
|
17
17
|
<p id='messages' />
|
18
18
|
<p id='register'>
|
19
|
-
<a href="
|
19
|
+
<a href="<%= SlackRubyBotServer::Config.oauth_authorize_url %>?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>
|
20
20
|
</p>
|
21
21
|
<p id='active_teams_count'> </p>
|
22
22
|
<p>
|
@@ -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:
|
4
|
+
version: 1.1.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: 2020-
|
11
|
+
date: 2020-11-17 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"
|
@@ -174,8 +175,6 @@ files:
|
|
174
175
|
- Rakefile
|
175
176
|
- UPGRADING.md
|
176
177
|
- images/create-app.png
|
177
|
-
- images/slackbotserver.gif
|
178
|
-
- images/slackbutton.gif
|
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
|
@@ -223,48 +219,13 @@ files:
|
|
223
219
|
- public/scripts/register.js
|
224
220
|
- public/scripts/stats.js
|
225
221
|
- public/scripts/url.min.js
|
226
|
-
- sample_apps/README.md
|
227
|
-
- sample_apps/sample_app_activerecord/.rspec
|
228
|
-
- sample_apps/sample_app_activerecord/.standalone_migrations
|
229
|
-
- sample_apps/sample_app_activerecord/Gemfile
|
230
|
-
- sample_apps/sample_app_activerecord/Procfile
|
231
|
-
- sample_apps/sample_app_activerecord/README.md
|
232
|
-
- sample_apps/sample_app_activerecord/Rakefile
|
233
|
-
- sample_apps/sample_app_activerecord/commands.rb
|
234
|
-
- sample_apps/sample_app_activerecord/commands/help.rb
|
235
|
-
- sample_apps/sample_app_activerecord/commands/whoami.rb
|
236
|
-
- sample_apps/sample_app_activerecord/config.ru
|
237
|
-
- sample_apps/sample_app_activerecord/config/newrelic.yml
|
238
|
-
- sample_apps/sample_app_activerecord/config/postgresql.yml
|
239
|
-
- sample_apps/sample_app_activerecord/db/migrate/20170307164946_create_teams_table.rb
|
240
|
-
- sample_apps/sample_app_activerecord/db/migrate/20190323181453_add_activated_fields.rb
|
241
|
-
- sample_apps/sample_app_activerecord/db/schema.rb
|
242
|
-
- sample_apps/sample_app_activerecord/spec/api/root_spec.rb
|
243
|
-
- sample_apps/sample_app_activerecord/spec/commands/help_spec.rb
|
244
|
-
- sample_apps/sample_app_activerecord/spec/commands/whoami_spec.rb
|
245
|
-
- sample_apps/sample_app_activerecord/spec/spec_helper.rb
|
246
|
-
- sample_apps/sample_app_mongoid/.rspec
|
247
|
-
- sample_apps/sample_app_mongoid/Gemfile
|
248
|
-
- sample_apps/sample_app_mongoid/Procfile
|
249
|
-
- sample_apps/sample_app_mongoid/README.md
|
250
|
-
- sample_apps/sample_app_mongoid/Rakefile
|
251
|
-
- sample_apps/sample_app_mongoid/commands.rb
|
252
|
-
- sample_apps/sample_app_mongoid/commands/help.rb
|
253
|
-
- sample_apps/sample_app_mongoid/commands/whoami.rb
|
254
|
-
- sample_apps/sample_app_mongoid/config.ru
|
255
|
-
- sample_apps/sample_app_mongoid/config/mongoid.yml
|
256
|
-
- sample_apps/sample_app_mongoid/config/newrelic.yml
|
257
|
-
- sample_apps/sample_app_mongoid/spec/api/root_spec.rb
|
258
|
-
- sample_apps/sample_app_mongoid/spec/commands/help_spec.rb
|
259
|
-
- sample_apps/sample_app_mongoid/spec/commands/whoami_spec.rb
|
260
|
-
- sample_apps/sample_app_mongoid/spec/spec_helper.rb
|
261
222
|
- script/console
|
262
223
|
- slack-ruby-bot-server.gemspec
|
263
224
|
- tasks/db.rake
|
264
225
|
homepage: https://github.com/slack-ruby/slack-ruby-bot-server
|
265
226
|
licenses: []
|
266
227
|
metadata: {}
|
267
|
-
post_install_message:
|
228
|
+
post_install_message:
|
268
229
|
rdoc_options: []
|
269
230
|
require_paths:
|
270
231
|
- lib
|
@@ -279,8 +240,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
279
240
|
- !ruby/object:Gem::Version
|
280
241
|
version: '0'
|
281
242
|
requirements: []
|
282
|
-
rubygems_version: 3.
|
283
|
-
signing_key:
|
243
|
+
rubygems_version: 3.1.3
|
244
|
+
signing_key:
|
284
245
|
specification_version: 4
|
285
246
|
summary: A Grape API serving a Slack bot to multiple teams.
|
286
247
|
test_files: []
|