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.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +19 -17
  3. data/.travis.yml +1 -0
  4. data/CHANGELOG.md +8 -0
  5. data/README.md +24 -4
  6. data/bin/commands/chat.rb +10 -9
  7. data/bin/commands/files.rb +19 -1
  8. data/examples/hi_real_time/hi.rb +2 -0
  9. data/lib/slack-ruby-client.rb +4 -2
  10. data/lib/slack/config.rb +4 -0
  11. data/lib/slack/logger.rb +13 -0
  12. data/lib/slack/messages/message.rb +6 -0
  13. data/lib/slack/real_time/api/schema/event.json +1 -0
  14. data/lib/slack/real_time/api/templates/event_handler.erb +4 -18
  15. data/lib/slack/real_time/client.rb +29 -5
  16. data/lib/slack/real_time/concurrency/celluloid.rb +6 -0
  17. data/lib/slack/real_time/concurrency/eventmachine.rb +22 -1
  18. data/lib/slack/real_time/config.rb +5 -1
  19. data/lib/slack/real_time/socket.rb +5 -0
  20. data/lib/slack/real_time/stores.rb +10 -0
  21. data/lib/slack/real_time/stores/base.rb +34 -0
  22. data/lib/slack/real_time/stores/starter.rb +361 -0
  23. data/lib/slack/real_time/stores/store.rb +479 -0
  24. data/lib/slack/version.rb +1 -1
  25. data/lib/slack/web/api/endpoints/api.rb +1 -1
  26. data/lib/slack/web/api/endpoints/auth.rb +1 -1
  27. data/lib/slack/web/api/endpoints/channels.rb +14 -14
  28. data/lib/slack/web/api/endpoints/chat.rb +15 -13
  29. data/lib/slack/web/api/endpoints/dnd.rb +5 -5
  30. data/lib/slack/web/api/endpoints/emoji.rb +1 -1
  31. data/lib/slack/web/api/endpoints/files.rb +30 -6
  32. data/lib/slack/web/api/endpoints/groups.rb +16 -16
  33. data/lib/slack/web/api/endpoints/im.rb +5 -5
  34. data/lib/slack/web/api/endpoints/mpim.rb +5 -5
  35. data/lib/slack/web/api/endpoints/oauth.rb +1 -1
  36. data/lib/slack/web/api/endpoints/pins.rb +3 -3
  37. data/lib/slack/web/api/endpoints/reactions.rb +4 -4
  38. data/lib/slack/web/api/endpoints/rtm.rb +1 -1
  39. data/lib/slack/web/api/endpoints/search.rb +3 -3
  40. data/lib/slack/web/api/endpoints/stars.rb +3 -3
  41. data/lib/slack/web/api/endpoints/team.rb +3 -3
  42. data/lib/slack/web/api/endpoints/usergroups.rb +6 -6
  43. data/lib/slack/web/api/endpoints/users.rb +5 -5
  44. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +1 -1
  45. data/lib/slack/web/api/templates/method.erb +1 -1
  46. data/lib/slack/web/client.rb +1 -0
  47. data/lib/tasks/real_time.rake +27 -21
  48. data/slack-ruby-client.gemspec +1 -0
  49. data/spec/integration/integration_spec.rb +13 -1
  50. data/spec/slack/real_time/client_spec.rb +40 -5
  51. data/spec/slack/real_time/concurrency/celluloid_spec.rb +2 -1
  52. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +3 -2
  53. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +15 -0
  54. data/spec/slack/real_time/event_handlers/team_spec.rb +54 -52
  55. data/spec/slack/web/api/endpoints/files_spec.rb +10 -0
  56. data/spec/slack/web/client_spec.rb +1 -1
  57. data/spec/support/real_time/connected_client.rb +3 -3
  58. metadata +23 -71
  59. data/lib/slack/real_time/api/templates/event_handlers.erb +0 -5
  60. data/lib/slack/real_time/event_handlers.rb +0 -66
  61. data/lib/slack/real_time/event_handlers/accounts_changed.rb +0 -18
  62. data/lib/slack/real_time/event_handlers/bot_added.rb +0 -16
  63. data/lib/slack/real_time/event_handlers/bot_changed.rb +0 -17
  64. data/lib/slack/real_time/event_handlers/channel_archive.rb +0 -17
  65. data/lib/slack/real_time/event_handlers/channel_created.rb +0 -17
  66. data/lib/slack/real_time/event_handlers/channel_deleted.rb +0 -16
  67. data/lib/slack/real_time/event_handlers/channel_history_changed.rb +0 -18
  68. data/lib/slack/real_time/event_handlers/channel_joined.rb +0 -22
  69. data/lib/slack/real_time/event_handlers/channel_left.rb +0 -17
  70. data/lib/slack/real_time/event_handlers/channel_marked.rb +0 -18
  71. data/lib/slack/real_time/event_handlers/channel_rename.rb +0 -17
  72. data/lib/slack/real_time/event_handlers/channel_unarchive.rb +0 -17
  73. data/lib/slack/real_time/event_handlers/commands_changed.rb +0 -18
  74. data/lib/slack/real_time/event_handlers/dnd_updated.rb +0 -18
  75. data/lib/slack/real_time/event_handlers/dnd_updated_user.rb +0 -18
  76. data/lib/slack/real_time/event_handlers/email_domain_changed.rb +0 -16
  77. data/lib/slack/real_time/event_handlers/emoji_changed.rb +0 -18
  78. data/lib/slack/real_time/event_handlers/file_change.rb +0 -18
  79. data/lib/slack/real_time/event_handlers/file_comment_added.rb +0 -18
  80. data/lib/slack/real_time/event_handlers/file_comment_deleted.rb +0 -18
  81. data/lib/slack/real_time/event_handlers/file_comment_edited.rb +0 -18
  82. data/lib/slack/real_time/event_handlers/file_created.rb +0 -18
  83. data/lib/slack/real_time/event_handlers/file_deleted.rb +0 -18
  84. data/lib/slack/real_time/event_handlers/file_private.rb +0 -18
  85. data/lib/slack/real_time/event_handlers/file_public.rb +0 -18
  86. data/lib/slack/real_time/event_handlers/file_shared.rb +0 -18
  87. data/lib/slack/real_time/event_handlers/file_unshared.rb +0 -18
  88. data/lib/slack/real_time/event_handlers/group_archive.rb +0 -17
  89. data/lib/slack/real_time/event_handlers/group_close.rb +0 -16
  90. data/lib/slack/real_time/event_handlers/group_history_changed.rb +0 -18
  91. data/lib/slack/real_time/event_handlers/group_joined.rb +0 -16
  92. data/lib/slack/real_time/event_handlers/group_left.rb +0 -17
  93. data/lib/slack/real_time/event_handlers/group_marked.rb +0 -18
  94. data/lib/slack/real_time/event_handlers/group_open.rb +0 -16
  95. data/lib/slack/real_time/event_handlers/group_rename.rb +0 -17
  96. data/lib/slack/real_time/event_handlers/group_unarchive.rb +0 -17
  97. data/lib/slack/real_time/event_handlers/im_close.rb +0 -16
  98. data/lib/slack/real_time/event_handlers/im_created.rb +0 -16
  99. data/lib/slack/real_time/event_handlers/im_history_changed.rb +0 -18
  100. data/lib/slack/real_time/event_handlers/im_marked.rb +0 -18
  101. data/lib/slack/real_time/event_handlers/im_open.rb +0 -16
  102. data/lib/slack/real_time/event_handlers/manual_presence_change.rb +0 -16
  103. data/lib/slack/real_time/event_handlers/pin_added.rb +0 -18
  104. data/lib/slack/real_time/event_handlers/pin_removed.rb +0 -18
  105. data/lib/slack/real_time/event_handlers/pref_change.rb +0 -16
  106. data/lib/slack/real_time/event_handlers/presence_change.rb +0 -17
  107. data/lib/slack/real_time/event_handlers/reaction_added.rb +0 -18
  108. data/lib/slack/real_time/event_handlers/reaction_removed.rb +0 -18
  109. data/lib/slack/real_time/event_handlers/reconnect_url.rb +0 -18
  110. data/lib/slack/real_time/event_handlers/star_added.rb +0 -18
  111. data/lib/slack/real_time/event_handlers/star_removed.rb +0 -18
  112. data/lib/slack/real_time/event_handlers/subteam_created.rb +0 -18
  113. data/lib/slack/real_time/event_handlers/subteam_self_added.rb +0 -18
  114. data/lib/slack/real_time/event_handlers/subteam_self_removed.rb +0 -18
  115. data/lib/slack/real_time/event_handlers/subteam_updated.rb +0 -18
  116. data/lib/slack/real_time/event_handlers/team_domain_change.rb +0 -17
  117. data/lib/slack/real_time/event_handlers/team_join.rb +0 -16
  118. data/lib/slack/real_time/event_handlers/team_migration_started.rb +0 -18
  119. data/lib/slack/real_time/event_handlers/team_plan_change.rb +0 -16
  120. data/lib/slack/real_time/event_handlers/team_pref_change.rb +0 -16
  121. data/lib/slack/real_time/event_handlers/team_profile_change.rb +0 -18
  122. data/lib/slack/real_time/event_handlers/team_profile_delete.rb +0 -18
  123. data/lib/slack/real_time/event_handlers/team_profile_reorder.rb +0 -18
  124. data/lib/slack/real_time/event_handlers/team_rename.rb +0 -16
  125. data/lib/slack/real_time/event_handlers/user_change.rb +0 -16
  126. data/lib/slack/real_time/event_handlers/user_typing.rb +0 -18
  127. data/lib/slack/real_time/store.rb +0 -47
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module FilePublic
7
- # # A file was made public.
8
- # # @see https://api.slack.com/events/file_public
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_public.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['file_public'] = Slack::RealTime::EventHandlers::FilePublic
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module FileShared
7
- # # A file was shared.
8
- # # @see https://api.slack.com/events/file_shared
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_shared.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['file_shared'] = Slack::RealTime::EventHandlers::FileShared
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module FileUnshared
7
- # # A file was unshared.
8
- # # @see https://api.slack.com/events/file_unshared
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_unshared.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['file_unshared'] = Slack::RealTime::EventHandlers::FileUnshared
@@ -1,17 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module GroupArchive
5
- # A private group was archived.
6
- # @see https://api.slack.com/events/group_archive
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_archive.json
8
- def self.call(client, data)
9
- channel = client.groups[data.channel]
10
- channel.is_archived = true if channel
11
- end
12
- end
13
- end
14
- end
15
- end
16
-
17
- Slack::RealTime::Client.events['group_archive'] = Slack::RealTime::EventHandlers::GroupArchive
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module GroupClose
5
- # You closed a group channel.
6
- # @see https://api.slack.com/events/group_close
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_close.json
8
- def self.call(client, data)
9
- client.groups[data.channel].is_open = false
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['group_close'] = Slack::RealTime::EventHandlers::GroupClose
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module GroupHistoryChanged
7
- # # Bulk updates were made to a group's history.
8
- # # @see https://api.slack.com/events/group_history_changed
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_history_changed.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['group_history_changed'] = Slack::RealTime::EventHandlers::GroupHistoryChanged
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module GroupJoined
5
- # You joined a private group.
6
- # @see https://api.slack.com/events/group_joined
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_joined.json
8
- def self.call(client, data)
9
- client.groups[data.channel.id] = Models::Channel.new(data.channel)
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['group_joined'] = Slack::RealTime::EventHandlers::GroupJoined
@@ -1,17 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module GroupLeft
5
- # You left a private group.
6
- # @see https://api.slack.com/events/group_left
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_left.json
8
- def self.call(client, data)
9
- channel = client.groups[data.channel]
10
- channel.members.delete(client.self.id) if channel && channel.key?('members')
11
- end
12
- end
13
- end
14
- end
15
- end
16
-
17
- Slack::RealTime::Client.events['group_left'] = Slack::RealTime::EventHandlers::GroupLeft
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module GroupMarked
7
- # # A private group read marker was updated.
8
- # # @see https://api.slack.com/events/group_marked
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_marked.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['group_marked'] = Slack::RealTime::EventHandlers::GroupMarked
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module GroupOpen
5
- # You opened a group channel.
6
- # @see https://api.slack.com/events/group_open
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_open.json
8
- def self.call(client, data)
9
- client.groups[data.channel].is_open = true
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['group_open'] = Slack::RealTime::EventHandlers::GroupOpen
@@ -1,17 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module GroupRename
5
- # A private group was renamed.
6
- # @see https://api.slack.com/events/group_rename
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_rename.json
8
- def self.call(client, data)
9
- channel = client.groups[data.channel.id]
10
- channel.name = data.channel.name if channel
11
- end
12
- end
13
- end
14
- end
15
- end
16
-
17
- Slack::RealTime::Client.events['group_rename'] = Slack::RealTime::EventHandlers::GroupRename
@@ -1,17 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module GroupUnarchive
5
- # A private group was unarchived.
6
- # @see https://api.slack.com/events/group_unarchive
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_unarchive.json
8
- def self.call(client, data)
9
- channel = client.groups[data.channel]
10
- channel.is_archived = false if channel
11
- end
12
- end
13
- end
14
- end
15
- end
16
-
17
- Slack::RealTime::Client.events['group_unarchive'] = Slack::RealTime::EventHandlers::GroupUnarchive
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module ImClose
5
- # You closed a direct message channel.
6
- # @see https://api.slack.com/events/im_close
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_close.json
8
- def self.call(client, data)
9
- client.ims[data.channel].is_open = false
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['im_close'] = Slack::RealTime::EventHandlers::ImClose
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module ImCreated
5
- # A direct message channel was created.
6
- # @see https://api.slack.com/events/im_created
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_created.json
8
- def self.call(client, data)
9
- client.ims[data.channel.id] = Models::Im.new(data.channel)
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['im_created'] = Slack::RealTime::EventHandlers::ImCreated
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module ImHistoryChanged
7
- # # Bulk updates were made to a DM channel's history.
8
- # # @see https://api.slack.com/events/im_history_changed
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_history_changed.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['im_history_changed'] = Slack::RealTime::EventHandlers::ImHistoryChanged
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module ImMarked
7
- # # A direct message read marker was updated.
8
- # # @see https://api.slack.com/events/im_marked
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_marked.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['im_marked'] = Slack::RealTime::EventHandlers::ImMarked
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module ImOpen
5
- # You opened a direct message channel.
6
- # @see https://api.slack.com/events/im_open
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_open.json
8
- def self.call(client, data)
9
- client.ims[data.channel].is_open = true
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['im_open'] = Slack::RealTime::EventHandlers::ImOpen
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module ManualPresenceChange
5
- # You manually updated your presence.
6
- # @see https://api.slack.com/events/manual_presence_change
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/manual_presence_change.json
8
- def self.call(client, data)
9
- client.self.presence = data.presence
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['manual_presence_change'] = Slack::RealTime::EventHandlers::ManualPresenceChange
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module PinAdded
7
- # # A pin was added to a channel.
8
- # # @see https://api.slack.com/events/pin_added
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/pin_added.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['pin_added'] = Slack::RealTime::EventHandlers::PinAdded
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module PinRemoved
7
- # # A pin was removed from a channel.
8
- # # @see https://api.slack.com/events/pin_removed
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/pin_removed.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['pin_removed'] = Slack::RealTime::EventHandlers::PinRemoved
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module PrefChange
5
- # You have updated your preferences.
6
- # @see https://api.slack.com/events/pref_change
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/pref_change.json
8
- def self.call(client, data)
9
- client.self.prefs[data.name] = data.value
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['pref_change'] = Slack::RealTime::EventHandlers::PrefChange
@@ -1,17 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module PresenceChange
5
- # A team member's presence changed.
6
- # @see https://api.slack.com/events/presence_change
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/presence_change.json
8
- def self.call(client, data)
9
- user = client.users[data.user]
10
- user.presence = data.presence if user
11
- end
12
- end
13
- end
14
- end
15
- end
16
-
17
- Slack::RealTime::Client.events['presence_change'] = Slack::RealTime::EventHandlers::PresenceChange
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module ReactionAdded
7
- # # A team member has added an emoji reaction to an item.
8
- # # @see https://api.slack.com/events/reaction_added
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/reaction_added.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['reaction_added'] = Slack::RealTime::EventHandlers::ReactionAdded
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module ReactionRemoved
7
- # # A team member removed an emoji reaction.
8
- # # @see https://api.slack.com/events/reaction_removed
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/reaction_removed.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['reaction_removed'] = Slack::RealTime::EventHandlers::ReactionRemoved