slack-ruby-client 0.7.9 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/FUNDING.yml +1 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +32 -1
- data/.rubocop_todo.yml +98 -49
- data/.travis.yml +10 -14
- data/CHANGELOG.md +172 -24
- data/CONTRIBUTING.md +17 -6
- data/Dangerfile +2 -0
- data/Gemfile +10 -4
- data/LICENSE.md +1 -1
- data/README.md +276 -54
- data/RELEASING.md +19 -11
- data/Rakefile +2 -1
- data/UPGRADING.md +84 -2
- data/bin/commands.rb +43 -1
- data/bin/commands/admin_analytics.rb +15 -0
- data/bin/commands/admin_apps.rb +40 -0
- data/bin/commands/admin_apps_approved.rb +17 -0
- data/bin/commands/admin_apps_requests.rb +16 -0
- data/bin/commands/admin_apps_restricted.rb +17 -0
- data/bin/commands/admin_barriers.rb +47 -0
- data/bin/commands/admin_conversations.rb +169 -0
- data/bin/commands/admin_conversations_ekm.rb +17 -0
- data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
- data/bin/commands/admin_conversations_whitelist.rb +37 -0
- data/bin/commands/admin_emoji.rb +54 -0
- data/bin/commands/admin_inviteRequests.rb +36 -0
- data/bin/commands/admin_inviteRequests_approved.rb +16 -0
- data/bin/commands/admin_inviteRequests_denied.rb +16 -0
- data/bin/commands/admin_teams.rb +27 -0
- data/bin/commands/admin_teams_admins.rb +16 -0
- data/bin/commands/admin_teams_owners.rb +16 -0
- data/bin/commands/admin_teams_settings.rb +64 -0
- data/bin/commands/admin_usergroups.rb +48 -0
- data/bin/commands/admin_users.rb +97 -0
- data/bin/commands/admin_users_session.rb +38 -0
- data/bin/commands/api.rb +3 -3
- data/bin/commands/apps.rb +15 -0
- data/bin/commands/apps_connections.rb +13 -0
- data/bin/commands/apps_event_authorizations.rb +16 -0
- data/bin/commands/apps_permissions.rb +23 -0
- data/bin/commands/apps_permissions_resources.rb +15 -0
- data/bin/commands/apps_permissions_scopes.rb +13 -0
- data/bin/commands/apps_permissions_users.rb +26 -0
- data/bin/commands/auth.rb +5 -4
- data/bin/commands/auth_teams.rb +16 -0
- data/bin/commands/bots.rb +4 -2
- data/bin/commands/calls.rb +52 -0
- data/bin/commands/calls_participants.rb +25 -0
- data/bin/commands/channels.rb +64 -43
- data/bin/commands/chat.rb +114 -24
- data/bin/commands/chat_scheduledMessages.rb +19 -0
- data/bin/commands/conversations.rb +196 -0
- data/bin/commands/dialog.rb +15 -0
- data/bin/commands/dnd.rb +9 -8
- data/bin/commands/emoji.rb +3 -2
- data/bin/commands/files.rb +45 -30
- data/bin/commands/files_comments.rb +3 -24
- data/bin/commands/files_remote.rb +78 -0
- data/bin/commands/groups.rb +53 -53
- data/bin/commands/im.rb +17 -13
- data/bin/commands/migration.rb +16 -0
- data/bin/commands/mpim.rb +16 -13
- data/bin/commands/oauth.rb +17 -2
- data/bin/commands/oauth_v2.rb +17 -0
- data/bin/commands/pins.rb +7 -10
- data/bin/commands/reactions.rb +17 -15
- data/bin/commands/reminders.rb +11 -10
- data/bin/commands/rtm.rb +19 -4
- data/bin/commands/search.rb +15 -11
- data/bin/commands/stars.rb +11 -8
- data/bin/commands/team.rb +15 -10
- data/bin/commands/team_profile.rb +3 -2
- data/bin/commands/usergroups.rb +22 -16
- data/bin/commands/usergroups_users.rb +7 -4
- data/bin/commands/users.rb +65 -37
- data/bin/commands/users_admin.rb +29 -0
- data/bin/commands/users_prefs.rb +13 -0
- data/bin/commands/users_profile.rb +8 -7
- data/bin/commands/views.rb +48 -0
- data/bin/commands/workflows.rb +38 -0
- data/bin/slack +3 -4
- data/examples/hi_real_time_and_web/Gemfile +1 -0
- data/examples/hi_real_time_and_web/hi.rb +8 -4
- data/examples/{hi_real_time_async_eventmachine → hi_real_time_async_async}/Gemfile +2 -1
- data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Procfile +0 -0
- data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/hi.rb +13 -8
- data/examples/hi_web/Gemfile +1 -0
- data/examples/hi_web/hi.rb +2 -1
- data/examples/new_ticket/Gemfile +1 -0
- data/examples/new_ticket/new_ticket.rb +2 -1
- data/lib/slack-ruby-client.rb +40 -26
- data/lib/slack.rb +1 -0
- data/lib/slack/config.rb +1 -0
- data/lib/slack/events/config.rb +32 -0
- data/lib/slack/events/request.rb +70 -0
- data/lib/slack/logger.rb +6 -5
- data/lib/slack/messages/formatting.rb +4 -4
- data/lib/slack/messages/message.rb +2 -6
- data/lib/slack/real_time/api/message.rb +3 -1
- data/lib/slack/real_time/api/message_id.rb +1 -0
- data/lib/slack/real_time/api/ping.rb +5 -2
- data/lib/slack/real_time/api/templates/event_handler.erb +1 -1
- data/lib/slack/real_time/api/typing.rb +3 -1
- data/lib/slack/real_time/client.rb +113 -32
- data/lib/slack/real_time/concurrency.rb +2 -2
- data/lib/slack/real_time/concurrency/async.rb +140 -0
- data/lib/slack/real_time/config.rb +20 -12
- data/lib/slack/real_time/models.rb +8 -7
- data/lib/slack/real_time/models/base.rb +2 -6
- data/lib/slack/real_time/models/bot.rb +1 -0
- data/lib/slack/real_time/models/channel.rb +1 -0
- data/lib/slack/real_time/models/group.rb +1 -0
- data/lib/slack/real_time/models/im.rb +1 -0
- data/lib/slack/real_time/models/team.rb +1 -0
- data/lib/slack/real_time/models/user.rb +1 -0
- data/lib/slack/real_time/socket.rb +46 -17
- data/lib/slack/real_time/stores.rb +4 -3
- data/lib/slack/real_time/stores/base.rb +5 -3
- data/lib/slack/real_time/stores/starter.rb +113 -72
- data/lib/slack/real_time/stores/store.rb +131 -88
- data/lib/slack/version.rb +2 -1
- data/lib/slack/web/api/endpoints.rb +110 -26
- data/lib/slack/web/api/endpoints/admin_analytics.rb +26 -0
- data/lib/slack/web/api/endpoints/admin_apps.rb +62 -0
- data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
- data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
- data/lib/slack/web/api/endpoints/admin_conversations.rb +260 -0
- data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
- data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
- data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
- data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
- data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
- data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
- data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
- data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
- data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
- data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
- data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
- data/lib/slack/web/api/endpoints/admin_users_session.rb +66 -0
- data/lib/slack/web/api/endpoints/api.rb +3 -4
- data/lib/slack/web/api/endpoints/apps.rb +27 -0
- data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
- data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
- data/lib/slack/web/api/endpoints/apps_permissions.rb +36 -0
- data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +31 -0
- data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +21 -0
- data/lib/slack/web/api/endpoints/apps_permissions_users.rb +50 -0
- data/lib/slack/web/api/endpoints/auth.rb +5 -4
- data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
- data/lib/slack/web/api/endpoints/bots.rb +5 -2
- data/lib/slack/web/api/endpoints/calls.rb +83 -0
- data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
- data/lib/slack/web/api/endpoints/channels.rb +105 -49
- data/lib/slack/web/api/endpoints/chat.rb +221 -40
- data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
- data/lib/slack/web/api/endpoints/conversations.rb +332 -0
- data/lib/slack/web/api/endpoints/dialog.rb +33 -0
- data/lib/slack/web/api/endpoints/dnd.rb +11 -9
- data/lib/slack/web/api/endpoints/emoji.rb +3 -2
- data/lib/slack/web/api/endpoints/files.rb +75 -38
- data/lib/slack/web/api/endpoints/files_comments.rb +3 -38
- data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
- data/lib/slack/web/api/endpoints/groups.rb +76 -53
- data/lib/slack/web/api/endpoints/im.rb +38 -21
- data/lib/slack/web/api/endpoints/migration.rb +28 -0
- data/lib/slack/web/api/endpoints/mpim.rb +37 -22
- data/lib/slack/web/api/endpoints/oauth.rb +25 -4
- data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
- data/lib/slack/web/api/endpoints/pins.rb +10 -19
- data/lib/slack/web/api/endpoints/presence.rb +1 -1
- data/lib/slack/web/api/endpoints/reactions.rb +37 -28
- data/lib/slack/web/api/endpoints/reminders.rb +11 -10
- data/lib/slack/web/api/endpoints/rtm.rb +28 -7
- data/lib/slack/web/api/endpoints/search.rb +21 -14
- data/lib/slack/web/api/endpoints/stars.rb +24 -15
- data/lib/slack/web/api/endpoints/team.rb +21 -13
- data/lib/slack/web/api/endpoints/team_profile.rb +3 -2
- data/lib/slack/web/api/endpoints/usergroups.rb +33 -22
- data/lib/slack/web/api/endpoints/usergroups_users.rb +9 -4
- data/lib/slack/web/api/endpoints/users.rb +78 -29
- data/lib/slack/web/api/endpoints/users_admin.rb +49 -0
- data/lib/slack/web/api/endpoints/users_prefs.rb +21 -0
- data/lib/slack/web/api/endpoints/users_profile.rb +11 -10
- data/lib/slack/web/api/endpoints/views.rb +97 -0
- data/lib/slack/web/api/endpoints/workflows.rb +61 -0
- data/lib/slack/web/api/error.rb +2 -8
- data/lib/slack/web/api/errors.rb +850 -0
- data/lib/slack/web/api/errors/internal_error.rb +14 -0
- data/lib/slack/web/api/errors/slack_error.rb +29 -0
- data/lib/slack/web/api/errors/too_many_requests_error.rb +24 -0
- data/lib/slack/web/api/mixins.rb +6 -4
- data/lib/slack/web/api/mixins/channels.id.rb +6 -7
- data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
- data/lib/slack/web/api/mixins/groups.id.rb +6 -7
- data/lib/slack/web/api/mixins/ids.id.rb +24 -0
- data/lib/slack/web/api/mixins/users.id.rb +6 -7
- data/lib/slack/web/api/mixins/users.search.rb +39 -36
- data/lib/slack/web/api/patches/chat.1.patch +72 -0
- data/lib/slack/web/api/patches/dialog.1.open-json-support.patch +17 -0
- data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
- data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
- data/lib/slack/web/api/templates/command.erb +5 -3
- data/lib/slack/web/api/templates/commands.erb +2 -1
- data/lib/slack/web/api/templates/endpoints.erb +5 -3
- data/lib/slack/web/api/templates/errors.erb +20 -0
- data/lib/slack/web/api/templates/method.erb +26 -4
- data/lib/slack/web/api/templates/method_spec.erb +3 -2
- data/lib/slack/web/client.rb +2 -1
- data/lib/slack/web/config.rb +21 -10
- data/lib/slack/web/faraday/connection.rb +25 -16
- data/lib/slack/web/faraday/request.rb +2 -0
- data/lib/slack/web/faraday/response/raise_error.rb +23 -1
- data/lib/slack/web/faraday/response/wrap_error.rb +18 -0
- data/lib/slack/web/pagination/cursor.rb +52 -0
- data/lib/slack_ruby_client.rb +1 -0
- data/lib/tasks/git.rake +2 -1
- data/lib/tasks/real_time.rake +16 -6
- data/lib/tasks/update.rake +1 -0
- data/lib/tasks/web.rake +38 -10
- data/screenshots/create-app.png +0 -0
- data/slack-ruby-client.gemspec +9 -6
- data/spec/fixtures/slack/web/429_error.yml +2 -0
- data/spec/fixtures/slack/web/503_error.yml +14 -0
- data/spec/fixtures/slack/web/channels_info.yml +108 -15
- data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
- data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
- data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
- data/spec/fixtures/slack/web/paginated_users_list.yml +181 -0
- data/spec/fixtures/slack/web/rtm_connect.yml +70 -0
- data/spec/fixtures/slack/web/rtm_start.yml +1 -1
- data/spec/fixtures/slack/web/views_open_error.yml +76 -0
- data/spec/integration/integration_spec.rb +116 -48
- data/spec/slack/config_spec.rb +2 -0
- data/spec/slack/events/config_spec.rb +33 -0
- data/spec/slack/events/request_spec.rb +183 -0
- data/spec/slack/messages/formatting_spec.rb +25 -14
- data/spec/slack/real_time/api/message_spec.rb +6 -1
- data/spec/slack/real_time/api/ping_spec.rb +2 -0
- data/spec/slack/real_time/api/typing_spec.rb +5 -1
- data/spec/slack/real_time/client_spec.rb +462 -134
- data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +3 -1
- data/spec/slack/real_time/event_handlers/bot_spec.rb +6 -3
- data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
- data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +3 -2
- data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
- data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
- data/spec/slack/real_time/event_handlers/team_spec.rb +8 -4
- data/spec/slack/real_time/event_handlers/user_spec.rb +5 -2
- data/spec/slack/real_time/rtm_connect_spec.rb +14 -0
- data/spec/slack/real_time/rtm_start_spec.rb +1 -0
- data/spec/slack/real_time/store_spec.rb +2 -1
- data/spec/slack/slack_spec.rb +39 -7
- data/spec/slack/version_spec.rb +2 -1
- data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_apps_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
- data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
- data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
- data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +32 -0
- data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
- data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
- data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
- data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
- data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
- data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +21 -0
- data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
- data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +16 -0
- data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +19 -0
- data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
- data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
- data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
- data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/conversations_spec.rb +109 -0
- data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +13 -4
- data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
- data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +140 -24
- data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +36 -0
- data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
- data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +21 -6
- data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
- data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
- data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
- data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
- data/spec/slack/web/api/endpoints/files_spec.rb +17 -5
- data/spec/slack/web/api/endpoints/im_spec.rb +5 -4
- data/spec/slack/web/api/endpoints/migration_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/mpim_spec.rb +5 -4
- data/spec/slack/web/api/endpoints/oauth_spec.rb +5 -4
- data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
- data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
- data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
- data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
- data/spec/slack/web/api/endpoints/users_admin_spec.rb +18 -0
- data/spec/slack/web/api/endpoints/users_prefs_spec.rb +8 -0
- data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
- data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
- data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
- data/spec/slack/web/api/error_spec.rb +5 -3
- data/spec/slack/web/api/errors/slack_error_spec.rb +38 -0
- data/spec/slack/web/api/mixins/channels_spec.rb +24 -12
- data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
- data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
- data/spec/slack/web/api/mixins/groups_spec.rb +24 -12
- data/spec/slack/web/api/mixins/users_spec.rb +30 -17
- data/spec/slack/web/api/pagination/cursor_spec.rb +100 -0
- data/spec/slack/web/client_spec.rb +215 -14
- data/spec/slack/web/faraday/response/raise_error_spec.rb +85 -0
- data/spec/spec_helper.rb +8 -1
- data/spec/support/queue_with_timeout.rb +6 -5
- data/spec/support/real_time/concurrency/mock.rb +2 -2
- data/spec/support/real_time/connected_client.rb +13 -2
- data/spec/support/real_time/event.rb +1 -0
- data/spec/support/token.rb +1 -0
- data/spec/support/vcr.rb +6 -1
- metadata +280 -55
- data/examples/hi_real_time/Gemfile +0 -5
- data/examples/hi_real_time/hi.gif +0 -0
- data/examples/hi_real_time/hi.rb +0 -37
- data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
- data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
- data/examples/hi_real_time_async_eventmachine/hi.rb +0 -36
- data/lib/slack/real_time/concurrency/celluloid.rb +0 -113
- data/lib/slack/real_time/concurrency/eventmachine.rb +0 -60
- data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
- data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
- data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -20
- data/screenshots/register-bot.png +0 -0
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -31
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +0 -47
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
module Config
|
|
@@ -5,24 +6,27 @@ module Slack
|
|
|
5
6
|
|
|
6
7
|
extend self
|
|
7
8
|
|
|
8
|
-
ATTRIBUTES = [
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
ATTRIBUTES = %i[
|
|
10
|
+
token
|
|
11
|
+
websocket_ping
|
|
12
|
+
websocket_proxy
|
|
13
|
+
concurrency
|
|
14
|
+
start_method
|
|
15
|
+
start_options
|
|
16
|
+
store_class
|
|
17
|
+
logger
|
|
16
18
|
].freeze
|
|
17
19
|
|
|
18
|
-
attr_accessor(*Config::ATTRIBUTES)
|
|
20
|
+
attr_accessor(*Config::ATTRIBUTES - [:concurrency])
|
|
21
|
+
attr_writer :concurrency
|
|
19
22
|
|
|
20
23
|
def reset
|
|
21
24
|
self.websocket_ping = 30
|
|
22
25
|
self.websocket_proxy = nil
|
|
23
26
|
self.token = nil
|
|
24
27
|
self.concurrency = method(:detect_concurrency)
|
|
25
|
-
self.
|
|
28
|
+
self.start_method = nil
|
|
29
|
+
self.start_options = { request: { timeout: 180 } }
|
|
26
30
|
self.store_class = Slack::RealTime::Store
|
|
27
31
|
self.logger = nil
|
|
28
32
|
end
|
|
@@ -34,7 +38,7 @@ module Slack
|
|
|
34
38
|
private
|
|
35
39
|
|
|
36
40
|
def detect_concurrency
|
|
37
|
-
[
|
|
41
|
+
%i[Async].each do |concurrency|
|
|
38
42
|
begin
|
|
39
43
|
return Slack::RealTime::Concurrency.const_get(concurrency)
|
|
40
44
|
rescue LoadError, NameError
|
|
@@ -42,7 +46,11 @@ module Slack
|
|
|
42
46
|
end
|
|
43
47
|
end
|
|
44
48
|
|
|
45
|
-
|
|
49
|
+
raise(
|
|
50
|
+
NoConcurrencyError,
|
|
51
|
+
'Missing concurrency. Add async-websocket or faye-websocket ' \
|
|
52
|
+
'to your Gemfile.'
|
|
53
|
+
)
|
|
46
54
|
end
|
|
47
55
|
end
|
|
48
56
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require_relative 'models/base'
|
|
3
|
+
require_relative 'models/user'
|
|
4
|
+
require_relative 'models/bot'
|
|
5
|
+
require_relative 'models/channel'
|
|
6
|
+
require_relative 'models/group'
|
|
7
|
+
require_relative 'models/team'
|
|
8
|
+
require_relative 'models/im'
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
module Models
|
|
4
5
|
class Base < Hashie::Mash
|
|
5
|
-
def presence
|
|
6
|
-
super['presence']
|
|
7
|
-
end
|
|
8
|
-
|
|
9
6
|
# see https://github.com/intridea/hashie/issues/394
|
|
10
|
-
def log_built_in_message(*)
|
|
11
|
-
end
|
|
7
|
+
def log_built_in_message(*); end
|
|
12
8
|
end
|
|
13
9
|
end
|
|
14
10
|
end
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
class Socket
|
|
4
5
|
attr_accessor :url
|
|
5
6
|
attr_accessor :options
|
|
6
7
|
attr_reader :driver
|
|
7
|
-
attr_reader :logger
|
|
8
|
-
protected :logger
|
|
9
8
|
|
|
10
9
|
def initialize(url, options = {})
|
|
11
10
|
@url = url
|
|
12
|
-
@options = options
|
|
11
|
+
@options = options.dup
|
|
13
12
|
@driver = nil
|
|
14
|
-
@logger = options.delete(:logger) || Slack::RealTime::Config.logger || Slack::Config.logger
|
|
13
|
+
@logger = @options.delete(:logger) || Slack::RealTime::Config.logger || Slack::Config.logger
|
|
14
|
+
@last_message_at = nil
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def send_data(message)
|
|
18
18
|
logger.debug("#{self.class}##{__method__}") { message }
|
|
19
19
|
case message
|
|
20
|
-
when Numeric then driver.text(message.to_s)
|
|
21
|
-
when String then driver.text(message)
|
|
22
|
-
when Array then driver.binary(message)
|
|
20
|
+
when Numeric then @driver.text(message.to_s)
|
|
21
|
+
when String then @driver.text(message)
|
|
22
|
+
when Array then @driver.binary(message)
|
|
23
23
|
else false
|
|
24
24
|
end
|
|
25
25
|
end
|
|
@@ -28,37 +28,66 @@ module Slack
|
|
|
28
28
|
return if connected?
|
|
29
29
|
|
|
30
30
|
connect
|
|
31
|
-
logger.debug("#{self.class}##{__method__}") { driver.class }
|
|
31
|
+
logger.debug("#{self.class}##{__method__}") { @driver.class }
|
|
32
|
+
|
|
33
|
+
@driver.on :message do
|
|
34
|
+
@last_message_at = current_time
|
|
35
|
+
end
|
|
32
36
|
|
|
33
|
-
yield driver if block_given?
|
|
37
|
+
yield @driver if block_given?
|
|
34
38
|
end
|
|
35
39
|
|
|
40
|
+
# Gracefully shut down the connection.
|
|
36
41
|
def disconnect!
|
|
37
|
-
driver.close
|
|
42
|
+
@driver.close
|
|
43
|
+
ensure
|
|
44
|
+
close
|
|
38
45
|
end
|
|
39
46
|
|
|
40
47
|
def connected?
|
|
41
|
-
|
|
48
|
+
!@driver.nil?
|
|
42
49
|
end
|
|
43
50
|
|
|
44
51
|
def start_sync(client)
|
|
45
52
|
thread = start_async(client)
|
|
46
|
-
thread
|
|
53
|
+
thread&.join
|
|
47
54
|
rescue Interrupt
|
|
48
|
-
thread
|
|
55
|
+
thread&.exit
|
|
49
56
|
end
|
|
50
57
|
|
|
51
58
|
# @return [#join]
|
|
52
59
|
def start_async(_client)
|
|
53
|
-
|
|
60
|
+
raise NotImplementedError, "Expected #{self.class} to implement #{__method__}."
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def restart_async(_client, _url)
|
|
64
|
+
raise NotImplementedError, "Expected #{self.class} to implement #{__method__}."
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
def time_since_last_message
|
|
68
|
+
return 0 unless @last_message_at
|
|
69
|
+
|
|
70
|
+
current_time - @last_message_at
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def current_time
|
|
74
|
+
Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
|
54
75
|
end
|
|
55
76
|
|
|
56
77
|
def close
|
|
78
|
+
# When you call `driver.emit(:close)`, it will typically end up calling `client.close`
|
|
79
|
+
# which will call `@socket.close` and end up back here. In order to break this infinite
|
|
80
|
+
# recursion, we check and set `@driver = nil` before invoking `client.close`.
|
|
81
|
+
return unless (driver = @driver)
|
|
82
|
+
|
|
57
83
|
@driver = nil
|
|
84
|
+
driver.emit(:close)
|
|
58
85
|
end
|
|
59
86
|
|
|
60
87
|
protected
|
|
61
88
|
|
|
89
|
+
attr_reader :logger
|
|
90
|
+
|
|
62
91
|
def addr
|
|
63
92
|
URI(url).host
|
|
64
93
|
end
|
|
@@ -69,9 +98,9 @@ module Slack
|
|
|
69
98
|
|
|
70
99
|
def port
|
|
71
100
|
case (uri = URI(url)).scheme
|
|
72
|
-
when 'wss'
|
|
101
|
+
when 'wss', 'https'
|
|
73
102
|
URI::HTTPS::DEFAULT_PORT
|
|
74
|
-
when 'ws', 'http'
|
|
103
|
+
when 'ws', 'http'
|
|
75
104
|
URI::HTTP::DEFAULT_PORT
|
|
76
105
|
else
|
|
77
106
|
uri.port
|
|
@@ -79,7 +108,7 @@ module Slack
|
|
|
79
108
|
end
|
|
80
109
|
|
|
81
110
|
def connect
|
|
82
|
-
|
|
111
|
+
raise NotImplementedError, "Expected #{self.class} to implement #{__method__}."
|
|
83
112
|
end
|
|
84
113
|
end
|
|
85
114
|
end
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require_relative 'stores/base'
|
|
3
|
+
require_relative 'stores/starter'
|
|
4
|
+
require_relative 'stores/store'
|
|
4
5
|
|
|
5
6
|
module Slack
|
|
6
7
|
module RealTime
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
module Stores
|
|
4
5
|
# Doesn't store anything.
|
|
5
6
|
class Base
|
|
6
|
-
|
|
7
|
+
class << self
|
|
8
|
+
attr_accessor :events
|
|
9
|
+
end
|
|
7
10
|
|
|
8
11
|
attr_accessor :users
|
|
9
12
|
attr_accessor :bots
|
|
@@ -20,8 +23,7 @@ module Slack
|
|
|
20
23
|
nil
|
|
21
24
|
end
|
|
22
25
|
|
|
23
|
-
def initialize(_attrs)
|
|
24
|
-
end
|
|
26
|
+
def initialize(_attrs); end
|
|
25
27
|
|
|
26
28
|
def self.on(event, &block)
|
|
27
29
|
self.events ||= {}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
1
2
|
module Slack
|
|
2
3
|
module RealTime
|
|
3
4
|
module Stores
|
|
@@ -14,324 +15,364 @@ module Slack
|
|
|
14
15
|
|
|
15
16
|
### RealTime Events
|
|
16
17
|
|
|
18
|
+
# An enterprise grid migration has started on an external workspace..
|
|
19
|
+
# @see https://api.slack.com/events/external_org_migration_started
|
|
20
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_started.json
|
|
21
|
+
# on :external_org_migration_started do |data|
|
|
22
|
+
|
|
23
|
+
# An enterprise grid migration has finished on an external workspace..
|
|
24
|
+
# @see https://api.slack.com/events/external_org_migration_finished
|
|
25
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_finished.json
|
|
26
|
+
# on :external_org_migration_finished do |data|
|
|
27
|
+
|
|
28
|
+
# A private channel was deleted.
|
|
29
|
+
# @see https://api.slack.com/events/group_deleted
|
|
30
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_deleted.json
|
|
31
|
+
# on :group_deleted do |data|
|
|
32
|
+
|
|
33
|
+
# Determine the current presence status for a list of users.
|
|
34
|
+
# @see https://api.slack.com/events/presence_query
|
|
35
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_query.json
|
|
36
|
+
# on :presence_query do |data|
|
|
37
|
+
|
|
38
|
+
# The membership of an existing User Group has changed.
|
|
39
|
+
# @see https://api.slack.com/events/subteam_members_changed
|
|
40
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_members_changed.json
|
|
41
|
+
# on :subteam_members_changed do |data|
|
|
42
|
+
|
|
43
|
+
# Subscribe to presence events for the specified users.
|
|
44
|
+
# @see https://api.slack.com/events/presence_sub
|
|
45
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_sub.json
|
|
46
|
+
# on :presence_sub do |data|
|
|
47
|
+
|
|
48
|
+
# A user left a public or private channel.
|
|
49
|
+
# @see https://api.slack.com/events/member_left_channel
|
|
50
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/member_left_channel.json
|
|
51
|
+
# on :member_left_channel do |data|
|
|
52
|
+
|
|
53
|
+
# A user joined a public or private channel.
|
|
54
|
+
# @see https://api.slack.com/events/member_joined_channel
|
|
55
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/member_joined_channel.json
|
|
56
|
+
# on :member_joined_channel do |data|
|
|
57
|
+
|
|
17
58
|
# The server intends to close the connection soon..
|
|
18
59
|
# @see https://api.slack.com/events/goodbye
|
|
19
|
-
# @see https://github.com/
|
|
60
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/goodbye.json
|
|
20
61
|
# on :goodbye do |data|
|
|
21
62
|
|
|
22
63
|
# Verifies ownership of an Events API Request URL.
|
|
23
64
|
# @see https://api.slack.com/events/url_verification
|
|
24
|
-
# @see https://github.com/
|
|
65
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/url_verification.json
|
|
25
66
|
# on :url_verification do |data|
|
|
26
67
|
|
|
27
68
|
# A message was posted in a multiparty direct message channel.
|
|
28
69
|
# @see https://api.slack.com/events/message.mpim
|
|
29
|
-
# @see https://github.com/
|
|
70
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.mpim.json
|
|
30
71
|
# on :message.mpim do |data|
|
|
31
72
|
|
|
32
73
|
# A message was posted in a direct message channel.
|
|
33
74
|
# @see https://api.slack.com/events/message.im
|
|
34
|
-
# @see https://github.com/
|
|
75
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.im.json
|
|
35
76
|
# on :message.im do |data|
|
|
36
77
|
|
|
37
78
|
# A message was posted to a private channel.
|
|
38
79
|
# @see https://api.slack.com/events/message.groups
|
|
39
|
-
# @see https://github.com/
|
|
80
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.groups.json
|
|
40
81
|
# on :message.groups do |data|
|
|
41
82
|
|
|
42
83
|
# A message was posted to a channel.
|
|
43
84
|
# @see https://api.slack.com/events/message.channels
|
|
44
|
-
# @see https://github.com/
|
|
85
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.channels.json
|
|
45
86
|
# on :message.channels do |data|
|
|
46
87
|
|
|
47
88
|
# A channel member is typing a message.
|
|
48
89
|
# @see https://api.slack.com/events/user_typing
|
|
49
|
-
# @see https://github.com/
|
|
90
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/user_typing.json
|
|
50
91
|
# on :user_typing do |data|
|
|
51
92
|
|
|
52
93
|
# A team member's data has changed.
|
|
53
94
|
# @see https://api.slack.com/events/user_change
|
|
54
|
-
# @see https://github.com/
|
|
95
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/user_change.json
|
|
55
96
|
# on :user_change do |data|
|
|
56
97
|
|
|
57
98
|
# A new team member has joined.
|
|
58
99
|
# @see https://api.slack.com/events/team_join
|
|
59
|
-
# @see https://github.com/
|
|
100
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_join.json
|
|
60
101
|
# on :team_join do |data|
|
|
61
102
|
|
|
62
103
|
# An existing user group has been updated or its members changed.
|
|
63
104
|
# @see https://api.slack.com/events/subteam_updated
|
|
64
|
-
# @see https://github.com/
|
|
105
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_updated.json
|
|
65
106
|
# on :subteam_updated do |data|
|
|
66
107
|
|
|
67
108
|
# You have been removed from a user group.
|
|
68
109
|
# @see https://api.slack.com/events/subteam_self_removed
|
|
69
|
-
# @see https://github.com/
|
|
110
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_self_removed.json
|
|
70
111
|
# on :subteam_self_removed do |data|
|
|
71
112
|
|
|
72
113
|
# You have been added to a user group.
|
|
73
114
|
# @see https://api.slack.com/events/subteam_self_added
|
|
74
|
-
# @see https://github.com/
|
|
115
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_self_added.json
|
|
75
116
|
# on :subteam_self_added do |data|
|
|
76
117
|
|
|
77
118
|
# A user group has been added to the team.
|
|
78
119
|
# @see https://api.slack.com/events/subteam_created
|
|
79
|
-
# @see https://github.com/
|
|
120
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_created.json
|
|
80
121
|
# on :subteam_created do |data|
|
|
81
122
|
|
|
82
123
|
# A team member removed a star.
|
|
83
124
|
# @see https://api.slack.com/events/star_removed
|
|
84
|
-
# @see https://github.com/
|
|
125
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/star_removed.json
|
|
85
126
|
# on :star_removed do |data|
|
|
86
127
|
|
|
87
128
|
# A team member has starred an item.
|
|
88
129
|
# @see https://api.slack.com/events/star_added
|
|
89
|
-
# @see https://github.com/
|
|
130
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/star_added.json
|
|
90
131
|
# on :star_added do |data|
|
|
91
132
|
|
|
92
133
|
# Experimental.
|
|
93
134
|
# @see https://api.slack.com/events/reconnect_url
|
|
94
|
-
# @see https://github.com/
|
|
135
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reconnect_url.json
|
|
95
136
|
# on :reconnect_url do |data|
|
|
96
137
|
|
|
97
138
|
# A team member removed an emoji reaction.
|
|
98
139
|
# @see https://api.slack.com/events/reaction_removed
|
|
99
|
-
# @see https://github.com/
|
|
140
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reaction_removed.json
|
|
100
141
|
# on :reaction_removed do |data|
|
|
101
142
|
|
|
102
143
|
# A team member has added an emoji reaction to an item.
|
|
103
144
|
# @see https://api.slack.com/events/reaction_added
|
|
104
|
-
# @see https://github.com/
|
|
145
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reaction_added.json
|
|
105
146
|
# on :reaction_added do |data|
|
|
106
147
|
|
|
107
148
|
# A team member's presence changed.
|
|
108
149
|
# @see https://api.slack.com/events/presence_change
|
|
109
|
-
# @see https://github.com/
|
|
150
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_change.json
|
|
110
151
|
# on :presence_change do |data|
|
|
111
152
|
|
|
112
153
|
# You have updated your preferences.
|
|
113
154
|
# @see https://api.slack.com/events/pref_change
|
|
114
|
-
# @see https://github.com/
|
|
155
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pref_change.json
|
|
115
156
|
# on :pref_change do |data|
|
|
116
157
|
|
|
117
158
|
# A pin was removed from a channel.
|
|
118
159
|
# @see https://api.slack.com/events/pin_removed
|
|
119
|
-
# @see https://github.com/
|
|
160
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pin_removed.json
|
|
120
161
|
# on :pin_removed do |data|
|
|
121
162
|
|
|
122
163
|
# A pin was added to a channel.
|
|
123
164
|
# @see https://api.slack.com/events/pin_added
|
|
124
|
-
# @see https://github.com/
|
|
165
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pin_added.json
|
|
125
166
|
# on :pin_added do |data|
|
|
126
167
|
|
|
127
168
|
# You manually updated your presence.
|
|
128
169
|
# @see https://api.slack.com/events/manual_presence_change
|
|
129
|
-
# @see https://github.com/
|
|
170
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/manual_presence_change.json
|
|
130
171
|
# on :manual_presence_change do |data|
|
|
131
172
|
|
|
132
173
|
# You opened a direct message channel.
|
|
133
174
|
# @see https://api.slack.com/events/im_open
|
|
134
|
-
# @see https://github.com/
|
|
175
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_open.json
|
|
135
176
|
# on :im_open do |data|
|
|
136
177
|
|
|
137
178
|
# A direct message read marker was updated.
|
|
138
179
|
# @see https://api.slack.com/events/im_marked
|
|
139
|
-
# @see https://github.com/
|
|
180
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_marked.json
|
|
140
181
|
# on :im_marked do |data|
|
|
141
182
|
|
|
142
183
|
# Bulk updates were made to a DM channel's history.
|
|
143
184
|
# @see https://api.slack.com/events/im_history_changed
|
|
144
|
-
# @see https://github.com/
|
|
185
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_history_changed.json
|
|
145
186
|
# on :im_history_changed do |data|
|
|
146
187
|
|
|
147
188
|
# A direct message channel was created.
|
|
148
189
|
# @see https://api.slack.com/events/im_created
|
|
149
|
-
# @see https://github.com/
|
|
190
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_created.json
|
|
150
191
|
# on :im_created do |data|
|
|
151
192
|
|
|
152
193
|
# You closed a direct message channel.
|
|
153
194
|
# @see https://api.slack.com/events/im_close
|
|
154
|
-
# @see https://github.com/
|
|
195
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_close.json
|
|
155
196
|
# on :im_close do |data|
|
|
156
197
|
|
|
157
198
|
# A private group was unarchived.
|
|
158
199
|
# @see https://api.slack.com/events/group_unarchive
|
|
159
|
-
# @see https://github.com/
|
|
200
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_unarchive.json
|
|
160
201
|
# on :group_unarchive do |data|
|
|
161
202
|
|
|
162
203
|
# A private group was renamed.
|
|
163
204
|
# @see https://api.slack.com/events/group_rename
|
|
164
|
-
# @see https://github.com/
|
|
205
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_rename.json
|
|
165
206
|
# on :group_rename do |data|
|
|
166
207
|
|
|
167
208
|
# You opened a group channel.
|
|
168
209
|
# @see https://api.slack.com/events/group_open
|
|
169
|
-
# @see https://github.com/
|
|
210
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_open.json
|
|
170
211
|
# on :group_open do |data|
|
|
171
212
|
|
|
172
213
|
# A private group read marker was updated.
|
|
173
214
|
# @see https://api.slack.com/events/group_marked
|
|
174
|
-
# @see https://github.com/
|
|
215
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_marked.json
|
|
175
216
|
# on :group_marked do |data|
|
|
176
217
|
|
|
177
218
|
# You left a private group.
|
|
178
219
|
# @see https://api.slack.com/events/group_left
|
|
179
|
-
# @see https://github.com/
|
|
220
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_left.json
|
|
180
221
|
# on :group_left do |data|
|
|
181
222
|
|
|
182
223
|
# You joined a private group.
|
|
183
224
|
# @see https://api.slack.com/events/group_joined
|
|
184
|
-
# @see https://github.com/
|
|
225
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_joined.json
|
|
185
226
|
# on :group_joined do |data|
|
|
186
227
|
|
|
187
228
|
# Bulk updates were made to a group's history.
|
|
188
229
|
# @see https://api.slack.com/events/group_history_changed
|
|
189
|
-
# @see https://github.com/
|
|
230
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_history_changed.json
|
|
190
231
|
# on :group_history_changed do |data|
|
|
191
232
|
|
|
192
233
|
# You closed a group channel.
|
|
193
234
|
# @see https://api.slack.com/events/group_close
|
|
194
|
-
# @see https://github.com/
|
|
235
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_close.json
|
|
195
236
|
# on :group_close do |data|
|
|
196
237
|
|
|
197
238
|
# A private group was archived.
|
|
198
239
|
# @see https://api.slack.com/events/group_archive
|
|
199
|
-
# @see https://github.com/
|
|
240
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_archive.json
|
|
200
241
|
# on :group_archive do |data|
|
|
201
242
|
|
|
202
243
|
# A file was unshared.
|
|
203
244
|
# @see https://api.slack.com/events/file_unshared
|
|
204
|
-
# @see https://github.com/
|
|
245
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_unshared.json
|
|
205
246
|
# on :file_unshared do |data|
|
|
206
247
|
|
|
207
248
|
# A file was shared.
|
|
208
249
|
# @see https://api.slack.com/events/file_shared
|
|
209
|
-
# @see https://github.com/
|
|
250
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_shared.json
|
|
210
251
|
# on :file_shared do |data|
|
|
211
252
|
|
|
212
253
|
# A file was made public.
|
|
213
254
|
# @see https://api.slack.com/events/file_public
|
|
214
|
-
# @see https://github.com/
|
|
255
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_public.json
|
|
215
256
|
# on :file_public do |data|
|
|
216
257
|
|
|
217
258
|
# A file was made private.
|
|
218
259
|
# @see https://api.slack.com/events/file_private
|
|
219
|
-
# @see https://github.com/
|
|
260
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_private.json
|
|
220
261
|
# on :file_private do |data|
|
|
221
262
|
|
|
222
263
|
# A file was deleted.
|
|
223
264
|
# @see https://api.slack.com/events/file_deleted
|
|
224
|
-
# @see https://github.com/
|
|
265
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_deleted.json
|
|
225
266
|
# on :file_deleted do |data|
|
|
226
267
|
|
|
227
268
|
# A file was created.
|
|
228
269
|
# @see https://api.slack.com/events/file_created
|
|
229
|
-
# @see https://github.com/
|
|
270
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_created.json
|
|
230
271
|
# on :file_created do |data|
|
|
231
272
|
|
|
232
273
|
# A file comment was edited.
|
|
233
274
|
# @see https://api.slack.com/events/file_comment_edited
|
|
234
|
-
# @see https://github.com/
|
|
275
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_edited.json
|
|
235
276
|
# on :file_comment_edited do |data|
|
|
236
277
|
|
|
237
278
|
# A file comment was deleted.
|
|
238
279
|
# @see https://api.slack.com/events/file_comment_deleted
|
|
239
|
-
# @see https://github.com/
|
|
280
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_deleted.json
|
|
240
281
|
# on :file_comment_deleted do |data|
|
|
241
282
|
|
|
242
283
|
# A file comment was added.
|
|
243
284
|
# @see https://api.slack.com/events/file_comment_added
|
|
244
|
-
# @see https://github.com/
|
|
285
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_added.json
|
|
245
286
|
# on :file_comment_added do |data|
|
|
246
287
|
|
|
247
288
|
# A file was changed.
|
|
248
289
|
# @see https://api.slack.com/events/file_change
|
|
249
|
-
# @see https://github.com/
|
|
290
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_change.json
|
|
250
291
|
# on :file_change do |data|
|
|
251
292
|
|
|
252
293
|
# A team custom emoji has been added or changed.
|
|
253
294
|
# @see https://api.slack.com/events/emoji_changed
|
|
254
|
-
# @see https://github.com/
|
|
295
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/emoji_changed.json
|
|
255
296
|
# on :emoji_changed do |data|
|
|
256
297
|
|
|
257
298
|
# Do not Disturb settings changed for a team member.
|
|
258
299
|
# @see https://api.slack.com/events/dnd_updated_user
|
|
259
|
-
# @see https://github.com/
|
|
300
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/dnd_updated_user.json
|
|
260
301
|
# on :dnd_updated_user do |data|
|
|
261
302
|
|
|
262
303
|
# Do not Disturb settings changed for the current user.
|
|
263
304
|
# @see https://api.slack.com/events/dnd_updated
|
|
264
|
-
# @see https://github.com/
|
|
305
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/dnd_updated.json
|
|
265
306
|
# on :dnd_updated do |data|
|
|
266
307
|
|
|
267
308
|
# A team slash command has been added or changed.
|
|
268
309
|
# @see https://api.slack.com/events/commands_changed
|
|
269
|
-
# @see https://github.com/
|
|
310
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/commands_changed.json
|
|
270
311
|
# on :commands_changed do |data|
|
|
271
312
|
|
|
272
313
|
# A team channel was unarchived.
|
|
273
314
|
# @see https://api.slack.com/events/channel_unarchive
|
|
274
|
-
# @see https://github.com/
|
|
315
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_unarchive.json
|
|
275
316
|
# on :channel_unarchive do |data|
|
|
276
317
|
|
|
277
318
|
# A team channel was renamed.
|
|
278
319
|
# @see https://api.slack.com/events/channel_rename
|
|
279
|
-
# @see https://github.com/
|
|
320
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_rename.json
|
|
280
321
|
# on :channel_rename do |data|
|
|
281
322
|
|
|
282
323
|
# Your channel read marker was updated.
|
|
283
324
|
# @see https://api.slack.com/events/channel_marked
|
|
284
|
-
# @see https://github.com/
|
|
325
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_marked.json
|
|
285
326
|
# on :channel_marked do |data|
|
|
286
327
|
|
|
287
328
|
# You left a channel.
|
|
288
329
|
# @see https://api.slack.com/events/channel_left
|
|
289
|
-
# @see https://github.com/
|
|
330
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_left.json
|
|
290
331
|
# on :channel_left do |data|
|
|
291
332
|
|
|
292
333
|
# You joined a channel.
|
|
293
334
|
# @see https://api.slack.com/events/channel_joined
|
|
294
|
-
# @see https://github.com/
|
|
335
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_joined.json
|
|
295
336
|
# on :channel_joined do |data|
|
|
296
337
|
|
|
297
338
|
# Bulk updates were made to a channel's history.
|
|
298
339
|
# @see https://api.slack.com/events/channel_history_changed
|
|
299
|
-
# @see https://github.com/
|
|
340
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_history_changed.json
|
|
300
341
|
# on :channel_history_changed do |data|
|
|
301
342
|
|
|
302
343
|
# A team channel was deleted.
|
|
303
344
|
# @see https://api.slack.com/events/channel_deleted
|
|
304
|
-
# @see https://github.com/
|
|
345
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_deleted.json
|
|
305
346
|
# on :channel_deleted do |data|
|
|
306
347
|
|
|
307
348
|
# A team channel was created.
|
|
308
349
|
# @see https://api.slack.com/events/channel_created
|
|
309
|
-
# @see https://github.com/
|
|
350
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_created.json
|
|
310
351
|
# on :channel_created do |data|
|
|
311
352
|
|
|
312
353
|
# A team channel was archived.
|
|
313
354
|
# @see https://api.slack.com/events/channel_archive
|
|
314
|
-
# @see https://github.com/
|
|
355
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_archive.json
|
|
315
356
|
# on :channel_archive do |data|
|
|
316
357
|
|
|
317
358
|
# An integration bot was changed.
|
|
318
359
|
# @see https://api.slack.com/events/bot_changed
|
|
319
|
-
# @see https://github.com/
|
|
360
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_changed.json
|
|
320
361
|
# on :bot_changed do |data|
|
|
321
362
|
|
|
322
363
|
# An integration bot was added.
|
|
323
364
|
# @see https://api.slack.com/events/bot_added
|
|
324
|
-
# @see https://github.com/
|
|
365
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_added.json
|
|
325
366
|
# on :bot_added do |data|
|
|
326
367
|
|
|
327
368
|
# The list of accounts a user is signed into has changed.
|
|
328
369
|
# @see https://api.slack.com/events/accounts_changed
|
|
329
|
-
# @see https://github.com/
|
|
370
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/accounts_changed.json
|
|
330
371
|
# on :accounts_changed do |data|
|
|
331
372
|
|
|
332
373
|
# The team domain has changed.
|
|
333
374
|
# @see https://api.slack.com/events/team_domain_change
|
|
334
|
-
# @see https://github.com/
|
|
375
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_domain_change.json
|
|
335
376
|
on :team_domain_change do |data|
|
|
336
377
|
team.url = data.url
|
|
337
378
|
team.domain = data.domain
|
|
@@ -339,19 +380,19 @@ module Slack
|
|
|
339
380
|
|
|
340
381
|
# The team is being migrated between servers.
|
|
341
382
|
# @see https://api.slack.com/events/team_migration_started
|
|
342
|
-
# @see https://github.com/
|
|
383
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_migration_started.json
|
|
343
384
|
# on :team_migration_started do |data|
|
|
344
385
|
|
|
345
386
|
# The team billing plan has changed.
|
|
346
387
|
# @see https://api.slack.com/events/team_plan_change
|
|
347
|
-
# @see https://github.com/
|
|
388
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_plan_change.json
|
|
348
389
|
on :team_plan_change do |data|
|
|
349
390
|
team.plan = data.plan
|
|
350
391
|
end
|
|
351
392
|
|
|
352
393
|
# A team preference has been updated.
|
|
353
394
|
# @see https://api.slack.com/events/team_pref_change
|
|
354
|
-
# @see https://github.com/
|
|
395
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_pref_change.json
|
|
355
396
|
on :team_pref_change do |data|
|
|
356
397
|
team.prefs ||= {}
|
|
357
398
|
team.prefs[data.name] = data.value
|
|
@@ -359,29 +400,29 @@ module Slack
|
|
|
359
400
|
|
|
360
401
|
# Team profile fields have been updated.
|
|
361
402
|
# @see https://api.slack.com/events/team_profile_change
|
|
362
|
-
# @see https://github.com/
|
|
403
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_change.json
|
|
363
404
|
# on :team_profile_change do |data|
|
|
364
405
|
|
|
365
406
|
# Team profile fields have been deleted.
|
|
366
407
|
# @see https://api.slack.com/events/team_profile_delete
|
|
367
|
-
# @see https://github.com/
|
|
408
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_delete.json
|
|
368
409
|
# on :team_profile_delete do |data|
|
|
369
410
|
|
|
370
411
|
# Team profile fields have been reordered.
|
|
371
412
|
# @see https://api.slack.com/events/team_profile_reorder
|
|
372
|
-
# @see https://github.com/
|
|
413
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_reorder.json
|
|
373
414
|
# on :team_profile_reorder do |data|
|
|
374
415
|
|
|
375
416
|
# The team name has changed.
|
|
376
417
|
# @see https://api.slack.com/events/team_rename
|
|
377
|
-
# @see https://github.com/
|
|
418
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_rename.json
|
|
378
419
|
on :team_rename do |data|
|
|
379
420
|
team.name = data.name
|
|
380
421
|
end
|
|
381
422
|
|
|
382
423
|
# The team email domain has changed.
|
|
383
424
|
# @see https://api.slack.com/events/email_domain_changed
|
|
384
|
-
# @see https://github.com/
|
|
425
|
+
# @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/email_domain_changed.json
|
|
385
426
|
on :email_domain_changed do |data|
|
|
386
427
|
team.email_domain = data.email_domain
|
|
387
428
|
end
|