slack-ruby-client 0.11.1 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +9 -0
  3. data/.rubocop_todo.yml +39 -47
  4. data/.travis.yml +2 -2
  5. data/CHANGELOG.md +13 -1
  6. data/Gemfile +0 -1
  7. data/README.md +5 -5
  8. data/RELEASING.md +1 -1
  9. data/bin/commands.rb +3 -0
  10. data/bin/commands/apps_permissions_resources.rb +14 -0
  11. data/bin/commands/apps_permissions_scopes.rb +12 -0
  12. data/bin/commands/apps_permissions_users.rb +25 -0
  13. data/bin/commands/chat.rb +3 -2
  14. data/bin/commands/conversations.rb +1 -0
  15. data/bin/commands/files.rb +4 -1
  16. data/bin/commands/groups.rb +2 -0
  17. data/bin/commands/mpim.rb +2 -0
  18. data/bin/commands/oauth.rb +3 -2
  19. data/bin/commands/reactions.rb +2 -0
  20. data/bin/commands/rtm.rb +4 -2
  21. data/bin/commands/search.rb +2 -2
  22. data/bin/commands/stars.rb +2 -0
  23. data/bin/commands/users.rb +16 -3
  24. data/bin/commands/users_profile.rb +1 -1
  25. data/examples/hi_real_time_async_celluloid/hi.rb +3 -4
  26. data/examples/hi_real_time_async_eventmachine/hi.rb +3 -4
  27. data/lib/slack/messages/formatting.rb +0 -1
  28. data/lib/slack/real_time/concurrency/celluloid.rb +3 -2
  29. data/lib/slack/real_time/stores/starter.rb +10 -0
  30. data/lib/slack/real_time/stores/store.rb +10 -0
  31. data/lib/slack/version.rb +1 -1
  32. data/lib/slack/web/api/endpoints.rb +6 -0
  33. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +30 -0
  34. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +20 -0
  35. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +49 -0
  36. data/lib/slack/web/api/endpoints/chat.rb +5 -3
  37. data/lib/slack/web/api/endpoints/conversations.rb +2 -0
  38. data/lib/slack/web/api/endpoints/files.rb +14 -2
  39. data/lib/slack/web/api/endpoints/groups.rb +11 -1
  40. data/lib/slack/web/api/endpoints/mpim.rb +11 -1
  41. data/lib/slack/web/api/endpoints/oauth.rb +3 -1
  42. data/lib/slack/web/api/endpoints/reactions.rb +11 -1
  43. data/lib/slack/web/api/endpoints/rtm.rb +5 -1
  44. data/lib/slack/web/api/endpoints/search.rb +2 -2
  45. data/lib/slack/web/api/endpoints/stars.rb +11 -1
  46. data/lib/slack/web/api/endpoints/users.rb +28 -2
  47. data/lib/slack/web/api/endpoints/users_profile.rb +1 -1
  48. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +13 -0
  49. data/slack-ruby-client.gemspec +1 -1
  50. data/spec/slack/messages/formatting_spec.rb +0 -1
  51. data/spec/slack/real_time/concurrency/celluloid_spec.rb +79 -35
  52. data/spec/slack/slack_spec.rb +2 -2
  53. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +7 -0
  54. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +7 -0
  55. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +18 -0
  56. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +6 -2
  57. data/spec/slack/web/api/mixins/channels_spec.rb +8 -6
  58. data/spec/slack/web/api/mixins/groups_spec.rb +8 -6
  59. data/spec/slack/web/api/mixins/users_spec.rb +9 -7
  60. metadata +18 -5
@@ -9,6 +9,8 @@ module Slack
9
9
  # Starts a Real Time Messaging session.
10
10
  #
11
11
  # @option options [Object] :batch_presence_aware
12
+ # Batch presence deliveries via subscription. Enabling changes the shape of presence_change events. See batch presence.
13
+ # @option options [Object] :presence_sub
12
14
  # Only deliver presence events when requested by subscription. See presence subscriptions.
13
15
  # @see https://api.slack.com/methods/rtm.connect
14
16
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/rtm/rtm.connect.json
@@ -20,7 +22,7 @@ module Slack
20
22
  # Starts a Real Time Messaging session.
21
23
  #
22
24
  # @option options [Object] :batch_presence_aware
