slack-ruby-bot-server 0.12.1 → 1.2.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_todo.yml +4 -9
- 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 +43 -0
- data/lib/slack-ruby-bot-server.rb +3 -3
- data/lib/slack-ruby-bot-server/api/endpoints/teams_endpoint.rb +44 -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/config/database_adapters/activerecord.rb +2 -0
- 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/methods.rb +21 -1
- data/lib/slack-ruby-bot-server/models/team/mongoid.rb +2 -0
- 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 +16 -55
- 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
|
@@ -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
|
@@ -8,6 +8,8 @@ class Team
|
|
8
8
|
field :name, type: String
|
9
9
|
field :domain, type: String
|
10
10
|
field :token, type: String
|
11
|
+
field :oauth_scope, type: String
|
12
|
+
field :oauth_version, type: String, default: 'v1'
|
11
13
|
field :active, type: Boolean, default: true
|
12
14
|
field :bot_user_id, type: String
|
13
15
|
field :activated_user_id, type: String
|
@@ -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.2.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-28 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
|
@@ -280,7 +241,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
280
241
|
version: '0'
|
281
242
|
requirements: []
|
282
243
|
rubygems_version: 3.1.3
|
283
|
-
signing_key:
|
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: []
|