slack-ruby-client 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop_todo.yml +19 -17
- data/.travis.yml +1 -0
- data/CHANGELOG.md +8 -0
- data/README.md +24 -4
- data/bin/commands/chat.rb +10 -9
- data/bin/commands/files.rb +19 -1
- data/examples/hi_real_time/hi.rb +2 -0
- data/lib/slack-ruby-client.rb +4 -2
- data/lib/slack/config.rb +4 -0
- data/lib/slack/logger.rb +13 -0
- data/lib/slack/messages/message.rb +6 -0
- data/lib/slack/real_time/api/schema/event.json +1 -0
- data/lib/slack/real_time/api/templates/event_handler.erb +4 -18
- data/lib/slack/real_time/client.rb +29 -5
- data/lib/slack/real_time/concurrency/celluloid.rb +6 -0
- data/lib/slack/real_time/concurrency/eventmachine.rb +22 -1
- data/lib/slack/real_time/config.rb +5 -1
- data/lib/slack/real_time/socket.rb +5 -0
- data/lib/slack/real_time/stores.rb +10 -0
- data/lib/slack/real_time/stores/base.rb +34 -0
- data/lib/slack/real_time/stores/starter.rb +361 -0
- data/lib/slack/real_time/stores/store.rb +479 -0
- data/lib/slack/version.rb +1 -1
- data/lib/slack/web/api/endpoints/api.rb +1 -1
- data/lib/slack/web/api/endpoints/auth.rb +1 -1
- data/lib/slack/web/api/endpoints/channels.rb +14 -14
- data/lib/slack/web/api/endpoints/chat.rb +15 -13
- 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 +30 -6
- data/lib/slack/web/api/endpoints/groups.rb +16 -16
- data/lib/slack/web/api/endpoints/im.rb +5 -5
- data/lib/slack/web/api/endpoints/mpim.rb +5 -5
- data/lib/slack/web/api/endpoints/oauth.rb +1 -1
- data/lib/slack/web/api/endpoints/pins.rb +3 -3
- data/lib/slack/web/api/endpoints/reactions.rb +4 -4
- data/lib/slack/web/api/endpoints/rtm.rb +1 -1
- 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 +3 -3
- data/lib/slack/web/api/endpoints/usergroups.rb +6 -6
- data/lib/slack/web/api/endpoints/users.rb +5 -5
- data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +1 -1
- data/lib/slack/web/api/templates/method.erb +1 -1
- data/lib/slack/web/client.rb +1 -0
- data/lib/tasks/real_time.rake +27 -21
- data/slack-ruby-client.gemspec +1 -0
- data/spec/integration/integration_spec.rb +13 -1
- data/spec/slack/real_time/client_spec.rb +40 -5
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +2 -1
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +3 -2
- data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +15 -0
- data/spec/slack/real_time/event_handlers/team_spec.rb +54 -52
- data/spec/slack/web/api/endpoints/files_spec.rb +10 -0
- data/spec/slack/web/client_spec.rb +1 -1
- data/spec/support/real_time/connected_client.rb +3 -3
- metadata +23 -71
- data/lib/slack/real_time/api/templates/event_handlers.erb +0 -5
- data/lib/slack/real_time/event_handlers.rb +0 -66
- data/lib/slack/real_time/event_handlers/accounts_changed.rb +0 -18
- data/lib/slack/real_time/event_handlers/bot_added.rb +0 -16
- data/lib/slack/real_time/event_handlers/bot_changed.rb +0 -17
- data/lib/slack/real_time/event_handlers/channel_archive.rb +0 -17
- data/lib/slack/real_time/event_handlers/channel_created.rb +0 -17
- data/lib/slack/real_time/event_handlers/channel_deleted.rb +0 -16
- data/lib/slack/real_time/event_handlers/channel_history_changed.rb +0 -18
- data/lib/slack/real_time/event_handlers/channel_joined.rb +0 -22
- data/lib/slack/real_time/event_handlers/channel_left.rb +0 -17
- data/lib/slack/real_time/event_handlers/channel_marked.rb +0 -18
- data/lib/slack/real_time/event_handlers/channel_rename.rb +0 -17
- data/lib/slack/real_time/event_handlers/channel_unarchive.rb +0 -17
- data/lib/slack/real_time/event_handlers/commands_changed.rb +0 -18
- data/lib/slack/real_time/event_handlers/dnd_updated.rb +0 -18
- data/lib/slack/real_time/event_handlers/dnd_updated_user.rb +0 -18
- data/lib/slack/real_time/event_handlers/email_domain_changed.rb +0 -16
- data/lib/slack/real_time/event_handlers/emoji_changed.rb +0 -18
- data/lib/slack/real_time/event_handlers/file_change.rb +0 -18
- data/lib/slack/real_time/event_handlers/file_comment_added.rb +0 -18
- data/lib/slack/real_time/event_handlers/file_comment_deleted.rb +0 -18
- data/lib/slack/real_time/event_handlers/file_comment_edited.rb +0 -18
- data/lib/slack/real_time/event_handlers/file_created.rb +0 -18
- data/lib/slack/real_time/event_handlers/file_deleted.rb +0 -18
- data/lib/slack/real_time/event_handlers/file_private.rb +0 -18
- data/lib/slack/real_time/event_handlers/file_public.rb +0 -18
- data/lib/slack/real_time/event_handlers/file_shared.rb +0 -18
- data/lib/slack/real_time/event_handlers/file_unshared.rb +0 -18
- data/lib/slack/real_time/event_handlers/group_archive.rb +0 -17
- data/lib/slack/real_time/event_handlers/group_close.rb +0 -16
- data/lib/slack/real_time/event_handlers/group_history_changed.rb +0 -18
- data/lib/slack/real_time/event_handlers/group_joined.rb +0 -16
- data/lib/slack/real_time/event_handlers/group_left.rb +0 -17
- data/lib/slack/real_time/event_handlers/group_marked.rb +0 -18
- data/lib/slack/real_time/event_handlers/group_open.rb +0 -16
- data/lib/slack/real_time/event_handlers/group_rename.rb +0 -17
- data/lib/slack/real_time/event_handlers/group_unarchive.rb +0 -17
- data/lib/slack/real_time/event_handlers/im_close.rb +0 -16
- data/lib/slack/real_time/event_handlers/im_created.rb +0 -16
- data/lib/slack/real_time/event_handlers/im_history_changed.rb +0 -18
- data/lib/slack/real_time/event_handlers/im_marked.rb +0 -18
- data/lib/slack/real_time/event_handlers/im_open.rb +0 -16
- data/lib/slack/real_time/event_handlers/manual_presence_change.rb +0 -16
- data/lib/slack/real_time/event_handlers/pin_added.rb +0 -18
- data/lib/slack/real_time/event_handlers/pin_removed.rb +0 -18
- data/lib/slack/real_time/event_handlers/pref_change.rb +0 -16
- data/lib/slack/real_time/event_handlers/presence_change.rb +0 -17
- data/lib/slack/real_time/event_handlers/reaction_added.rb +0 -18
- data/lib/slack/real_time/event_handlers/reaction_removed.rb +0 -18
- data/lib/slack/real_time/event_handlers/reconnect_url.rb +0 -18
- data/lib/slack/real_time/event_handlers/star_added.rb +0 -18
- data/lib/slack/real_time/event_handlers/star_removed.rb +0 -18
- data/lib/slack/real_time/event_handlers/subteam_created.rb +0 -18
- data/lib/slack/real_time/event_handlers/subteam_self_added.rb +0 -18
- data/lib/slack/real_time/event_handlers/subteam_self_removed.rb +0 -18
- data/lib/slack/real_time/event_handlers/subteam_updated.rb +0 -18
- data/lib/slack/real_time/event_handlers/team_domain_change.rb +0 -17
- data/lib/slack/real_time/event_handlers/team_join.rb +0 -16
- data/lib/slack/real_time/event_handlers/team_migration_started.rb +0 -18
- data/lib/slack/real_time/event_handlers/team_plan_change.rb +0 -16
- data/lib/slack/real_time/event_handlers/team_pref_change.rb +0 -16
- data/lib/slack/real_time/event_handlers/team_profile_change.rb +0 -18
- data/lib/slack/real_time/event_handlers/team_profile_delete.rb +0 -18
- data/lib/slack/real_time/event_handlers/team_profile_reorder.rb +0 -18
- data/lib/slack/real_time/event_handlers/team_rename.rb +0 -16
- data/lib/slack/real_time/event_handlers/user_change.rb +0 -16
- data/lib/slack/real_time/event_handlers/user_typing.rb +0 -18
- data/lib/slack/real_time/store.rb +0 -47
@@ -11,7 +11,7 @@ module Slack
|
|
11
11
|
# @option options [im] :channel
|
12
12
|
# Direct message channel to close.
|
13
13
|
# @see https://api.slack.com/methods/im.close
|
14
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/im.close.json
|
14
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.close.json
|
15
15
|
def im_close(options = {})
|
16
16
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
17
17
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
@@ -34,7 +34,7 @@ module Slack
|
|
34
34
|
# @option options [Object] :unreads
|
35
35
|
# Include unread_count_display in the output?.
|
36
36
|
# @see https://api.slack.com/methods/im.history
|
37
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/im.history.json
|
37
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.history.json
|
38
38
|
def im_history(options = {})
|
39
39
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
40
40
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
@@ -45,7 +45,7 @@ module Slack
|
|
45
45
|
# This method returns a list of all im channels that the user has.
|
46
46
|
#
|
47
47
|
# @see https://api.slack.com/methods/im.list
|
48
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/im.list.json
|
48
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.list.json
|
49
49
|
def im_list(options = {})
|
50
50
|
post('im.list', options)
|
51
51
|
end
|
@@ -58,7 +58,7 @@ module Slack
|
|
58
58
|
# @option options [timestamp] :ts
|
59
59
|
# Timestamp of the most recently seen message.
|
60
60
|
# @see https://api.slack.com/methods/im.mark
|
61
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/im.mark.json
|
61
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.mark.json
|
62
62
|
def im_mark(options = {})
|
63
63
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
64
64
|
throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
|
@@ -72,7 +72,7 @@ module Slack
|
|
72
72
|
# @option options [user] :user
|
73
73
|
# User to open a direct message channel with.
|
74
74
|
# @see https://api.slack.com/methods/im.open
|
75
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/im.open.json
|
75
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/im/im.open.json
|
76
76
|
def im_open(options = {})
|
77
77
|
throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
|
78
78
|
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
@@ -11,7 +11,7 @@ module Slack
|
|
11
11
|
# @option options [channel] :channel
|
12
12
|
# MPIM to close.
|
13
13
|
# @see https://api.slack.com/methods/mpim.close
|
14
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim.close.json
|
14
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.close.json
|
15
15
|
def mpim_close(options = {})
|
16
16
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
17
17
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
@@ -34,7 +34,7 @@ module Slack
|
|
34
34
|
# @option options [Object] :unreads
|
35
35
|
# Include unread_count_display in the output?.
|
36
36
|
# @see https://api.slack.com/methods/mpim.history
|
37
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim.history.json
|
37
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.history.json
|
38
38
|
def mpim_history(options = {})
|
39
39
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
40
40
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
@@ -45,7 +45,7 @@ module Slack
|
|
45
45
|
# This method returns a list of all multiparty direct message channels that the user has.
|
46
46
|
#
|
47
47
|
# @see https://api.slack.com/methods/mpim.list
|
48
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim.list.json
|
48
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.list.json
|
49
49
|
def mpim_list(options = {})
|
50
50
|
post('mpim.list', options)
|
51
51
|
end
|
@@ -58,7 +58,7 @@ module Slack
|
|
58
58
|
# @option options [timestamp] :ts
|
59
59
|
# Timestamp of the most recently seen message.
|
60
60
|
# @see https://api.slack.com/methods/mpim.mark
|
61
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim.mark.json
|
61
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.mark.json
|
62
62
|
def mpim_mark(options = {})
|
63
63
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
64
64
|
throw ArgumentError.new('Required arguments :ts missing') if options[:ts].nil?
|
@@ -72,7 +72,7 @@ module Slack
|
|
72
72
|
# @option options [Object] :users
|
73
73
|
# Comma separated lists of users. The ordering of the users is preserved whenever a MPIM group is returned.
|
74
74
|
# @see https://api.slack.com/methods/mpim.open
|
75
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim.open.json
|
75
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/mpim/mpim.open.json
|
76
76
|
def mpim_open(options = {})
|
77
77
|
throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
|
78
78
|
post('mpim.open', options)
|
@@ -18,7 +18,7 @@ module Slack
|
|
18
18
|
# @option options [Object] :redirect_uri
|
19
19
|
# This must match the originally submitted URI (if one was sent).
|
20
20
|
# @see https://api.slack.com/methods/oauth.access
|
21
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/oauth.access.json
|
21
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/oauth/oauth.access.json
|
22
22
|
def oauth_access(options = {})
|
23
23
|
throw ArgumentError.new('Required arguments :client_id missing') if options[:client_id].nil?
|
24
24
|
throw ArgumentError.new('Required arguments :client_secret missing') if options[:client_secret].nil?
|
@@ -18,7 +18,7 @@ module Slack
|
|
18
18
|
# @option options [Object] :timestamp
|
19
19
|
# Timestamp of the message to pin.
|
20
20
|
# @see https://api.slack.com/methods/pins.add
|
21
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/pins.add.json
|
21
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/pins/pins.add.json
|
22
22
|
def pins_add(options = {})
|
23
23
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
24
24
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
@@ -31,7 +31,7 @@ module Slack
|
|
31
31
|
# @option options [channel] :channel
|
32
32
|
# Channel to get pinned items for.
|
33
33
|
# @see https://api.slack.com/methods/pins.list
|
34
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/pins.list.json
|
34
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/pins/pins.list.json
|
35
35
|
def pins_list(options = {})
|
36
36
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
37
37
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
@@ -51,7 +51,7 @@ module Slack
|
|
51
51
|
# @option options [Object] :timestamp
|
52
52
|
# Timestamp of the message to un-pin.
|
53
53
|
# @see https://api.slack.com/methods/pins.remove
|
54
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/pins.remove.json
|
54
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/pins/pins.remove.json
|
55
55
|
def pins_remove(options = {})
|
56
56
|
throw ArgumentError.new('Required arguments :channel missing') if options[:channel].nil?
|
57
57
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
@@ -20,7 +20,7 @@ module Slack
|
|
20
20
|
# @option options [Object] :timestamp
|
21
21
|
# Timestamp of the message to add reaction to.
|
22
22
|
# @see https://api.slack.com/methods/reactions.add
|
23
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions.add.json
|
23
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions/reactions.add.json
|
24
24
|
def reactions_add(options = {})
|
25
25
|
throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
|
26
26
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
@@ -41,7 +41,7 @@ module Slack
|
|
41
41
|
# @option options [Object] :full
|
42
42
|
# If true always return the complete reaction list.
|
43
43
|
# @see https://api.slack.com/methods/reactions.get
|
44
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions.get.json
|
44
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions/reactions.get.json
|
45
45
|
def reactions_get(options = {})
|
46
46
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
47
47
|
post('reactions.get', options)
|
@@ -55,7 +55,7 @@ module Slack
|
|
55
55
|
# @option options [Object] :full
|
56
56
|
# If true always return the complete reaction list.
|
57
57
|
# @see https://api.slack.com/methods/reactions.list
|
58
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions.list.json
|
58
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions/reactions.list.json
|
59
59
|
def reactions_list(options = {})
|
60
60
|
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
61
61
|
post('reactions.list', options)
|
@@ -76,7 +76,7 @@ module Slack
|
|
76
76
|
# @option options [Object] :timestamp
|
77
77
|
# Timestamp of the message to remove reaction from.
|
78
78
|
# @see https://api.slack.com/methods/reactions.remove
|
79
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions.remove.json
|
79
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/reactions/reactions.remove.json
|
80
80
|
def reactions_remove(options = {})
|
81
81
|
throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
|
82
82
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
@@ -16,7 +16,7 @@ module Slack
|
|
16
16
|
# @option options [Object] :mpim_aware
|
17
17
|
# Returns MPIMs to the client in the API response.
|
18
18
|
# @see https://api.slack.com/methods/rtm.start
|
19
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/rtm.start.json
|
19
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/rtm/rtm.start.json
|
20
20
|
def rtm_start(options = {})
|
21
21
|
post('rtm.start', options)
|
22
22
|
end
|
@@ -17,7 +17,7 @@ module Slack
|
|
17
17
|
# @option options [Object] :highlight
|
18
18
|
# Pass a value of 1 to enable query highlight markers (see below).
|
19
19
|
# @see https://api.slack.com/methods/search.all
|
20
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/search.all.json
|
20
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/search/search.all.json
|
21
21
|
def search_all(options = {})
|
22
22
|
throw ArgumentError.new('Required arguments :query missing') if options[:query].nil?
|
23
23
|
post('search.all', options)
|
@@ -35,7 +35,7 @@ module Slack
|
|
35
35
|
# @option options [Object] :highlight
|
36
36
|
# Pass a value of 1 to enable query highlight markers (see below).
|
37
37
|
# @see https://api.slack.com/methods/search.files
|
38
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/search.files.json
|
38
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/search/search.files.json
|
39
39
|
def search_files(options = {})
|
40
40
|
throw ArgumentError.new('Required arguments :query missing') if options[:query].nil?
|
41
41
|
post('search.files', options)
|
@@ -53,7 +53,7 @@ module Slack
|
|
53
53
|
# @option options [Object] :highlight
|
54
54
|
# Pass a value of 1 to enable query highlight markers (see below).
|
55
55
|
# @see https://api.slack.com/methods/search.messages
|
56
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/search.messages.json
|
56
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/search/search.messages.json
|
57
57
|
def search_messages(options = {})
|
58
58
|
throw ArgumentError.new('Required arguments :query missing') if options[:query].nil?
|
59
59
|
post('search.messages', options)
|
@@ -18,7 +18,7 @@ module Slack
|
|
18
18
|
# @option options [Object] :timestamp
|
19
19
|
# Timestamp of the message to add star to.
|
20
20
|
# @see https://api.slack.com/methods/stars.add
|
21
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/stars.add.json
|
21
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/stars/stars.add.json
|
22
22
|
def stars_add(options = {})
|
23
23
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
24
24
|
post('stars.add', options)
|
@@ -30,7 +30,7 @@ module Slack
|
|
30
30
|
# @option options [user] :user
|
31
31
|
# Show stars by this user. Defaults to the authed user.
|
32
32
|
# @see https://api.slack.com/methods/stars.list
|
33
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/stars.list.json
|
33
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/stars/stars.list.json
|
34
34
|
def stars_list(options = {})
|
35
35
|
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
36
36
|
post('stars.list', options)
|
@@ -49,7 +49,7 @@ module Slack
|
|
49
49
|
# @option options [Object] :timestamp
|
50
50
|
# Timestamp of the message to remove star from.
|
51
51
|
# @see https://api.slack.com/methods/stars.remove
|
52
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/stars.remove.json
|
52
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/stars/stars.remove.json
|
53
53
|
def stars_remove(options = {})
|
54
54
|
options = options.merge(channel: channels_id(options)['channel']['id']) if options[:channel]
|
55
55
|
post('stars.remove', options)
|
@@ -9,7 +9,7 @@ module Slack
|
|
9
9
|
# This method is used to get the access logs for users on a team.
|
10
10
|
#
|
11
11
|
# @see https://api.slack.com/methods/team.accessLogs
|
12
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/team.accessLogs.json
|
12
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/team/team.accessLogs.json
|
13
13
|
def team_accessLogs(options = {})
|
14
14
|
post('team.accessLogs', options)
|
15
15
|
end
|
@@ -18,7 +18,7 @@ module Slack
|
|
18
18
|
# This method provides information about your team.
|
19
19
|
#
|
20
20
|
# @see https://api.slack.com/methods/team.info
|
21
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/team.info.json
|
21
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/team/team.info.json
|
22
22
|
def team_info(options = {})
|
23
23
|
post('team.info', options)
|
24
24
|
end
|
@@ -35,7 +35,7 @@ module Slack
|
|
35
35
|
# @option options [Object] :change_type
|
36
36
|
# Filter logs with this change type. Defaults to all logs.
|
37
37
|
# @see https://api.slack.com/methods/team.integrationLogs
|
38
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/team.integrationLogs.json
|
38
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/team/team.integrationLogs.json
|
39
39
|
def team_integrationLogs(options = {})
|
40
40
|
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
41
41
|
post('team.integrationLogs', options)
|
@@ -19,7 +19,7 @@ module Slack
|
|
19
19
|
# @option options [Object] :include_count
|
20
20
|
# Include the number of users in each user group.
|
21
21
|
# @see https://api.slack.com/methods/usergroups.create
|
22
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/usergroups.create.json
|
22
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/usergroups/usergroups.create.json
|
23
23
|
def usergroups_create(options = {})
|
24
24
|
throw ArgumentError.new('Required arguments :name missing') if options[:name].nil?
|
25
25
|
post('usergroups.create', options)
|
@@ -33,7 +33,7 @@ module Slack
|
|
33
33
|
# @option options [Object] :include_count
|
34
34
|
# Include the number of users in the user group.
|
35
35
|
# @see https://api.slack.com/methods/usergroups.disable
|
36
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/usergroups.disable.json
|
36
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/usergroups/usergroups.disable.json
|
37
37
|
def usergroups_disable(options = {})
|
38
38
|
throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
|
39
39
|
post('usergroups.disable', options)
|
@@ -47,7 +47,7 @@ module Slack
|
|
47
47
|
# @option options [Object] :include_count
|
48
48
|
# Include the number of users in the user group.
|
49
49
|
# @see https://api.slack.com/methods/usergroups.enable
|
50
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/usergroups.enable.json
|
50
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/usergroups/usergroups.enable.json
|
51
51
|
def usergroups_enable(options = {})
|
52
52
|
throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
|
53
53
|
post('usergroups.enable', options)
|
@@ -63,7 +63,7 @@ module Slack
|
|
63
63
|
# @option options [Object] :include_users
|
64
64
|
# Include the list of users for each user group.
|
65
65
|
# @see https://api.slack.com/methods/usergroups.list
|
66
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/usergroups.list.json
|
66
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/usergroups/usergroups.list.json
|
67
67
|
def usergroups_list(options = {})
|
68
68
|
post('usergroups.list', options)
|
69
69
|
end
|
@@ -84,7 +84,7 @@ module Slack
|
|
84
84
|
# @option options [Object] :include_count
|
85
85
|
# Include the number of users in the user group.
|
86
86
|
# @see https://api.slack.com/methods/usergroups.update
|
87
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/usergroups.update.json
|
87
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/usergroups/usergroups.update.json
|
88
88
|
def usergroups_update(options = {})
|
89
89
|
throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
|
90
90
|
post('usergroups.update', options)
|
@@ -100,7 +100,7 @@ module Slack
|
|
100
100
|
# @option options [Object] :include_count
|
101
101
|
# Include the number of users in the user group.
|
102
102
|
# @see https://api.slack.com/methods/usergroups.users
|
103
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/usergroups.users.json
|
103
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/usergroups/usergroups.users.json
|
104
104
|
def usergroups_users(options = {})
|
105
105
|
throw ArgumentError.new('Required arguments :usergroup missing') if options[:usergroup].nil?
|
106
106
|
throw ArgumentError.new('Required arguments :users missing') if options[:users].nil?
|
@@ -12,7 +12,7 @@ module Slack
|
|
12
12
|
# @option options [user] :user
|
13
13
|
# User to get presence info on. Defaults to the authed user.
|
14
14
|
# @see https://api.slack.com/methods/users.getPresence
|
15
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/users.getPresence.json
|
15
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/users/users.getPresence.json
|
16
16
|
def users_getPresence(options = {})
|
17
17
|
throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
|
18
18
|
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
@@ -25,7 +25,7 @@ module Slack
|
|
25
25
|
# @option options [user] :user
|
26
26
|
# User to get info on.
|
27
27
|
# @see https://api.slack.com/methods/users.info
|
28
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/users.info.json
|
28
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/users/users.info.json
|
29
29
|
def users_info(options = {})
|
30
30
|
throw ArgumentError.new('Required arguments :user missing') if options[:user].nil?
|
31
31
|
options = options.merge(user: users_id(options)['user']['id']) if options[:user]
|
@@ -38,7 +38,7 @@ module Slack
|
|
38
38
|
# @option options [Object] :presence
|
39
39
|
# Whether to include presence data in the output.
|
40
40
|
# @see https://api.slack.com/methods/users.list
|
41
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/users.list.json
|
41
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/users/users.list.json
|
42
42
|
def users_list(options = {})
|
43
43
|
post('users.list', options)
|
44
44
|
end
|
@@ -49,7 +49,7 @@ module Slack
|
|
49
49
|
# more details.
|
50
50
|
#
|
51
51
|
# @see https://api.slack.com/methods/users.setActive
|
52
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/users.setActive.json
|
52
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/users/users.setActive.json
|
53
53
|
def users_setActive(options = {})
|
54
54
|
post('users.setActive', options)
|
55
55
|
end
|
@@ -61,7 +61,7 @@ module Slack
|
|
61
61
|
# @option options [Object] :presence
|
62
62
|
# Either auto or away.
|
63
63
|
# @see https://api.slack.com/methods/users.setPresence
|
64
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/users.setPresence.json
|
64
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/users/users.setPresence.json
|
65
65
|
def users_setPresence(options = {})
|
66
66
|
throw ArgumentError.new('Required arguments :presence missing') if options[:presence].nil?
|
67
67
|
post('users.setPresence', options)
|
@@ -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/dblock/slack-api-ref/blob/master/methods/chat.postMessage.json
|
6
|
+
# @see https://github.com/dblock/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?
|
@@ -26,7 +26,7 @@ module Slack
|
|
26
26
|
<% end %>
|
27
27
|
<% end %>
|
28
28
|
# @see https://api.slack.com/methods/<%= group %>.<%= name %>
|
29
|
-
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/<%= group %>.<%= name %>.json
|
29
|
+
# @see https://github.com/dblock/slack-api-ref/blob/master/methods/<%= group %>/<%= group %>.<%= name %>.json
|
30
30
|
def <%= group %>_<%= name %>(options = {})
|
31
31
|
<% data['args'].select{ |k, v| v['required'] }.each do |arg_name, arg_v| %>
|
32
32
|
throw ArgumentError.new('Required arguments :<%= arg_name %> missing') if options[:<%= arg_name %>].nil?
|
data/lib/slack/web/client.rb
CHANGED
data/lib/tasks/real_time.rake
CHANGED
@@ -5,6 +5,8 @@ require 'erubis'
|
|
5
5
|
namespace :slack do
|
6
6
|
namespace :real_time do
|
7
7
|
namespace :api do
|
8
|
+
REAL_TIME_EVENTS_MARKER = '### RealTime Events'
|
9
|
+
|
8
10
|
desc 'Update API.'
|
9
11
|
task update: [:git_update] do
|
10
12
|
event_schema = JSON.parse(File.read('lib/slack/real_time/api/schema/event.json'))
|
@@ -15,29 +17,33 @@ namespace :slack do
|
|
15
17
|
next if %w(message hello).include?(name)
|
16
18
|
result[name] = parsed
|
17
19
|
end
|
18
|
-
|
19
|
-
event_handlers_filename = 'lib/slack/real_time/event_handlers.rb'
|
20
|
-
if File.exist?(event_handlers_filename)
|
21
|
-
puts "Skipping #{event_handlers_filename}."
|
22
|
-
else
|
23
|
-
event_handlers_template = Erubis::Eruby.new(File.read('lib/slack/real_time/api/templates/event_handlers.erb'))
|
24
|
-
File.write event_handlers_filename, event_handlers_template.result(events: events.keys)
|
25
|
-
end
|
26
|
-
# each event handler
|
20
|
+
|
27
21
|
event_handler_template = Erubis::Eruby.new(File.read('lib/slack/real_time/api/templates/event_handler.erb'))
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
22
|
+
Dir.glob('lib/slack/real_time/stores/**/*.rb').each do |store_file|
|
23
|
+
next if File.basename(store_file) == 'base.rb'
|
24
|
+
STDOUT.write "#{File.basename(store_file)}:"
|
25
|
+
|
26
|
+
store_file_contents = File.read(store_file)
|
27
|
+
|
28
|
+
events.each_pair do |event_name, event_data|
|
29
|
+
if store_file_contents.include?("on :#{event_name} do")
|
30
|
+
STDOUT.write('.')
|
31
|
+
else
|
32
|
+
STDOUT.write('x')
|
33
|
+
rendered_event_handler = event_handler_template.result(
|
34
|
+
name: event_data['name'],
|
35
|
+
desc: event_data['desc']
|
36
|
+
)
|
37
|
+
|
38
|
+
store_file_contents.gsub! REAL_TIME_EVENTS_MARKER, REAL_TIME_EVENTS_MARKER + "\n\n" + rendered_event_handler.rstrip
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
File.open store_file, 'w' do |f|
|
43
|
+
f.write store_file_contents
|
40
44
|
end
|
45
|
+
|
46
|
+
puts ' done.'
|
41
47
|
end
|
42
48
|
end
|
43
49
|
end
|
data/slack-ruby-client.gemspec
CHANGED
@@ -16,6 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.homepage = 'http://github.com/dblock/slack-ruby-client'
|
17
17
|
s.licenses = ['MIT']
|
18
18
|
s.summary = 'Slack Web and RealTime API client.'
|
19
|
+
s.add_dependency 'activesupport'
|
19
20
|
s.add_dependency 'faraday'
|
20
21
|
s.add_dependency 'faraday_middleware'
|
21
22
|
s.add_dependency 'json'
|
@@ -7,11 +7,23 @@ RSpec.describe 'integration test', skip: !ENV['SLACK_API_TOKEN'] && 'missing SLA
|
|
7
7
|
WebMock.disable_net_connect!
|
8
8
|
end
|
9
9
|
|
10
|
+
let(:logger) do
|
11
|
+
logger = Logger.new(STDOUT)
|
12
|
+
logger.level = Logger::DEBUG
|
13
|
+
logger
|
14
|
+
end
|
15
|
+
|
10
16
|
before do
|
11
17
|
Thread.abort_on_exception = true
|
18
|
+
|
19
|
+
Slack.configure do |slack|
|
20
|
+
slack.logger = logger
|
21
|
+
end
|
12
22
|
end
|
13
23
|
|
14
|
-
|
24
|
+
after do
|
25
|
+
Slack.config.reset
|
26
|
+
end
|
15
27
|
|
16
28
|
let(:queue) { QueueWithTimeout.new }
|
17
29
|
|