23
- # Only deliver presence events when requested by subscription. See presence subscriptions.
25
+ # Batch presence deliveries via subscription. Enabling changes the shape of presence_change events. See batch presence.
24
26
  # @option options [Object] :include_locale
25
27
  # Set this to true to receive the locale for users and channels. Defaults to false.
26
28
  # @option options [Object] :mpim_aware
@@ -29,6 +31,8 @@ module Slack
29
31
  # Exclude latest timestamps for channels, groups, mpims, and ims. Automatically sets no_unreads to 1.
30
32
  # @option options [Object] :no_unreads
31
33
  # Skip unread counts for each channel (improves performance).
34
+ # @option options [Object] :presence_sub
35
+ # Only deliver presence events when requested by subscription. See presence subscriptions.
32
36
  # @option options [Object] :simple_latest
33
37
  # Return timestamp only for latest message object of each channel (improves performance).
34
38
  # @see https://api.slack.com/methods/rtm.start
@@ -27,7 +27,7 @@ module Slack
27
27
  # Searches for files matching a query.
28
28
  #
29
29
  # @option options [Object] :query
30
- # Search query. May contain booleans, etc.
30
+ # Search query.
31
31
  # @option options [Object] :highlight
32
32
  # Pass a value of true to enable query highlight markers (see below).
33
33
  # @option options [Object] :sort
@@ -45,7 +45,7 @@ module Slack
45
45
  # Searches for messages matching a query.
46
46
  #
47
47
  # @option options [Object] :query
48
- # Search query. May contains booleans, etc.
48
+ # Search query.
49
49
  # @option options [Object] :highlight
50
50
  # Pass a value of true to enable query highlight markers (see below).
51
51
  # @option options [Object] :sort
@@ -26,10 +26,20 @@ module Slack
26
26
  #
27
27
  # Lists stars for a user.
28
28
  #
29
+ # @option options [Object] :cursor
30
+ # Parameter for pagination. Set cursor equal to the next_cursor attribute returned by the previous request's response_metadata. This parameter is optional, but pagination is mandatory: the default value simply fetches the first "page" of the collection. See pagination for more details.
31
+ # @option options [Object] :limit
32
+ # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached.
29
33
  # @see https://api.slack.com/methods/stars.list
30
34
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/stars/stars.list.json
31
35
  def stars_list(options = {})
32
- post('stars.list', options)
36
+ if block_given?
37
+ Pagination::Cursor.new(self, :stars_list, options).each do |page|
38
+ yield page
39
+ end
40
+ else
41
+ post('stars.list', options)
42
+ end
33
43
  end
34
44
 
35
45
  #
@@ -5,6 +5,32 @@ module Slack
5
5
  module Api
6
6
  module Endpoints
7
7
  module Users
8
+ #
9
+ # List conversations the calling user may access.
10
+ #
11
+ # @option options [Object] :cursor
12
+ # Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first "page" of the collection. See pagination for more detail.
13
+ # @option options [Object] :exclude_archived
14
+ # Set to true to exclude archived channels from the list.
15
+ # @option options [Object] :limit
16
+ # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the list hasn't been reached. Must be an integer no larger than 1000.
17
+ # @option options [Object] :types
18
+ # Mix and match channel types by providing a comma-separated list of any combination of public_channel, private_channel, mpim, im.
19
+ # @option options [user] :user
20
+ # Browse conversations by a specific user ID's membership. Non-public channels are restricted to those where the calling user shares membership.
21
+ # @see https://api.slack.com/methods/users.conversations
22
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.conversations.json
23
+ def users_conversations(options = {})
24
+ options = options.merge(user: users_id(options)['user']['id']) if options[:user]
25
+ if block_given?
26
+ Pagination::Cursor.new(self, :users_conversations, options).each do |page|
27
+ yield page
28
+ end
29
+ else
30
+ post('users.conversations', options)
31
+ end
32
+ end
33
+
8
34
  #
9
35
  # Delete the user profile photo
10
36
  #
@@ -61,7 +87,7 @@ module Slack
61
87
  # @option options [Object] :limit
62
88
  # The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached.
63
89
  # @option options [Object] :presence
