slack-ruby-client 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +3 -0
- data/.rubocop_todo.yml +30 -34
- data/.travis.yml +0 -1
- data/CHANGELOG.md +9 -0
- data/CONTRIBUTING.md +2 -2
- data/Gemfile +3 -1
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/bin/commands/channels.rb +18 -9
- data/bin/commands/chat.rb +24 -3
- data/bin/commands/dialog.rb +14 -0
- data/bin/commands/files.rb +21 -0
- data/bin/commands/groups.rb +10 -10
- data/bin/commands/migration.rb +14 -0
- data/bin/commands/rtm.rb +2 -4
- data/bin/commands/users.rb +18 -18
- data/bin/commands/users_admin.rb +28 -0
- data/bin/commands/users_prefs.rb +12 -0
- data/bin/commands.rb +5 -1
- data/bin/slack +1 -1
- data/examples/hi_real_time/hi.rb +1 -1
- data/examples/hi_real_time_and_web/hi.rb +1 -1
- data/examples/hi_real_time_async_celluloid/hi.rb +1 -1
- data/examples/hi_real_time_async_eventmachine/hi.rb +1 -1
- data/examples/hi_web/hi.rb +1 -1
- data/examples/new_ticket/new_ticket.rb +1 -1
- data/lib/slack/messages/formatting.rb +4 -4
- data/lib/slack/messages/message.rb +1 -2
- data/lib/slack/real_time/api/templates/event_handler.erb +1 -1
- data/lib/slack/real_time/client.rb +10 -9
- data/lib/slack/real_time/concurrency/celluloid.rb +5 -1
- data/lib/slack/real_time/config.rb +11 -11
- data/lib/slack/real_time/models/base.rb +1 -2
- data/lib/slack/real_time/socket.rb +2 -2
- data/lib/slack/real_time/stores/base.rb +1 -2
- data/lib/slack/real_time/stores/starter.rb +76 -76
- data/lib/slack/real_time/stores/store.rb +104 -94
- data/lib/slack/version.rb +1 -1
- data/lib/slack/web/api/endpoints/api.rb +1 -1
- data/lib/slack/web/api/endpoints/apps_permissions.rb +2 -2
- data/lib/slack/web/api/endpoints/auth.rb +2 -2
- data/lib/slack/web/api/endpoints/bots.rb +1 -1
- data/lib/slack/web/api/endpoints/channels.rb +27 -15
- data/lib/slack/web/api/endpoints/chat.rb +42 -9
- data/lib/slack/web/api/endpoints/conversations.rb +17 -17
- data/lib/slack/web/api/endpoints/dialog.rb +32 -0
- data/lib/slack/web/api/endpoints/dnd.rb +5 -5
- data/lib/slack/web/api/endpoints/emoji.rb +1 -1
- data/lib/slack/web/api/endpoints/files.rb +37 -6
- data/lib/slack/web/api/endpoints/files_comments.rb +3 -3
- data/lib/slack/web/api/endpoints/groups.rb +17 -17
- data/lib/slack/web/api/endpoints/im.rb +6 -6
- data/lib/slack/web/api/endpoints/migration.rb +25 -0
- data/lib/slack/web/api/endpoints/mpim.rb +6 -6
- data/lib/slack/web/api/endpoints/oauth.rb +2 -2
- data/lib/slack/web/api/endpoints/pins.rb +3 -3
- data/lib/slack/web/api/endpoints/presence.rb +1 -1
- data/lib/slack/web/api/endpoints/reactions.rb +4 -4
- data/lib/slack/web/api/endpoints/reminders.rb +5 -5
- data/lib/slack/web/api/endpoints/rtm.rb +3 -7
- data/lib/slack/web/api/endpoints/search.rb +3 -3
- data/lib/slack/web/api/endpoints/stars.rb +3 -3
- data/lib/slack/web/api/endpoints/team.rb +4 -4
- data/lib/slack/web/api/endpoints/team_profile.rb +1 -1
- data/lib/slack/web/api/endpoints/usergroups.rb +5 -5
- data/lib/slack/web/api/endpoints/usergroups_users.rb +2 -2
- data/lib/slack/web/api/endpoints/users.rb +8 -8
- data/lib/slack/web/api/endpoints/users_admin.rb +46 -0
- data/lib/slack/web/api/endpoints/users_prefs.rb +19 -0
- data/lib/slack/web/api/endpoints/users_profile.rb +2 -2
- data/lib/slack/web/api/endpoints.rb +10 -2
- data/lib/slack/web/api/mixins/ids.id.rb +1 -1
- data/lib/slack/web/api/mixins/users.search.rb +38 -36
- data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +1 -1
- data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +1 -1
- data/lib/slack/web/api/patches/dialog.1.open-json-support.patch +17 -0
- data/lib/slack/web/api/templates/command.erb +2 -1
- data/lib/slack/web/api/templates/commands.erb +1 -1
- data/lib/slack/web/api/templates/endpoints.erb +2 -2
- data/lib/slack/web/api/templates/method.erb +8 -3
- data/lib/slack/web/api/templates/method_spec.erb +1 -1
- data/lib/slack/web/config.rb +12 -12
- data/lib/slack/web/faraday/response/raise_error.rb +3 -3
- data/lib/tasks/git.rake +1 -1
- data/lib/tasks/real_time.rake +1 -1
- data/lib/tasks/web.rake +4 -1
- data/slack-ruby-client.gemspec +2 -3
- data/spec/slack/messages/formatting_spec.rb +1 -1
- data/spec/slack/real_time/client_spec.rb +3 -2
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +1 -1
- data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +1 -1
- data/spec/slack/real_time/event_handlers/bot_spec.rb +4 -2
- data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +1 -1
- data/spec/slack/real_time/event_handlers/user_spec.rb +4 -2
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +28 -0
- data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +8 -6
- data/spec/slack/web/api/endpoints/files_spec.rb +16 -0
- data/spec/slack/web/api/endpoints/migration_spec.rb +12 -0
- data/spec/slack/web/api/endpoints/users_admin_spec.rb +17 -0
- data/spec/slack/web/api/endpoints/users_prefs_spec.rb +7 -0
- data/spec/slack/web/api/error_spec.rb +1 -1
- data/spec/slack/web/api/errors/slack_error_spec.rb +1 -1
- data/spec/slack/web/api/mixins/users_spec.rb +6 -4
- data/spec/support/queue_with_timeout.rb +1 -1
- data/spec/support/real_time/concurrency/mock.rb +1 -2
- metadata +34 -31
@@ -0,0 +1,19 @@
|
|
1
|
+
# This file was auto-generated by lib/tasks/web.rake
|
2
|
+
|
3
|
+
module Slack
|
4
|
+
module Web
|
5
|
+
module Api
|
6
|
+
module Endpoints
|
7
|
+
module UsersPrefs
|
8
|
+
#
|
9
|
+
# Returns the user's preferences (undocumented)
|
10
|
+
#
|
11
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/users.prefs/users.prefs.get.json
|
12
|
+
def users_prefs_get(options = {})
|
13
|
+
post('users.prefs.get', options)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -13,7 +13,7 @@ module Slack
|
|
13
13
|
# @option options [user] :user
|
14
14
|
# User to retrieve profile info for.
|
15
15
|
# @see https://api.slack.com/methods/users.profile.get
|
16
|
-
# @see https://github.com/
|
16
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users.profile/users.profile.get.json
|
17
17
|
def users_profile_get(options = {})
|
18
18
|
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
19
19
|
post('users.profile.get', options)
|
@@ -31,7 +31,7 @@ module Slack
|
|
31
31
|
# @option options [Object] :value
|
32
32
|
# Value to set a single key to. Usable only if profile is not passed.
|
33
33
|
# @see https://api.slack.com/methods/users.profile.set
|
34
|
-
# @see https://github.com/
|
34
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users.profile/users.profile.set.json
|
35
35
|
def users_profile_set(options = {})
|
36
36
|
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
37
37
|
post('users.profile.set', options)
|
@@ -7,12 +7,14 @@ require_relative 'endpoints/bots'
|
|
7
7
|
require_relative 'endpoints/channels'
|
8
8
|
require_relative 'endpoints/chat'
|
9
9
|
require_relative 'endpoints/conversations'
|
10
|
+
require_relative 'endpoints/dialog'
|
10
11
|
require_relative 'endpoints/dnd'
|
11
12
|
require_relative 'endpoints/emoji'
|
12
|
-
require_relative 'endpoints/files_comments'
|
13
13
|
require_relative 'endpoints/files'
|
14
|
+
require_relative 'endpoints/files_comments'
|
14
15
|
require_relative 'endpoints/groups'
|
15
16
|
require_relative 'endpoints/im'
|
17
|
+
require_relative 'endpoints/migration'
|
16
18
|
require_relative 'endpoints/mpim'
|
17
19
|
require_relative 'endpoints/oauth'
|
18
20
|
require_relative 'endpoints/pins'
|
@@ -26,6 +28,8 @@ require_relative 'endpoints/team_profile'
|
|
26
28
|
require_relative 'endpoints/usergroups'
|
27
29
|
require_relative 'endpoints/usergroups_users'
|
28
30
|
require_relative 'endpoints/users'
|
31
|
+
require_relative 'endpoints/users_admin'
|
32
|
+
require_relative 'endpoints/users_prefs'
|
29
33
|
require_relative 'endpoints/users_profile'
|
30
34
|
|
31
35
|
module Slack
|
@@ -43,12 +47,14 @@ module Slack
|
|
43
47
|
include Channels
|
44
48
|
include Chat
|
45
49
|
include Conversations
|
50
|
+
include Dialog
|
46
51
|
include Dnd
|
47
52
|
include Emoji
|
48
|
-
include FilesComments
|
49
53
|
include Files
|
54
|
+
include FilesComments
|
50
55
|
include Groups
|
51
56
|
include Im
|
57
|
+
include Migration
|
52
58
|
include Mpim
|
53
59
|
include Oauth
|
54
60
|
include Pins
|
@@ -62,6 +68,8 @@ module Slack
|
|
62
68
|
include Usergroups
|
63
69
|
include UsergroupsUsers
|
64
70
|
include Users
|
71
|
+
include UsersAdmin
|
72
|
+
include UsersPrefs
|
65
73
|
include UsersProfile
|
66
74
|
end
|
67
75
|
end
|
@@ -1,43 +1,45 @@
|
|
1
|
-
|
2
|
-
module
|
3
|
-
module
|
4
|
-
module
|
5
|
-
module
|
6
|
-
|
1
|
+
if defined?(Picky)
|
2
|
+
module Slack
|
3
|
+
module Web
|
4
|
+
module Api
|
5
|
+
module Mixins
|
6
|
+
module Users
|
7
|
+
Member = Struct.new :id, :name, :first_name, :last_name, :real_name, :email
|
7
8
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
9
|
+
#
|
10
|
+
# This method searches for users.
|
11
|
+
#
|
12
|
+
# @option options [user] :user
|
13
|
+
# Free-formed text to search for.
|
14
|
+
def users_search(options = {})
|
15
|
+
query = options[:user]
|
16
|
+
throw ArgumentError.new('Required arguments :user missing') if query.nil?
|
17
|
+
index = Picky::Index.new(:users) do
|
18
|
+
category :name
|
19
|
+
category :first_name
|
20
|
+
category :last_name
|
21
|
+
category :real_name
|
22
|
+
category :email
|
23
|
+
end
|
24
|
+
members = users_list.members
|
25
|
+
members.each_with_index do |member, id|
|
26
|
+
user = Member.new(
|
27
|
+
id,
|
28
|
+
member.name,
|
29
|
+
member.profile.first_name,
|
30
|
+
member.profile.last_name,
|
31
|
+
member.profile.real_name,
|
32
|
+
member.profile.email
|
33
|
+
)
|
34
|
+
index.add(user)
|
35
|
+
end
|
36
|
+
ids = Picky::Search.new(index).search(query, 5, 0, unique: true).ids
|
37
|
+
results = ids.map { |id| members[id] }
|
38
|
+
Slack::Messages::Message.new('ok' => true, 'members' => results)
|
22
39
|
end
|
23
|
-
members = users_list.members
|
24
|
-
members.each_with_index do |member, id|
|
25
|
-
user = Member.new(
|
26
|
-
id,
|
27
|
-
member.name,
|
28
|
-
member.profile.first_name,
|
29
|
-
member.profile.last_name,
|
30
|
-
member.profile.real_name,
|
31
|
-
member.profile.email
|
32
|
-
)
|
33
|
-
index.add(user)
|
34
|
-
end
|
35
|
-
ids = Picky::Search.new(index).search(query, 5, 0, unique: true).ids
|
36
|
-
results = ids.map { |id| members[id] }
|
37
|
-
Slack::Messages::Message.new('ok' => true, 'members' => results)
|
38
40
|
end
|
39
41
|
end
|
40
42
|
end
|
41
43
|
end
|
42
44
|
end
|
43
|
-
end
|
45
|
+
end
|
@@ -3,7 +3,7 @@ index 1f7a8d7..2ec4bed 100644
|
|
3
3
|
--- a/lib/slack/web/api/endpoints/chat.rb
|
4
4
|
+++ b/lib/slack/web/api/endpoints/chat.rb
|
5
5
|
@@ -49,7 +49,7 @@ module Slack
|
6
|
-
# @see https://github.com/
|
6
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.postMessage.json
|
7
7
|
def chat_postMessage(options = {})
|
8
8
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
9
9
|
- throw ArgumentError.new('Required arguments :text missing') if options[:text].nil?
|
@@ -3,7 +3,7 @@ index 5186416..490bc91 100644
|
|
3
3
|
--- a/lib/slack/web/api/endpoints/chat.rb
|
4
4
|
+++ b/lib/slack/web/api/endpoints/chat.rb
|
5
5
|
@@ -154,9 +154,15 @@ module Slack
|
6
|
-
# @see https://github.com/
|
6
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.update.json
|
7
7
|
def chat_update(options = {})
|
8
8
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
9
9
|
- throw ArgumentError.new('Required arguments :text missing') if options[:text].nil?
|
@@ -0,0 +1,17 @@
|
|
1
|
+
diff --git a/lib/slack/web/api/endpoints/dialog.rb b/lib/slack/web/api/endpoints/dialog.rb
|
2
|
+
index 01f9dfd..d017adf 100644
|
3
|
+
--- a/lib/slack/web/api/endpoints/dialog.rb
|
4
|
+
+++ b/lib/slack/web/api/endpoints/dialog.rb
|
5
|
+
@@ -17,6 +17,12 @@ module Slack
|
6
|
+
def dialog_open(options = {})
|
7
|
+
throw ArgumentError.new('Required arguments :dialog missing') if options[:dialog].nil?
|
8
|
+
throw ArgumentError.new('Required arguments :trigger_id missing') if options[:trigger_id].nil?
|
9
|
+
+ # dialog must be passed as an encoded JSON string
|
10
|
+
+ if options.key?(:dialog)
|
11
|
+
+ dialog = options[:dialog]
|
12
|
+
+ dialog = JSON.dump(dialog) unless dialog.is_a?(String)
|
13
|
+
+ options = options.merge(dialog: dialog)
|
14
|
+
+ end
|
15
|
+
post('dialog.open', options)
|
16
|
+
end
|
17
|
+
end
|
@@ -7,11 +7,12 @@ desc "<%= desc %>"
|
|
7
7
|
desc '<%= desc %>'
|
8
8
|
<% end %>
|
9
9
|
command '<%= group['name'].gsub(".", "_") %>' do |g|
|
10
|
-
<% names.each_with_index do |(name, data), index| %>
|
10
|
+
<% names.sort.each_with_index do |(name, data), index| %>
|
11
11
|
<% if index > 0 %>
|
12
12
|
|
13
13
|
<% end %>
|
14
14
|
<% short_desc = data["desc"].split("\n").first %>
|
15
|
+
<% short_desc += ' (undocumented)' if data['undocumented'] %>
|
15
16
|
<% if short_desc.include?("'") %>
|
16
17
|
g.desc "<%= short_desc %>"
|
17
18
|
<% else %>
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# This file was auto-generated by lib/tasks/web.rake
|
2
2
|
|
3
|
-
<% files.each do |f| %>
|
3
|
+
<% files.sort.each do |f| %>
|
4
4
|
require_relative 'endpoints/<%= f %>'
|
5
5
|
<% end %>
|
6
6
|
|
@@ -12,7 +12,7 @@ module Slack
|
|
12
12
|
include Slack::Web::Api::Mixins::Users
|
13
13
|
include Slack::Web::Api::Mixins::Groups
|
14
14
|
|
15
|
-
<% files.each do |f| %>
|
15
|
+
<% files.sort.each do |f| %>
|
16
16
|
include <%= f.camelize %>
|
17
17
|
<% end %>
|
18
18
|
end
|
@@ -5,13 +5,14 @@ module Slack
|
|
5
5
|
module Api
|
6
6
|
module Endpoints
|
7
7
|
module <%= group.gsub(".", "_").camelize %>
|
8
|
-
<% names.each_with_index do |(name, data), index| %>
|
8
|
+
<% names.sort.each_with_index do |(name, data), index| %>
|
9
9
|
<% next if data['mixin'] %>
|
10
10
|
<% if index > 0 %>
|
11
11
|
|
12
12
|
<% end %>
|
13
13
|
#
|
14
|
-
<% data['desc'].split("\n").
|
14
|
+
<% data['desc'].split("\n").each_with_index do |line, index| %>
|
15
|
+
<% line += ' (undocumented)' if data['undocumented'] && index == 0 %>
|
15
16
|
# <%= line %>
|
16
17
|
<% end %>
|
17
18
|
#
|
@@ -25,8 +26,12 @@ module Slack
|
|
25
26
|
<% end %>
|
26
27
|
<% end %>
|
27
28
|
<% end %>
|
29
|
+
<% if data['undocumented'] %>
|
30
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/undocumented/<%= group %>/<%= group %>.<%= name %>.json
|
31
|
+
<% else %>
|
28
32
|
# @see https://api.slack.com/methods/<%= group %>.<%= name %>
|
29
|
-
# @see https://github.com/
|
33
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/<%= group %>/<%= group %>.<%= name %>.json
|
34
|
+
<% end %>
|
30
35
|
def <%= group.gsub(".", "_") %>_<%= name %>(options = {})
|
31
36
|
<% data['args'].select{ |k, v| v['required'] }.each do |arg_name, arg_v| %>
|
32
37
|
throw ArgumentError.new('Required arguments :<%= arg_name %> missing') if options[:<%= arg_name %>].nil?
|
@@ -4,7 +4,7 @@ require 'spec_helper'
|
|
4
4
|
|
5
5
|
RSpec.describe Slack::Web::Api::Endpoints::<%= group.gsub(".", "_").camelize %> do
|
6
6
|
let(:client) { Slack::Web::Client.new }
|
7
|
-
<% names.each_with_index do |(name, data), index| %>
|
7
|
+
<% names.sort.each_with_index do |(name, data), index| %>
|
8
8
|
<% next if data['mixin'] %>
|
9
9
|
<% required_params = data['args'].select{ |k, v| v['required'] } %>
|
10
10
|
<% next if required_params.none? %>
|
data/lib/slack/web/config.rb
CHANGED
@@ -3,18 +3,18 @@ module Slack
|
|
3
3
|
module Config
|
4
4
|
extend self
|
5
5
|
|
6
|
-
ATTRIBUTES = [
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
6
|
+
ATTRIBUTES = %i[
|
7
|
+
proxy
|
8
|
+
user_agent
|
9
|
+
ca_path
|
10
|
+
ca_file
|
11
|
+
logger
|
12
|
+
endpoint
|
13
|
+
token
|
14
|
+
timeout
|
15
|
+
open_timeout
|
16
|
+
default_page_size
|
17
|
+
default_max_retries
|
18
18
|
].freeze
|
19
19
|
|
20
20
|
attr_accessor(*Config::ATTRIBUTES)
|
@@ -5,11 +5,11 @@ module Slack
|
|
5
5
|
class RaiseError < ::Faraday::Response::Middleware
|
6
6
|
def on_complete(env)
|
7
7
|
if env.status == 429
|
8
|
-
|
8
|
+
raise Slack::Web::Api::Errors::TooManyRequestsError, env.response
|
9
9
|
elsif (body = env.body) && body['ok']
|
10
|
-
|
10
|
+
nil
|
11
11
|
else
|
12
|
-
|
12
|
+
raise Slack::Web::Api::Errors::SlackError.new(body['error'], env.response)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
data/lib/tasks/git.rake
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
namespace :slack do
|
2
|
-
# update slack-api-ref from https://github.com/
|
2
|
+
# update slack-api-ref from https://github.com/slack-ruby/slack-api-ref
|
3
3
|
task :git_update do
|
4
4
|
sh 'git submodule update --init --recursive'
|
5
5
|
sh 'git submodule foreach git pull origin master'
|
data/lib/tasks/real_time.rake
CHANGED
@@ -14,7 +14,7 @@ namespace :slack do
|
|
14
14
|
name = File.basename(path, '.json')
|
15
15
|
parsed = JSON.parse(File.read(path))
|
16
16
|
JSON::Validator.validate(event_schema, parsed, insert_defaults: true)
|
17
|
-
next if %w
|
17
|
+
next if %w[message hello].include?(name)
|
18
18
|
result[name] = parsed
|
19
19
|
end
|
20
20
|
|
data/lib/tasks/web.rake
CHANGED
@@ -13,6 +13,7 @@ namespace :slack do
|
|
13
13
|
groups = Dir.glob('lib/slack/web/api/slack-api-ref/groups/**/*.json').each_with_object({}) do |path, result|
|
14
14
|
name = File.basename(path, '.json')
|
15
15
|
parsed = JSON.parse(File.read(path))
|
16
|
+
parsed['undocumented'] = true if path =~ /undocumented/
|
16
17
|
JSON::Validator.validate(group_schema, parsed, insert_defaults: true)
|
17
18
|
result[name] = parsed
|
18
19
|
end
|
@@ -27,6 +28,7 @@ namespace :slack do
|
|
27
28
|
name = file_name.split('.')[-1]
|
28
29
|
result[prefix] ||= {}
|
29
30
|
parsed = JSON.parse(File.read(path))
|
31
|
+
parsed['undocumented'] = true if path =~ /undocumented/
|
30
32
|
JSON::Validator.validate(method_schema, parsed, insert_defaults: true)
|
31
33
|
result[prefix][name] = parsed
|
32
34
|
end
|
@@ -47,9 +49,10 @@ namespace :slack do
|
|
47
49
|
end
|
48
50
|
Dir.glob("lib/slack/web/api/patches/#{group}*.patch").sort.each do |patch|
|
49
51
|
puts "- patching #{patch}"
|
50
|
-
system("git apply #{patch}") ||
|
52
|
+
system("git apply #{patch}") || raise('failed to apply patch')
|
51
53
|
end
|
52
54
|
# command
|
55
|
+
raise "Missing group #{group}" unless groups.key?(group)
|
53
56
|
rendered_command = command_template.result(group: groups[group], names: names)
|
54
57
|
File.write "bin/commands/#{snaked_group}.rb", rendered_command
|
55
58
|
end
|
data/slack-ruby-client.gemspec
CHANGED
@@ -19,15 +19,14 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.add_dependency 'activesupport'
|
20
20
|
s.add_dependency 'faraday', '>= 0.9'
|
21
21
|
s.add_dependency 'faraday_middleware'
|
22
|
-
s.add_dependency 'json'
|
23
|
-
s.add_dependency 'websocket-driver'
|
24
22
|
s.add_dependency 'gli'
|
25
23
|
s.add_dependency 'hashie'
|
24
|
+
s.add_dependency 'websocket-driver'
|
26
25
|
s.add_development_dependency 'erubis'
|
27
26
|
s.add_development_dependency 'json-schema'
|
28
27
|
s.add_development_dependency 'rake', '~> 10'
|
29
28
|
s.add_development_dependency 'rspec'
|
29
|
+
s.add_development_dependency 'rubocop', '0.51.0'
|
30
30
|
s.add_development_dependency 'vcr'
|
31
31
|
s.add_development_dependency 'webmock'
|
32
|
-
s.add_development_dependency 'rubocop', '0.35.0'
|
33
32
|
end
|
@@ -235,7 +235,7 @@ RSpec.describe Slack::RealTime::Client do
|
|
235
235
|
it 'sets default store_class' do
|
236
236
|
expect(client.send(:store_class)).to eq Slack::RealTime::Store
|
237
237
|
end
|
238
|
-
(Slack::RealTime::Config::ATTRIBUTES - [
|
238
|
+
(Slack::RealTime::Config::ATTRIBUTES - %i[logger store_class]).each do |key|
|
239
239
|
it "sets #{key}" do
|
240
240
|
expect(client.send(key)).to eq Slack::RealTime::Config.send(key)
|
241
241
|
end
|
@@ -304,7 +304,8 @@ RSpec.describe Slack::RealTime::Client do
|
|
304
304
|
proxy: {
|
305
305
|
origin: 'http://username:password@proxy.example.com',
|
306
306
|
headers: { 'User-Agent' => 'ruby' }
|
307
|
-
}
|
307
|
+
}
|
308
|
+
).and_return(ws)
|
308
309
|
client.start!
|
309
310
|
end
|
310
311
|
end
|