slack-ruby-client 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +0 -1
- data/.rubocop_todo.yml +23 -6
- data/.travis.yml +3 -0
- data/CHANGELOG.md +11 -0
- data/Gemfile +2 -0
- data/README.md +89 -1
- data/RELEASING.md +3 -1
- data/UPGRADING.md +26 -0
- data/bin/commands.rb +20 -0
- data/bin/commands/api.rb +14 -0
- data/bin/commands/auth.rb +12 -0
- data/bin/commands/channels.rb +140 -0
- data/bin/commands/chat.rb +47 -0
- data/bin/commands/emoji.rb +12 -0
- data/bin/commands/files.rb +61 -0
- data/bin/commands/groups.rb +158 -0
- data/bin/commands/im.rb +53 -0
- data/bin/commands/mpim.rb +53 -0
- data/bin/commands/oauth.rb +16 -0
- data/bin/commands/pins.rb +37 -0
- data/bin/commands/reactions.rb +53 -0
- data/bin/commands/rtm.rb +15 -0
- data/bin/commands/search.rb +40 -0
- data/bin/commands/stars.rb +37 -0
- data/bin/commands/team.rb +32 -0
- data/bin/commands/usergroups.rb +73 -0
- data/bin/commands/users.rb +48 -0
- data/bin/slack +50 -0
- data/examples/hi_real_time/Gemfile +2 -0
- data/examples/hi_real_time_and_web/Gemfile +2 -0
- data/examples/hi_real_time_async/Gemfile +5 -0
- data/examples/hi_real_time_async/hi.rb +29 -0
- data/lib/slack-ruby-client.rb +2 -2
- data/lib/slack/real_time/client.rb +72 -30
- data/lib/slack/real_time/concurrency.rb +8 -0
- data/lib/slack/real_time/concurrency/celluloid.rb +92 -0
- data/lib/slack/real_time/concurrency/eventmachine.rb +39 -0
- data/lib/slack/real_time/config.rb +23 -1
- data/lib/slack/real_time/socket.rb +50 -12
- data/lib/slack/version.rb +1 -1
- data/lib/slack/web/api/endpoints.rb +2 -0
- data/lib/slack/web/api/endpoints/groups.rb +1 -1
- data/lib/slack/web/api/endpoints/team.rb +1 -1
- data/lib/slack/web/api/endpoints/usergroups.rb +113 -0
- data/lib/slack/web/api/error.rb +6 -0
- data/lib/slack/web/api/schema/group.json +14 -0
- data/lib/slack/web/api/tasks/generate.rake +19 -3
- data/lib/slack/web/api/templates/command.erb +34 -0
- data/lib/slack/web/api/templates/commands.erb +5 -0
- data/lib/slack/web/config.rb +2 -0
- data/lib/slack/web/faraday/connection.rb +3 -2
- data/lib/slack/web/faraday/response/raise_error.rb +2 -1
- data/slack-ruby-client.gemspec +4 -2
- data/spec/fixtures/slack/web/429_error.yml +83 -0
- data/spec/fixtures/slack/web/rtm_start.yml +1 -1
- data/spec/fixtures/slack/web/users_list.yml +72 -0
- data/spec/integration/integration_spec.rb +88 -0
- data/spec/slack/real_time/client_spec.rb +8 -5
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +58 -0
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +49 -0
- data/spec/slack/slack_spec.rb +52 -0
- data/spec/slack/web/api/endpoints/auth_spec.rb +6 -1
- data/spec/slack/web/api/endpoints/users_spec.rb +13 -0
- data/spec/slack/web/api/error_spec.rb +14 -0
- data/spec/slack/web/client_spec.rb +16 -0
- data/spec/support/real_time/concurrency/mock.rb +31 -0
- data/spec/support/real_time/connected_client.rb +5 -2
- metadata +55 -8
- data/spec/slack/real_time/socket_spec.rb +0 -46
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d6e26bc5f3e7e53c67ece14f51482ba24bfbbd1
|
4
|
+
data.tar.gz: c83f574cf4041f1507c3ffdf9a0716669306ead9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6753176ae587da7add086f67a6d51f9451e4160283ac369bef881743c1930c0b571b048d6c25bc54c8d2347ddf42f32024a46ed1cc93207fee346b55a7dfe8d5
|
7
|
+
data.tar.gz: a1e45d53c9e0e1bb04369f4ad3f94fd7f061d92a0d8f2974fa89861c75a001cbfb7ea5cac63812ea4cab4fe3c7e9e411408731047d1d2be3f259b744b2e24153
|
data/.rubocop.yml
CHANGED
data/.rubocop_todo.yml
CHANGED
@@ -1,31 +1,43 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on 2015-
|
3
|
+
# on 2015-12-06 15:38:34 -0500 using RuboCop version 0.35.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
9
|
# Offense count: 3
|
10
|
+
Lint/HandleExceptions:
|
11
|
+
Exclude:
|
12
|
+
- 'lib/slack/real_time/concurrency/celluloid.rb'
|
13
|
+
- 'spec/slack/real_time/concurrency/celluloid_spec.rb'
|
14
|
+
- 'spec/slack/real_time/concurrency/eventmachine_spec.rb'
|
15
|
+
|
16
|
+
# Offense count: 2
|
10
17
|
Metrics/AbcSize:
|
11
|
-
Max:
|
18
|
+
Max: 20
|
12
19
|
|
13
|
-
# Offense count:
|
20
|
+
# Offense count: 1
|
21
|
+
# Configuration parameters: CountComments.
|
22
|
+
Metrics/ClassLength:
|
23
|
+
Max: 112
|
24
|
+
|
25
|
+
# Offense count: 324
|
14
26
|
# Configuration parameters: AllowURI, URISchemes.
|
15
27
|
Metrics/LineLength:
|
16
|
-
Max:
|
28
|
+
Max: 288
|
17
29
|
|
18
30
|
# Offense count: 3
|
19
31
|
# Configuration parameters: CountComments.
|
20
32
|
Metrics/MethodLength:
|
21
|
-
Max:
|
33
|
+
Max: 15
|
22
34
|
|
23
35
|
# Offense count: 1
|
24
36
|
Style/AsciiComments:
|
25
37
|
Exclude:
|
26
38
|
- 'lib/slack/web/api/endpoints/team.rb'
|
27
39
|
|
28
|
-
# Offense count:
|
40
|
+
# Offense count: 41
|
29
41
|
# Configuration parameters: Exclude.
|
30
42
|
Style/Documentation:
|
31
43
|
Enabled: false
|
@@ -36,6 +48,11 @@ Style/FileName:
|
|
36
48
|
Exclude:
|
37
49
|
- 'lib/slack-ruby-client.rb'
|
38
50
|
|
51
|
+
# Offense count: 74
|
52
|
+
# Configuration parameters: AllowedVariables.
|
53
|
+
Style/GlobalVars:
|
54
|
+
Enabled: false
|
55
|
+
|
39
56
|
# Offense count: 11
|
40
57
|
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
41
58
|
Style/MethodName:
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
### 0.5.0 (12/7/2015)
|
2
|
+
|
3
|
+
* Added `usergroups_create`, `usergroups_disable`, `usergroups_enable`, `usergroups_list`, `usergroups_update` and `usergroups_users` to Web API - [@dblock](https://github.com/dblock).
|
4
|
+
* Added command-line `slack` client - [@dblock](https://github.com/dblock).
|
5
|
+
* [#5](https://github.com/dblock/slack-ruby-client/issues/5): Added Celluloid support - [@mikz](https://github.com/mikz), [@dblock](https://github.com/dblock).
|
6
|
+
* [#34](https://github.com/dblock/slack-ruby-client/pull/34): Added `Slack::RealTime::Client#start_async` - [@mikz](https://github.com/mikz), [@dblock](https://github.com/dblock).
|
7
|
+
* `Slack::RealTime::Client` supports `:open` and `:close` callbacks - [@dblock](https://github.com/dblock).
|
8
|
+
* [#32](https://github.com/dblock/slack-ruby-client/issues/32): Fix: `on_complete: undefined method [] for nil:NilClass` when responding to Slack 400-500 errors - [@dblock](https://github.com/dblock).
|
9
|
+
* [#22](https://github.com/dblock/slack-ruby-client/issues/22): Added `Slack::Web::Api::Error#response` - [@dblock](https://github.com/dblock).
|
10
|
+
* Added `logger` to `Slack::Web::Client` configuration that logs HTTP requests - [@dblock](https://github.com/dblock).
|
11
|
+
|
1
12
|
### 0.4.0 (11/8/2015)
|
2
13
|
|
3
14
|
* Added `team_integrationLogs` to Web API - [@dblock](https://github.com/dblock).
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -3,13 +3,18 @@ Slack Ruby Client
|
|
3
3
|
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/slack-ruby-client.svg)](http://badge.fury.io/rb/slack-ruby-client)
|
5
5
|
[![Build Status](https://travis-ci.org/dblock/slack-ruby-client.svg?branch=master)](https://travis-ci.org/dblock/slack-ruby-client)
|
6
|
+
[![Code Climate](https://codeclimate.com/github/dblock/slack-ruby-client/badges/gpa.svg)](https://codeclimate.com/github/dblock/slack-ruby-client)
|
6
7
|
|
7
|
-
A Ruby client for the Slack [Web](https://api.slack.com/web) and [RealTime Messaging](https://api.slack.com/rtm) APIs.
|
8
|
+
A Ruby client for the Slack [Web](https://api.slack.com/web) and [RealTime Messaging](https://api.slack.com/rtm) APIs. Comes with a handy command-line client, too.
|
8
9
|
|
9
10
|
Writing a bot? Try [slack-ruby-bot](https://github.com/dblock/slack-ruby-bot) instead.
|
10
11
|
|
11
12
|
![](slack.png)
|
12
13
|
|
14
|
+
## Stable Release
|
15
|
+
|
16
|
+
You're reading the documentation for [stable release, v0.5.0](https://github.com/dblock/slack-ruby-client/blob/v0.5.0/README.md). See [UPGRADING](UPGRADING.md) when upgrading from an older version.
|
17
|
+
|
13
18
|
## Installation
|
14
19
|
|
15
20
|
Add to Gemfile.
|
@@ -18,6 +23,13 @@ Add to Gemfile.
|
|
18
23
|
gem 'slack-ruby-client'
|
19
24
|
```
|
20
25
|
|
26
|
+
If you're going to be using the RealTime client, add either `eventmachine` and `faye-websocket` or `celluloid-io`. See below for more information about concurrency.
|
27
|
+
|
28
|
+
```
|
29
|
+
gem 'eventmachine'
|
30
|
+
gem 'faye-websocket'
|
31
|
+
```
|
32
|
+
|
21
33
|
Run `bundle install`.
|
22
34
|
|
23
35
|
## Usage
|
@@ -80,6 +92,7 @@ proxy | Optional HTTP proxy.
|
|
80
92
|
ca_path | Optional SSL certificates path.
|
81
93
|
ca_file | Optional SSL certificates file.
|
82
94
|
endpoint | Slack endpoint, default is _https://slack.com/api_.
|
95
|
+
logger | Optional `Logger` instance that logs HTTP requests.
|
83
96
|
|
84
97
|
### RealTime Client
|
85
98
|
|
@@ -178,6 +191,81 @@ See a fullly working example in [examples/hi_real_time_and_web](examples/hi_real
|
|
178
191
|
|
179
192
|
![](examples/hi_real_time_and_web/hi.gif)
|
180
193
|
|
194
|
+
#### Concurrency
|
195
|
+
|
196
|
+
`Slack::RealTime::Client` needs help from a concurrency library and supports [Faye::WebSocket](https://github.com/faye/faye-websocket-ruby) with [Eventmachine](https://github.com/eventmachine/eventmachine) and [Celluloid](https://github.com/celluloid/celluloid). It will auto-detect one or the other depending on the gems in your Gemfile, but you can also set concurrency explicitly.
|
197
|
+
|
198
|
+
```ruby
|
199
|
+
Slack::RealTime.configure do |config|
|
200
|
+
config.concurrency = Slack::RealTime::Concurrency::Eventmachine
|
201
|
+
end
|
202
|
+
```
|
203
|
+
|
204
|
+
Use `client.start_async` instead of `client.start!` if you don't want the library to control the event run loop, such as when integrating into other applications that already use Eventmachine or Celluloid. A good example of such application is [slack-bot-server](https://github.com/dblock/slack-bot-server).
|
205
|
+
|
206
|
+
```ruby
|
207
|
+
client = Slack::RealTime::Client.new
|
208
|
+
|
209
|
+
EM.run do
|
210
|
+
client.start_async
|
211
|
+
end
|
212
|
+
```
|
213
|
+
|
214
|
+
See a fullly working example in [examples/hi_real_time_async](examples/hi_real_time_async/hi.rb).
|
215
|
+
|
216
|
+
##### Faye::Websocket with Eventmachine
|
217
|
+
|
218
|
+
Add the following to your Gemfile.
|
219
|
+
|
220
|
+
```
|
221
|
+
gem 'faye-websocket'
|
222
|
+
```
|
223
|
+
|
224
|
+
##### Celluloid
|
225
|
+
|
226
|
+
Add the following to your Gemfile.
|
227
|
+
|
228
|
+
```
|
229
|
+
gem 'celluloid-io'
|
230
|
+
```
|
231
|
+
|
232
|
+
### Command-Line Client
|
233
|
+
|
234
|
+
The slack command-line client returns JSON data from the Slack API.
|
235
|
+
|
236
|
+
#### Authenticate with Slack
|
237
|
+
|
238
|
+
```
|
239
|
+
$ slack --slack-api-token=[token] auth test
|
240
|
+
{"ok":true,"url":"...","team":"...","user":"...","team_id":"...","user_id":"..."}
|
241
|
+
```
|
242
|
+
|
243
|
+
#### Send a Message
|
244
|
+
|
245
|
+
```
|
246
|
+
export SLACK_API_TOKEN=...
|
247
|
+
$ slack chat postMessage --text="hello world" --channel="#general"
|
248
|
+
{"ok":true,"channel":"...","ts":"...","message":{"text":"hello world","username":"bot","type":"message","subtype":"bot_message","ts":"..."}}
|
249
|
+
```
|
250
|
+
|
251
|
+
#### List Users
|
252
|
+
|
253
|
+
Combine with [jq](http://stedolan.github.io/jq), a command-line JSON parser.
|
254
|
+
|
255
|
+
```
|
256
|
+
$ slack users list | jq '.members | map({(.id): .name})'
|
257
|
+
[
|
258
|
+
{
|
259
|
+
"U04KB5WQR": "dblock"
|
260
|
+
},
|
261
|
+
{
|
262
|
+
"U07518DTL": "rubybot"
|
263
|
+
}
|
264
|
+
]
|
265
|
+
```
|
266
|
+
|
267
|
+
See `slack help` for a complete command-line reference.
|
268
|
+
|
181
269
|
## History
|
182
270
|
|
183
271
|
This gem is based on [slack-ruby-gem](https://github.com/aki017/slack-ruby-gem), but it more clearly separates the Web and RTM APIs, is more thoroughly tested and is in active development.
|
data/RELEASING.md
CHANGED
@@ -26,10 +26,12 @@ Change "Next Release" in [CHANGELOG.md](CHANGELOG.md) to the new version.
|
|
26
26
|
|
27
27
|
Remove the line with "Your contribution here.", since there will be no more contributions to this release.
|
28
28
|
|
29
|
+
Remove the "Stable Release" section in README that warns users that they are reading the documentation for an unreleased version.
|
30
|
+
|
29
31
|
Commit your changes.
|
30
32
|
|
31
33
|
```
|
32
|
-
git add CHANGELOG.md lib/slack/version.rb
|
34
|
+
git add README.md CHANGELOG.md lib/slack/version.rb
|
33
35
|
git commit -m "Preparing for release, 0.2.2."
|
34
36
|
git push origin master
|
35
37
|
```
|
data/UPGRADING.md
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
Upgrading Slack-Ruby-Client
|
2
|
+
===========================
|
3
|
+
|
4
|
+
### Upgrading to >= 0.5.0
|
5
|
+
|
6
|
+
#### Changes to Real Time Concurrency
|
7
|
+
|
8
|
+
Since 0.5.0 `Slack::RealTime::Client` supports [Celluloid](https://github.com/celluloid/celluloid) and no longer defaults to [Faye::WebSocket](https://github.com/faye/faye-websocket-ruby) with [Eventmachine](https://github.com/eventmachine/eventmachine). It will auto-detect one or the other depending on the gems in your Gemfile, which means you may need to add one or the other to your Gemfile.
|
9
|
+
|
10
|
+
##### Faye::Websocket with Eventmachine
|
11
|
+
|
12
|
+
```
|
13
|
+
gem 'faye-webSocket'
|
14
|
+
```
|
15
|
+
|
16
|
+
##### Celluloid
|
17
|
+
|
18
|
+
```
|
19
|
+
gem 'celluloid-io'
|
20
|
+
```
|
21
|
+
|
22
|
+
When in doubt, use Faye::WebSocket with Eventmachine.
|
23
|
+
|
24
|
+
See [#5](https://github.com/dblock/slack-ruby-client/issues/5) for more information.
|
25
|
+
|
26
|
+
|
data/bin/commands.rb
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
require 'commands/api'
|
4
|
+
require 'commands/auth'
|
5
|
+
require 'commands/channels'
|
6
|
+
require 'commands/chat'
|
7
|
+
require 'commands/emoji'
|
8
|
+
require 'commands/files'
|
9
|
+
require 'commands/groups'
|
10
|
+
require 'commands/im'
|
11
|
+
require 'commands/mpim'
|
12
|
+
require 'commands/oauth'
|
13
|
+
require 'commands/pins'
|
14
|
+
require 'commands/reactions'
|
15
|
+
require 'commands/rtm'
|
16
|
+
require 'commands/search'
|
17
|
+
require 'commands/stars'
|
18
|
+
require 'commands/team'
|
19
|
+
require 'commands/usergroups'
|
20
|
+
require 'commands/users'
|
data/bin/commands/api.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
desc 'Api methods.'
|
4
|
+
command 'api' do |g|
|
5
|
+
g.desc 'This method helps you test your calling code.'
|
6
|
+
g.long_desc %( This method helps you test your calling code. )
|
7
|
+
g.command 'test' do |c|
|
8
|
+
c.flag 'error', desc: 'Error response to return.'
|
9
|
+
c.flag 'foo', desc: 'example property to return.'
|
10
|
+
c.action do |_global_options, options, _args|
|
11
|
+
puts JSON.dump($client.api_test(options))
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
desc 'Auth methods.'
|
4
|
+
command 'auth' do |g|
|
5
|
+
g.desc 'This method checks authentication and tells you who you are.'
|
6
|
+
g.long_desc %( This method checks authentication and tells you who you are. )
|
7
|
+
g.command 'test' do |c|
|
8
|
+
c.action do |_global_options, options, _args|
|
9
|
+
puts JSON.dump($client.auth_test(options))
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,140 @@
|
|
1
|
+
# This file was auto-generated by lib/slack/web/api/tasks/generate.rake
|
2
|
+
|
3
|
+
desc "Get info on your team's Slack channels, create or archive channels, invite users, set the topic and purpose, and mark a channel as read."
|
4
|
+
command 'channels' do |g|
|
5
|
+
g.desc 'This method archives a channel.'
|
6
|
+
g.long_desc %( This method archives a channel. )
|
7
|
+
g.command 'archive' do |c|
|
8
|
+
c.flag 'channel', desc: 'Channel to archive.'
|
9
|
+
c.action do |_global_options, options, _args|
|
10
|
+
puts JSON.dump($client.channels_archive(options))
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
g.desc 'This method is used to create a channel.'
|
15
|
+
g.long_desc %( This method is used to create a channel. )
|
16
|
+
g.command 'create' do |c|
|
17
|
+
c.flag 'name', desc: 'Name of channel to create.'
|
18
|
+
c.action do |_global_options, options, _args|
|
19
|
+
puts JSON.dump($client.channels_create(options))
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
g.desc 'This method returns a portion of messages/events from the specified channel.'
|
24
|
+
g.long_desc %( This method returns a portion of messages/events from the specified channel. To read the entire history for a channel, call the method with no latest or oldest arguments, and then continue paging using the instructions below. )
|
25
|
+
g.command 'history' do |c|
|
26
|
+
c.flag 'channel', desc: 'Channel to fetch history for.'
|
27
|
+
c.flag 'latest', desc: 'End of time range of messages to include in results.'
|
28
|
+
c.flag 'oldest', desc: 'Start of time range of messages to include in results.'
|
29
|
+
c.flag 'inclusive', desc: 'Include messages with latest or oldest timestamp in results.'
|
30
|
+
c.flag 'unreads', desc: 'Include unread_count_display in the output?.'
|
31
|
+
c.action do |_global_options, options, _args|
|
32
|
+
puts JSON.dump($client.channels_history(options))
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
g.desc 'This method returns information about a team channel.'
|
37
|
+
g.long_desc %( This method returns information about a team channel. )
|
38
|
+
g.command 'info' do |c|
|
39
|
+
c.flag 'channel', desc: 'Channel to get info on.'
|
40
|
+
c.action do |_global_options, options, _args|
|
41
|
+
puts JSON.dump($client.channels_info(options))
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
g.desc 'This method is used to invite a user to a channel. The calling user must be a member of the channel.'
|
46
|
+
g.long_desc %( This method is used to invite a user to a channel. The calling user must be a member of the channel. )
|
47
|
+
g.command 'invite' do |c|
|
48
|
+
c.flag 'channel', desc: 'Channel to invite user to.'
|
49
|
+
c.flag 'user', desc: 'User to invite to channel.'
|
50
|
+
c.action do |_global_options, options, _args|
|
51
|
+
puts JSON.dump($client.channels_invite(options))
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
g.desc 'This method is used to join a channel. If the channel does not exist, it is'
|
56
|
+
g.long_desc %( This method is used to join a channel. If the channel does not exist, it is created. )
|
57
|
+
g.command 'join' do |c|
|
58
|
+
c.flag 'name', desc: 'Name of channel to join.'
|
59
|
+
c.action do |_global_options, options, _args|
|
60
|
+
puts JSON.dump($client.channels_join(options))
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
g.desc 'This method allows a user to remove another member from a team channel.'
|
65
|
+
g.long_desc %( This method allows a user to remove another member from a team channel. )
|
66
|
+
g.command 'kick' do |c|
|
67
|
+
c.flag 'channel', desc: 'Channel to remove user from.'
|
68
|
+
c.flag 'user', desc: 'User to remove from channel.'
|
69
|
+
c.action do |_global_options, options, _args|
|
70
|
+
puts JSON.dump($client.channels_kick(options))
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
g.desc 'This method is used to leave a channel.'
|
75
|
+
g.long_desc %( This method is used to leave a channel. )
|
76
|
+
g.command 'leave' do |c|
|
77
|
+
c.flag 'channel', desc: 'Channel to leave.'
|
78
|
+
c.action do |_global_options, options, _args|
|
79
|
+
puts JSON.dump($client.channels_leave(options))
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
g.desc 'This method returns a list of all channels in the team. This includes channels the caller is in, channels'
|
84
|
+
g.long_desc %( This method returns a list of all channels in the team. This includes channels the caller is in, channels they are not currently in, and archived channels. The number of (non-deactivated) members in each channel is also returned. )
|
85
|
+
g.command 'list' do |c|
|
86
|
+
c.flag 'exclude_archived', desc: "Don't return archived channels."
|
87
|
+
c.action do |_global_options, options, _args|
|
88
|
+
puts JSON.dump($client.channels_list(options))
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
g.desc 'This method moves the read cursor in a channel.'
|
93
|
+
g.long_desc %( This method moves the read cursor in a channel. )
|
94
|
+
g.command 'mark' do |c|
|
95
|
+
c.flag 'channel', desc: 'Channel to set reading cursor in.'
|
96
|
+
c.flag 'ts', desc: 'Timestamp of the most recently seen message.'
|
97
|
+
c.action do |_global_options, options, _args|
|
98
|
+
puts JSON.dump($client.channels_mark(options))
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
g.desc 'This method renames a team channel.'
|
103
|
+
g.long_desc %( This method renames a team channel. )
|
104
|
+
g.command 'rename' do |c|
|
105
|
+
c.flag 'channel', desc: 'Channel to rename.'
|
106
|
+
c.flag 'name', desc: 'New name for channel.'
|
107
|
+
c.action do |_global_options, options, _args|
|
108
|
+
puts JSON.dump($client.channels_rename(options))
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
g.desc 'This method is used to change the purpose of a channel. The calling user must be a member of the channel.'
|
113
|
+
g.long_desc %( This method is used to change the purpose of a channel. The calling user must be a member of the channel. )
|
114
|
+
g.command 'setPurpose' do |c|
|
115
|
+
c.flag 'channel', desc: 'Channel to set the purpose of.'
|
116
|
+
c.flag 'purpose', desc: 'The new purpose.'
|
117
|
+
c.action do |_global_options, options, _args|
|
118
|
+
puts JSON.dump($client.channels_setPurpose(options))
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
g.desc 'This method is used to change the topic of a channel. The calling user must be a member of the channel.'
|
123
|
+
g.long_desc %( This method is used to change the topic of a channel. The calling user must be a member of the channel. )
|
124
|
+
g.command 'setTopic' do |c|
|
125
|
+
c.flag 'channel', desc: 'Channel to set the topic of.'
|
126
|
+
c.flag 'topic', desc: 'The new topic.'
|
127
|
+
c.action do |_global_options, options, _args|
|
128
|
+
puts JSON.dump($client.channels_setTopic(options))
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
g.desc 'This method unarchives a channel. The calling user is added to the channel.'
|
133
|
+
g.long_desc %( This method unarchives a channel. The calling user is added to the channel. )
|
134
|
+
g.command 'unarchive' do |c|
|
135
|
+
c.flag 'channel', desc: 'Channel to unarchive.'
|
136
|
+
c.action do |_global_options, options, _args|
|
137
|
+
puts JSON.dump($client.channels_unarchive(options))
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|