64
- # Whether to include presence data in the output. Defaults to false. Setting this to true reduces performance, especially with large teams.
90
+ # Deprecated. Whether to include presence data in the output. Defaults to false. Setting this to true reduces performance, especially with large teams.
65
91
  # @see https://api.slack.com/methods/users.list
66
92
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.list.json
67
93
  def users_list(options = {})
@@ -87,7 +113,7 @@ module Slack
87
113
  end
88
114
 
89
115
  #
90
- # Marks a user as active.
116
+ # Marked a user as active. Deprecated and non-functional.
91
117
  #
92
118
  # @see https://api.slack.com/methods/users.setActive
93
119
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/users/users.setActive.json
@@ -25,7 +25,7 @@ module Slack
25
25
  # @option options [Object] :name
26
26
  # Name of a single key to set. Usable only if profile is not passed.
27
27
  # @option options [Object] :profile
28
- # Collection of key:value pairs presented as a URL-encoded JSON hash.
28
+ # Collection of key:value pairs presented as a URL-encoded JSON hash. At most 50 fields may be set. Each field name is limited to 255 characters.
29
29
  # @option options [user] :user
30
30
  # ID of user to change. This argument may only be specified by team admins on paid teams.
31
31
  # @option options [Object] :value
@@ -0,0 +1,13 @@
1
+ diff --git a/slack-ruby-client/lib/slack/web/api/endpoints/chat.rb b/slack-ruby-client-original/lib/slack/web/api/endpoints/chat.rb
2
+ index 194419e..2ef5c65 100644
3
+ --- a/lib/slack/web/api/endpoints/chat.rb
4
+ +++ b/lib/slack/web/api/endpoints/chat.rb
5
+ @@ -93,7 +93,7 @@ module Slack
6
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/chat/chat.postEphemeral.json
7
+ def chat_postEphemeral(options = {})
8
+ throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
9
+ - throw ArgumentError.new('Required arguments :text missing') if options[:text].nil?
10
+ + throw ArgumentError.new('Required arguments :text or :attachments missing') if options[:text].nil? && options[:attachments].nil?
11
+ throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
12
+ options = options.merge(user: users_id(options)['user']['id']) if options[:user]
13
+ # attachments must be passed as an encoded JSON string
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
26
26
  s.add_development_dependency 'json-schema'
27
27
  s.add_development_dependency 'rake', '~> 10'
28
28
  s.add_development_dependency 'rspec'
29
- s.add_development_dependency 'rubocop', '0.51.0'
29
+ s.add_development_dependency 'rubocop', '0.58.2'
30
30
  s.add_development_dependency 'vcr'
31
31
  s.add_development_dependency 'webmock'
32
32
  end
@@ -1,4 +1,3 @@
1
-
2
1
  require 'spec_helper'
3
2
 
4
3
  describe Slack::Messages::Formatting do
@@ -4,59 +4,103 @@ require_relative './it_behaves_like_a_realtime_socket'
4
4
  begin
5
5
  RSpec.describe Slack::RealTime::Concurrency::Celluloid::Socket do
6
6
  it_behaves_like 'a realtime socket'
7
- context 'with url' do
8
- let(:url) { 'wss://echo.websocket.org/websocket/xyz' }
9
- let(:logger) { ::Logger.new(STDOUT) }
10
-
11
- [EOFError, Errno::EPIPE].each do |err|
12
- context "finishing run_loop with #{err}" do
13
- let(:test_socket) do
14
- Class.new(described_class) do
15
- def read
16
- raise options[:err]
17
- end
7
+
8
+ let(:url) { 'wss://echo.websocket.org/websocket/xyz' }
9
+ let(:logger) { ::Logger.new(STDOUT) }
10
+
11
+ let(:driver) { WebSocket::Driver::Client }
12
+ let(:ws) { double(driver) }
13
+ subject { socket }
14
+
15
+ ['', nil].each do |data|
16
+ context "finishing run_loop with #{data ? 'empty' : 'nil'} read" do
17
+ let(:ssl_socket) do
18
+ Class.new(Celluloid::IO::SSLSocket) do
19
+ def initialize(data)
20
+ @data = data
21
+ end
22
+
23
+ def connect; end
24
+
25
+ def readpartial(_size)
26
+ @data
18
27
  end
19
28
  end
29
+ end
20
30
 
21
- let(:socket) do
22
- test_socket.new(url, ping: 42, logger: logger, err: err)
31
+ let(:test_socket) do
32
+ Class.new(described_class) do
33
+ def build_socket
34
+ options[:ssl_socket].new(options[:data])
35
+ end
23
36
  end
37
+ end
24
38
 
25
- let(:driver) { WebSocket::Driver::Client }
26
- let(:ws) { double(driver) }
27
- subject { socket }
39
+ let(:socket) do
40
+ test_socket.new(url, logger: logger, data: data, ssl_socket: ssl_socket)
41
+ end
28
42
 
29
- describe '#connect!' do
30
- pending 'connects'
31
- pending 'pings every 30s'
43
+ context 'with a driver' do
44
+ before do
45
+ socket.instance_variable_set('@driver', ws)
32
46
  end
33
47
 
34
- context 'with a driver' do
35
- before do
36
- socket.instance_variable_set('@driver', ws)
48
+ context 'consumes data' do
49
+ it 'runs' do
50
+ expect(ws).to receive(:emit)
51
+ expect(ws).to receive(:start)
52
+ expect(logger).to receive(:debug).with("#{test_socket}#run_loop")
53
+ socket.run_loop
37
54
  end
55
+ end
56
+ end
57
+ end
58
+ end
38
59
 
39
- describe '#disconnect!' do
40
- it 'closes and nils the websocket' do
41
- expect(ws).to receive(:close)
42
- socket.disconnect!
43
- end
60
+ [EOFError, Errno::ECONNRESET, Errno::EPIPE].each do |err|
61
+ context "finishing run_loop with #{err}" do
62
+ let(:test_socket) do
63
+ Class.new(described_class) do
64
+ def read
65
+ raise options[:err]
44
66
  end
67
+ end
68
+ end
69
+
70
+ let(:socket) do
71
+ test_socket.new(url, logger: logger, err: err)
72
+ end
73
+
74
+ context 'with a driver' do
75
+ before do
76
+ socket.instance_variable_set('@driver', ws)
77
+ end
45
78
 
46
- context 'consumes data' do
47
- it 'runs' do
48
- expect(ws).to receive(:emit)
49
- expect(ws).to receive(:start)
50
- expect(logger).to receive(:debug).with("#{test_socket}#run_loop")
51
- socket.run_loop
52
- end
79
+ describe '#disconnect!' do
80
+ it 'closes and nils the websocket' do
81
+ expect(ws).to receive(:close)
82
+ socket.disconnect!
53
83
  end
54
84
  end
55
85
 
56
- pending 'send_data'
86
+ context 'consumes data' do
87
+ it 'runs' do
88
+ expect(ws).to receive(:emit)
89
+ expect(ws).to receive(:start)
90
+ expect(logger).to receive(:debug).with("#{test_socket}#run_loop")
91
+ socket.run_loop
92
+ end
93
+ end
57
94
  end
58
95
  end
59
96
  end
97
+
98
+ describe '#connect!' do
99
+ pending 'connects'
100
+ pending 'pings every 30s'
101
+ end
102
+
103
+ pending 'send_data'
60
104
  end
61
105
  rescue LoadError
62
106
  end
@@ -17,8 +17,8 @@ describe Slack do
17
17
  context 'globals' do
18
18
  it 'enables request and response logging with -d' do
19
19
  output = `"#{slack}" --vcr-cassette-name=web/auth_test_success --slack-api-token=token -d auth test 2>&1`
20
- expect(output).to include 'post https://slack.com/api/auth.test'
21
- expect(output).to include 'Status: 200'
20
+ expect(output).to include 'POST https://slack.com/api/auth.test'
21
+ expect(output).to include 'Status 200'
22
22
  end
23
23
  it 'requires --slack-api-token' do
24
24
  err = `"#{slack}" auth test 2>&1`
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by lib/tasks/web.rake
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe Slack::Web::Api::Endpoints::AppsPermissionsResources do
6
+ let(:client) { Slack::Web::Client.new }
7
+ end
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by lib/tasks/web.rake
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe Slack::Web::Api::Endpoints::AppsPermissionsScopes do
6
+ let(:client) { Slack::Web::Client.new }
7
+ end
@@ -0,0 +1,18 @@
1
+ # This file was auto-generated by lib/tasks/web.rake
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe Slack::Web::Api::Endpoints::AppsPermissionsUsers do
6
+ let(:client) { Slack::Web::Client.new }
7
+ context 'apps.permissions.users_request' do
8
+ it 'requires scopes' do
9
+ expect { client.apps_permissions_users_request(trigger_id: ' ', user: ' ') }.to raise_error ArgumentError, /Required arguments :scopes missing/
10
+ end
11
+ it 'requires trigger_id' do
12
+ expect { client.apps_permissions_users_request(scopes: ' ', user: ' ') }.to raise_error ArgumentError, /Required arguments :trigger_id missing/
13
+ end
14
+ it 'requires user' do
15
+ expect { client.apps_permissions_users_request(scopes: ' ', trigger_id: ' ') }.to raise_error ArgumentError, /Required arguments :user missing/
16
+ end
17
+ end
18
+ end
@@ -19,8 +19,8 @@ RSpec.describe Slack::Web::Api::Endpoints::Chat do
19
19
  client.chat_postEphemeral(channel: 'channel', text: 'text', user: '123', attachments: [])
20
20
  end
21
21
  context 'text and user arguments' do
22
- it 'requires text' do
23
- expect { client.chat_postEphemeral(channel: 'channel') }.to raise_error ArgumentError, /Required arguments :text missing/
22
+ it 'requires text or attachments' do
23
+ expect { client.chat_postEphemeral(channel: 'channel') }.to raise_error ArgumentError, /Required arguments :text or :attachments missing/
24
24
  end
25
25
  it 'requires user' do
26
26
  expect { client.chat_postEphemeral(channel: 'channel', text: 'text') }.to raise_error ArgumentError, /Required arguments :user missing/
@@ -35,6 +35,10 @@ RSpec.describe Slack::Web::Api::Endpoints::Chat do
35
35
  expect(client).to receive(:post).with('chat.postEphemeral', hash_including(attachments: '[]'))
36
36
  expect { client.chat_postEphemeral(channel: 'channel', text: 'text', user: '123', attachments: []) }.to_not raise_error
37
37
  end
38
+ it 'attachments without text' do
39
+ expect(client).to receive(:post).with('chat.postEphemeral', hash_including(attachments: '[]'))
40
+ expect { client.chat_postEphemeral(channel: 'channel', attachments: [], user: '123') }.to_not raise_error
41
+ end
38
42
  end
39
43
  end
40
44
 
@@ -10,12 +10,14 @@ RSpec.describe Slack::Web::Api::Mixins::Channels do
10
10
  klass.new
11
11
  end
12
12
  before do
13
- allow(subject).to receive(:channels_list).and_return(Slack::Messages::Message.new(
14
- 'channels' => [{
15
- 'id' => 'CDEADBEEF',
16
- 'name' => 'general'
17
- }]
18
- ))
13
+ allow(subject).to receive(:channels_list).and_return(
14
+ Slack::Messages::Message.new(
15
+ 'channels' => [{
16
+ 'id' => 'CDEADBEEF',
17
+ 'name' => 'general'
18
+ }]
19
+ )
20
+ )
19
21
  end
20
22
  context '#channels_id' do
21
23
  it 'leaves channels specified by ID alone' do
@@ -10,12 +10,14 @@ RSpec.describe Slack::Web::Api::Mixins::Groups do
10
10
  klass.new
11
11
  end
12
12
  before do
13
- allow(subject).to receive(:groups_list).and_return(Slack::Messages::Message.new(
14
- 'groups' => [{
15
- 'id' => 'CDEADBEEF',
16
- 'name' => 'general'
17
- }]
18
- ))
13
+ allow(subject).to receive(:groups_list).and_return(
14
+ Slack::Messages::Message.new(
15
+ 'groups' => [{
16
+ 'id' => 'CDEADBEEF',
17
+ 'name' => 'general'
18
+ }]
19
+ )
20
+ )
19
21
  end
20
22
  context '#groups_id' do
21
23
  it 'leaves groups specified by ID alone' do
@@ -10,13 +10,15 @@ RSpec.describe Slack::Web::Api::Mixins::Users do
10
10
  klass.new
11
11
  end
12
12
  before do
13
- allow(subject).to receive(:users_list).and_return(Slack::Messages::Message.new(
14
- 'members' => [{
15
- 'id' => 'UDEADBEEF',
16
- 'name' => 'aws',
17
- 'profile' => {}
18
- }]
19
- ))
13
+ allow(subject).to receive(:users_list).and_return(
14
+ Slack::Messages::Message.new(
15
+ 'members' => [{
16
+ 'id' => 'UDEADBEEF',
17
+ 'name' => 'aws',
18
+ 'profile' => {}
19
+ }]
20
+ )
21
+ )
20
22
  end
21
23
  context '#users_id' do
22
24
  it 'leaves users specified by ID alone' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.1
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Doubrovkine
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-23 00:00:00.000000000 Z
11
+ date: 2018-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - '='
158
158
  - !ruby/object:Gem::Version
159
- version: 0.51.0
159
+ version: 0.58.2
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - '='
165
165
  - !ruby/object:Gem::Version
166
- version: 0.51.0
166
+ version: 0.58.2
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: vcr
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -217,6 +217,9 @@ files:
217
217
  - bin/commands.rb
218
218
  - bin/commands/api.rb
219
219
  - bin/commands/apps_permissions.rb
220
+ - bin/commands/apps_permissions_resources.rb
221
+ - bin/commands/apps_permissions_scopes.rb
222
+ - bin/commands/apps_permissions_users.rb
220
223
  - bin/commands/auth.rb
221
224
  - bin/commands/bots.rb
222
225
  - bin/commands/channels.rb
@@ -298,6 +301,9 @@ files:
298
301
  - lib/slack/web/api/endpoints.rb
299
302
  - lib/slack/web/api/endpoints/api.rb
300
303
  - lib/slack/web/api/endpoints/apps_permissions.rb
304
+ - lib/slack/web/api/endpoints/apps_permissions_resources.rb
305
+ - lib/slack/web/api/endpoints/apps_permissions_scopes.rb
306
+ - lib/slack/web/api/endpoints/apps_permissions_users.rb
301
307
  - lib/slack/web/api/endpoints/auth.rb
302
308
  - lib/slack/web/api/endpoints/bots.rb
303
309
  - lib/slack/web/api/endpoints/channels.rb
@@ -345,6 +351,7 @@ files:
345
351
  - lib/slack/web/api/patches/chat.2.attachments-json.patch
346
352
  - lib/slack/web/api/patches/chat.3.update-attachments-support.patch
347
353
  - lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch
354
+ - lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch
348
355
  - lib/slack/web/api/patches/dialog.1.open-json-support.patch
349
356
  - lib/slack/web/api/schema/group.json
350
357
  - lib/slack/web/api/schema/method.json
@@ -401,7 +408,10 @@ files:
401
408
  - spec/slack/slack_spec.rb
402
409
  - spec/slack/version_spec.rb
403
410
  - spec/slack/web/api/endpoints/api_spec.rb
411
+ - spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb
412
+ - spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb
404
413
  - spec/slack/web/api/endpoints/apps_permissions_spec.rb
414
+ - spec/slack/web/api/endpoints/apps_permissions_users_spec.rb
405
415
  - spec/slack/web/api/endpoints/bots_spec.rb
406
416
  - spec/slack/web/api/endpoints/conversations_spec.rb
407
417
  - spec/slack/web/api/endpoints/custom_specs/auth_spec.rb
@@ -467,7 +477,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
467
477
  version: 1.3.6
468
478
  requirements: []
469
479
  rubyforge_project:
470
- rubygems_version: 2.7.4
480
+ rubygems_version: 2.7.6
471
481
  signing_key:
472
482
  specification_version: 4
473
483
  summary: Slack Web and RealTime API client.
@@ -506,7 +516,10 @@ test_files:
506
516
  - spec/slack/slack_spec.rb
507
517
  - spec/slack/version_spec.rb
508
518
  - spec/slack/web/api/endpoints/api_spec.rb
519
+ - spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb
520
+ - spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb
509
521
  - spec/slack/web/api/endpoints/apps_permissions_spec.rb
522
+ - spec/slack/web/api/endpoints/apps_permissions_users_spec.rb
510
523
  - spec/slack/web/api/endpoints/bots_spec.rb
511
524
  - spec/slack/web/api/endpoints/conversations_spec.rb
512
525
  - spec/slack/web/api/endpoints/custom_specs/auth_spec.rb