slack-ruby-client 0.7.9 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (358) hide show
  1. checksums.yaml +5 -5
  2. data/.github/FUNDING.yml +1 -0
  3. data/.gitignore +2 -0
  4. data/.rubocop.yml +32 -1
  5. data/.rubocop_todo.yml +98 -49
  6. data/.travis.yml +10 -14
  7. data/CHANGELOG.md +172 -24
  8. data/CONTRIBUTING.md +17 -6
  9. data/Dangerfile +2 -0
  10. data/Gemfile +10 -4
  11. data/LICENSE.md +1 -1
  12. data/README.md +276 -54
  13. data/RELEASING.md +19 -11
  14. data/Rakefile +2 -1
  15. data/UPGRADING.md +84 -2
  16. data/bin/commands.rb +43 -1
  17. data/bin/commands/admin_analytics.rb +15 -0
  18. data/bin/commands/admin_apps.rb +40 -0
  19. data/bin/commands/admin_apps_approved.rb +17 -0
  20. data/bin/commands/admin_apps_requests.rb +16 -0
  21. data/bin/commands/admin_apps_restricted.rb +17 -0
  22. data/bin/commands/admin_barriers.rb +47 -0
  23. data/bin/commands/admin_conversations.rb +169 -0
  24. data/bin/commands/admin_conversations_ekm.rb +17 -0
  25. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  26. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  27. data/bin/commands/admin_emoji.rb +54 -0
  28. data/bin/commands/admin_inviteRequests.rb +36 -0
  29. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  30. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  31. data/bin/commands/admin_teams.rb +27 -0
  32. data/bin/commands/admin_teams_admins.rb +16 -0
  33. data/bin/commands/admin_teams_owners.rb +16 -0
  34. data/bin/commands/admin_teams_settings.rb +64 -0
  35. data/bin/commands/admin_usergroups.rb +48 -0
  36. data/bin/commands/admin_users.rb +97 -0
  37. data/bin/commands/admin_users_session.rb +38 -0
  38. data/bin/commands/api.rb +3 -3
  39. data/bin/commands/apps.rb +15 -0
  40. data/bin/commands/apps_connections.rb +13 -0
  41. data/bin/commands/apps_event_authorizations.rb +16 -0
  42. data/bin/commands/apps_permissions.rb +23 -0
  43. data/bin/commands/apps_permissions_resources.rb +15 -0
  44. data/bin/commands/apps_permissions_scopes.rb +13 -0
  45. data/bin/commands/apps_permissions_users.rb +26 -0
  46. data/bin/commands/auth.rb +5 -4
  47. data/bin/commands/auth_teams.rb +16 -0
  48. data/bin/commands/bots.rb +4 -2
  49. data/bin/commands/calls.rb +52 -0
  50. data/bin/commands/calls_participants.rb +25 -0
  51. data/bin/commands/channels.rb +64 -43
  52. data/bin/commands/chat.rb +114 -24
  53. data/bin/commands/chat_scheduledMessages.rb +19 -0
  54. data/bin/commands/conversations.rb +196 -0
  55. data/bin/commands/dialog.rb +15 -0
  56. data/bin/commands/dnd.rb +9 -8
  57. data/bin/commands/emoji.rb +3 -2
  58. data/bin/commands/files.rb +45 -30
  59. data/bin/commands/files_comments.rb +3 -24
  60. data/bin/commands/files_remote.rb +78 -0
  61. data/bin/commands/groups.rb +53 -53
  62. data/bin/commands/im.rb +17 -13
  63. data/bin/commands/migration.rb +16 -0
  64. data/bin/commands/mpim.rb +16 -13
  65. data/bin/commands/oauth.rb +17 -2
  66. data/bin/commands/oauth_v2.rb +17 -0
  67. data/bin/commands/pins.rb +7 -10
  68. data/bin/commands/reactions.rb +17 -15
  69. data/bin/commands/reminders.rb +11 -10
  70. data/bin/commands/rtm.rb +19 -4
  71. data/bin/commands/search.rb +15 -11
  72. data/bin/commands/stars.rb +11 -8
  73. data/bin/commands/team.rb +15 -10
  74. data/bin/commands/team_profile.rb +3 -2
  75. data/bin/commands/usergroups.rb +22 -16
  76. data/bin/commands/usergroups_users.rb +7 -4
  77. data/bin/commands/users.rb +65 -37
  78. data/bin/commands/users_admin.rb +29 -0
  79. data/bin/commands/users_prefs.rb +13 -0
  80. data/bin/commands/users_profile.rb +8 -7
  81. data/bin/commands/views.rb +48 -0
  82. data/bin/commands/workflows.rb +38 -0
  83. data/bin/slack +3 -4
  84. data/examples/hi_real_time_and_web/Gemfile +1 -0
  85. data/examples/hi_real_time_and_web/hi.rb +8 -4
  86. data/examples/{hi_real_time_async_eventmachine → hi_real_time_async_async}/Gemfile +2 -1
  87. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/Procfile +0 -0
  88. data/examples/{hi_real_time_async_celluloid → hi_real_time_async_async}/hi.rb +13 -8
  89. data/examples/hi_web/Gemfile +1 -0
  90. data/examples/hi_web/hi.rb +2 -1
  91. data/examples/new_ticket/Gemfile +1 -0
  92. data/examples/new_ticket/new_ticket.rb +2 -1
  93. data/lib/slack-ruby-client.rb +40 -26
  94. data/lib/slack.rb +1 -0
  95. data/lib/slack/config.rb +1 -0
  96. data/lib/slack/events/config.rb +32 -0
  97. data/lib/slack/events/request.rb +70 -0
  98. data/lib/slack/logger.rb +6 -5
  99. data/lib/slack/messages/formatting.rb +4 -4
  100. data/lib/slack/messages/message.rb +2 -6
  101. data/lib/slack/real_time/api/message.rb +3 -1
  102. data/lib/slack/real_time/api/message_id.rb +1 -0
  103. data/lib/slack/real_time/api/ping.rb +5 -2
  104. data/lib/slack/real_time/api/templates/event_handler.erb +1 -1
  105. data/lib/slack/real_time/api/typing.rb +3 -1
  106. data/lib/slack/real_time/client.rb +113 -32
  107. data/lib/slack/real_time/concurrency.rb +2 -2
  108. data/lib/slack/real_time/concurrency/async.rb +140 -0
  109. data/lib/slack/real_time/config.rb +20 -12
  110. data/lib/slack/real_time/models.rb +8 -7
  111. data/lib/slack/real_time/models/base.rb +2 -6
  112. data/lib/slack/real_time/models/bot.rb +1 -0
  113. data/lib/slack/real_time/models/channel.rb +1 -0
  114. data/lib/slack/real_time/models/group.rb +1 -0
  115. data/lib/slack/real_time/models/im.rb +1 -0
  116. data/lib/slack/real_time/models/team.rb +1 -0
  117. data/lib/slack/real_time/models/user.rb +1 -0
  118. data/lib/slack/real_time/socket.rb +46 -17
  119. data/lib/slack/real_time/stores.rb +4 -3
  120. data/lib/slack/real_time/stores/base.rb +5 -3
  121. data/lib/slack/real_time/stores/starter.rb +113 -72
  122. data/lib/slack/real_time/stores/store.rb +131 -88
  123. data/lib/slack/version.rb +2 -1
  124. data/lib/slack/web/api/endpoints.rb +110 -26
  125. data/lib/slack/web/api/endpoints/admin_analytics.rb +26 -0
  126. data/lib/slack/web/api/endpoints/admin_apps.rb +62 -0
  127. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  128. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
  129. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  130. data/lib/slack/web/api/endpoints/admin_barriers.rb +82 -0
  131. data/lib/slack/web/api/endpoints/admin_conversations.rb +260 -0
  132. data/lib/slack/web/api/endpoints/admin_conversations_ekm.rb +35 -0
  133. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  134. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  135. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  136. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  137. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  138. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  139. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  140. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  141. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  142. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  143. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  144. data/lib/slack/web/api/endpoints/admin_users.rb +161 -0
  145. data/lib/slack/web/api/endpoints/admin_users_session.rb +66 -0
  146. data/lib/slack/web/api/endpoints/api.rb +3 -4
  147. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  148. data/lib/slack/web/api/endpoints/apps_connections.rb +21 -0
  149. data/lib/slack/web/api/endpoints/apps_event_authorizations.rb +34 -0
  150. data/lib/slack/web/api/endpoints/apps_permissions.rb +36 -0
  151. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +31 -0
  152. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +21 -0
  153. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +50 -0
  154. data/lib/slack/web/api/endpoints/auth.rb +5 -4
  155. data/lib/slack/web/api/endpoints/auth_teams.rb +33 -0
  156. data/lib/slack/web/api/endpoints/bots.rb +5 -2
  157. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  158. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  159. data/lib/slack/web/api/endpoints/channels.rb +105 -49
  160. data/lib/slack/web/api/endpoints/chat.rb +221 -40
  161. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +40 -0
  162. data/lib/slack/web/api/endpoints/conversations.rb +332 -0
  163. data/lib/slack/web/api/endpoints/dialog.rb +33 -0
  164. data/lib/slack/web/api/endpoints/dnd.rb +11 -9
  165. data/lib/slack/web/api/endpoints/emoji.rb +3 -2
  166. data/lib/slack/web/api/endpoints/files.rb +75 -38
  167. data/lib/slack/web/api/endpoints/files_comments.rb +3 -38
  168. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  169. data/lib/slack/web/api/endpoints/groups.rb +76 -53
  170. data/lib/slack/web/api/endpoints/im.rb +38 -21
  171. data/lib/slack/web/api/endpoints/migration.rb +28 -0
  172. data/lib/slack/web/api/endpoints/mpim.rb +37 -22
  173. data/lib/slack/web/api/endpoints/oauth.rb +25 -4
  174. data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
  175. data/lib/slack/web/api/endpoints/pins.rb +10 -19
  176. data/lib/slack/web/api/endpoints/presence.rb +1 -1
  177. data/lib/slack/web/api/endpoints/reactions.rb +37 -28
  178. data/lib/slack/web/api/endpoints/reminders.rb +11 -10
  179. data/lib/slack/web/api/endpoints/rtm.rb +28 -7
  180. data/lib/slack/web/api/endpoints/search.rb +21 -14
  181. data/lib/slack/web/api/endpoints/stars.rb +24 -15
  182. data/lib/slack/web/api/endpoints/team.rb +21 -13
  183. data/lib/slack/web/api/endpoints/team_profile.rb +3 -2
  184. data/lib/slack/web/api/endpoints/usergroups.rb +33 -22
  185. data/lib/slack/web/api/endpoints/usergroups_users.rb +9 -4
  186. data/lib/slack/web/api/endpoints/users.rb +78 -29
  187. data/lib/slack/web/api/endpoints/users_admin.rb +49 -0
  188. data/lib/slack/web/api/endpoints/users_prefs.rb +21 -0
  189. data/lib/slack/web/api/endpoints/users_profile.rb +11 -10
  190. data/lib/slack/web/api/endpoints/views.rb +97 -0
  191. data/lib/slack/web/api/endpoints/workflows.rb +61 -0
  192. data/lib/slack/web/api/error.rb +2 -8
  193. data/lib/slack/web/api/errors.rb +850 -0
  194. data/lib/slack/web/api/errors/internal_error.rb +14 -0
  195. data/lib/slack/web/api/errors/slack_error.rb +29 -0
  196. data/lib/slack/web/api/errors/too_many_requests_error.rb +24 -0
  197. data/lib/slack/web/api/mixins.rb +6 -4
  198. data/lib/slack/web/api/mixins/channels.id.rb +6 -7
  199. data/lib/slack/web/api/mixins/conversations.id.rb +25 -0
  200. data/lib/slack/web/api/mixins/groups.id.rb +6 -7
  201. data/lib/slack/web/api/mixins/ids.id.rb +24 -0
  202. data/lib/slack/web/api/mixins/users.id.rb +6 -7
  203. data/lib/slack/web/api/mixins/users.search.rb +39 -36
  204. data/lib/slack/web/api/patches/chat.1.patch +72 -0
  205. data/lib/slack/web/api/patches/dialog.1.open-json-support.patch +17 -0
  206. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  207. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  208. data/lib/slack/web/api/templates/command.erb +5 -3
  209. data/lib/slack/web/api/templates/commands.erb +2 -1
  210. data/lib/slack/web/api/templates/endpoints.erb +5 -3
  211. data/lib/slack/web/api/templates/errors.erb +20 -0
  212. data/lib/slack/web/api/templates/method.erb +26 -4
  213. data/lib/slack/web/api/templates/method_spec.erb +3 -2
  214. data/lib/slack/web/client.rb +2 -1
  215. data/lib/slack/web/config.rb +21 -10
  216. data/lib/slack/web/faraday/connection.rb +25 -16
  217. data/lib/slack/web/faraday/request.rb +2 -0
  218. data/lib/slack/web/faraday/response/raise_error.rb +23 -1
  219. data/lib/slack/web/faraday/response/wrap_error.rb +18 -0
  220. data/lib/slack/web/pagination/cursor.rb +52 -0
  221. data/lib/slack_ruby_client.rb +1 -0
  222. data/lib/tasks/git.rake +2 -1
  223. data/lib/tasks/real_time.rake +16 -6
  224. data/lib/tasks/update.rake +1 -0
  225. data/lib/tasks/web.rake +38 -10
  226. data/screenshots/create-app.png +0 -0
  227. data/slack-ruby-client.gemspec +9 -6
  228. data/spec/fixtures/slack/web/429_error.yml +2 -0
  229. data/spec/fixtures/slack/web/503_error.yml +14 -0
  230. data/spec/fixtures/slack/web/channels_info.yml +108 -15
  231. data/spec/fixtures/slack/web/conversations_setTopic.yml +69 -0
  232. data/spec/fixtures/slack/web/conversations_setTopic_one_page.yml +142 -0
  233. data/spec/fixtures/slack/web/conversations_setTopic_paginated.yml +208 -0
  234. data/spec/fixtures/slack/web/paginated_users_list.yml +181 -0
  235. data/spec/fixtures/slack/web/rtm_connect.yml +70 -0
  236. data/spec/fixtures/slack/web/rtm_start.yml +1 -1
  237. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  238. data/spec/integration/integration_spec.rb +116 -48
  239. data/spec/slack/config_spec.rb +2 -0
  240. data/spec/slack/events/config_spec.rb +33 -0
  241. data/spec/slack/events/request_spec.rb +183 -0
  242. data/spec/slack/messages/formatting_spec.rb +25 -14
  243. data/spec/slack/real_time/api/message_spec.rb +6 -1
  244. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  245. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  246. data/spec/slack/real_time/client_spec.rb +462 -134
  247. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +3 -1
  248. data/spec/slack/real_time/event_handlers/bot_spec.rb +6 -3
  249. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
  250. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +3 -2
  251. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  252. data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
  253. data/spec/slack/real_time/event_handlers/team_spec.rb +8 -4
  254. data/spec/slack/real_time/event_handlers/user_spec.rb +5 -2
  255. data/spec/slack/real_time/rtm_connect_spec.rb +14 -0
  256. data/spec/slack/real_time/rtm_start_spec.rb +1 -0
  257. data/spec/slack/real_time/store_spec.rb +2 -1
  258. data/spec/slack/slack_spec.rb +39 -7
  259. data/spec/slack/version_spec.rb +2 -1
  260. data/spec/slack/web/api/endpoints/admin_analytics_spec.rb +13 -0
  261. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  262. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  263. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  264. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +13 -0
  265. data/spec/slack/web/api/endpoints/admin_barriers_spec.rb +38 -0
  266. data/spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb +8 -0
  267. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  268. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +98 -0
  269. data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +32 -0
  270. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  271. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  272. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  273. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  274. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  275. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  276. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  277. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  278. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  279. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +21 -0
  280. data/spec/slack/web/api/endpoints/admin_users_spec.rb +67 -0
  281. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  282. data/spec/slack/web/api/endpoints/apps_connections_spec.rb +8 -0
  283. data/spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb +13 -0
  284. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +8 -0
  285. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +8 -0
  286. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +16 -0
  287. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +19 -0
  288. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  289. data/spec/slack/web/api/endpoints/auth_teams_spec.rb +8 -0
  290. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  291. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  292. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  293. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  294. data/spec/slack/web/api/endpoints/conversations_spec.rb +109 -0
  295. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +13 -4
  296. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
  297. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +140 -24
  298. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +36 -0
  299. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
  300. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +21 -6
  301. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  302. data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
  303. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  304. data/spec/slack/web/api/endpoints/files_comments_spec.rb +3 -21
  305. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  306. data/spec/slack/web/api/endpoints/files_spec.rb +17 -5
  307. data/spec/slack/web/api/endpoints/im_spec.rb +5 -4
  308. data/spec/slack/web/api/endpoints/migration_spec.rb +13 -0
  309. data/spec/slack/web/api/endpoints/mpim_spec.rb +5 -4
  310. data/spec/slack/web/api/endpoints/oauth_spec.rb +5 -4
  311. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
  312. data/spec/slack/web/api/endpoints/pins_spec.rb +1 -0
  313. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  314. data/spec/slack/web/api/endpoints/reminders_spec.rb +3 -2
  315. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  316. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  317. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  318. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  319. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  320. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  321. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +3 -2
  322. data/spec/slack/web/api/endpoints/users_admin_spec.rb +18 -0
  323. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +8 -0
  324. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  325. data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
  326. data/spec/slack/web/api/endpoints/workflows_spec.rb +26 -0
  327. data/spec/slack/web/api/error_spec.rb +5 -3
  328. data/spec/slack/web/api/errors/slack_error_spec.rb +38 -0
  329. data/spec/slack/web/api/mixins/channels_spec.rb +24 -12
  330. data/spec/slack/web/api/mixins/conversations_list_spec.rb +21 -0
  331. data/spec/slack/web/api/mixins/conversations_spec.rb +43 -0
  332. data/spec/slack/web/api/mixins/groups_spec.rb +24 -12
  333. data/spec/slack/web/api/mixins/users_spec.rb +30 -17
  334. data/spec/slack/web/api/pagination/cursor_spec.rb +100 -0
  335. data/spec/slack/web/client_spec.rb +215 -14
  336. data/spec/slack/web/faraday/response/raise_error_spec.rb +85 -0
  337. data/spec/spec_helper.rb +8 -1
  338. data/spec/support/queue_with_timeout.rb +6 -5
  339. data/spec/support/real_time/concurrency/mock.rb +2 -2
  340. data/spec/support/real_time/connected_client.rb +13 -2
  341. data/spec/support/real_time/event.rb +1 -0
  342. data/spec/support/token.rb +1 -0
  343. data/spec/support/vcr.rb +6 -1
  344. metadata +280 -55
  345. data/examples/hi_real_time/Gemfile +0 -5
  346. data/examples/hi_real_time/hi.gif +0 -0
  347. data/examples/hi_real_time/hi.rb +0 -37
  348. data/examples/hi_real_time_async_celluloid/Gemfile +0 -6
  349. data/examples/hi_real_time_async_eventmachine/Procfile +0 -2
  350. data/examples/hi_real_time_async_eventmachine/hi.rb +0 -36
  351. data/lib/slack/real_time/concurrency/celluloid.rb +0 -113
  352. data/lib/slack/real_time/concurrency/eventmachine.rb +0 -60
  353. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  354. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  355. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -20
  356. data/screenshots/register-bot.png +0 -0
  357. data/spec/slack/real_time/concurrency/celluloid_spec.rb +0 -31
  358. 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 Stores
@@ -26,97 +27,137 @@ module Slack
26
27
  @users = {}
27
28
  end
28
29
 
29
- attrs.users.each do |data|
30
+ attrs.users&.each do |data|
30
31
  user = Models::User.new(data)
31
32
  @users[data.id] = @users.key?(data.id) ? @users[data.id].merge(user) : user
32
- end if attrs.users
33
+ end
33
34
 
34
35
  @channels = {}
35
- attrs.channels.each do |data|
36
+ attrs.channels&.each do |data|
36
37
  @channels[data.id] = Models::Channel.new(data)
37
- end if attrs.channels
38
+ end
38
39
 
39
40
  @bots = {}
40
- attrs.bots.each do |data|
41
+ attrs.bots&.each do |data|
41
42
  @bots[data.id] = Models::Bot.new(data)
42
- end if attrs.bots
43
+ end
43
44
 
44
45
  @groups = {}
45
- attrs.groups.each do |data|
46
+ attrs.groups&.each do |data|
46
47
  @groups[data.id] = Models::Group.new(data)
47
- end if attrs.groups
48
+ end
48
49
 
49
50
  @ims = {}
50
- attrs.ims.each do |data|
51
+ attrs.ims&.each do |data|
51
52
  @ims[data.id] = Models::Im.new(data)
52
- end if attrs.ims
53
+ end
53
54
  end
54
55
 
55
56
  ### RealTime Events
56
57
 
58
+ # An enterprise grid migration has started on an external workspace..
59
+ # @see https://api.slack.com/events/external_org_migration_started
60
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_started.json
61
+ # on :external_org_migration_started do |data|
62
+
63
+ # An enterprise grid migration has finished on an external workspace..
64
+ # @see https://api.slack.com/events/external_org_migration_finished
65
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_finished.json
66
+ # on :external_org_migration_finished do |data|
67
+
68
+ # A private channel was deleted.
69
+ # @see https://api.slack.com/events/group_deleted
70
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_deleted.json
71
+ # on :group_deleted do |data|
72
+
73
+ # Determine the current presence status for a list of users.
74
+ # @see https://api.slack.com/events/presence_query
75
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_query.json
76
+ # on :presence_query do |data|
77
+
78
+ # The membership of an existing User Group has changed.
79
+ # @see https://api.slack.com/events/subteam_members_changed
80
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_members_changed.json
81
+ # on :subteam_members_changed do |data|
82
+
83
+ # Subscribe to presence events for the specified users.
84
+ # @see https://api.slack.com/events/presence_sub
85
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_sub.json
86
+ # on :presence_sub do |data|
87
+
88
+ # A user left a public or private channel.
89
+ # @see https://api.slack.com/events/member_left_channel
90
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/member_left_channel.json
91
+ # on :member_left_channel do |data|
92
+
93
+ # A user joined a public or private channel.
94
+ # @see https://api.slack.com/events/member_joined_channel
95
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/member_joined_channel.json
96
+ # on :member_joined_channel do |data|
97
+
57
98
  # The server intends to close the connection soon..
58
99
  # @see https://api.slack.com/events/goodbye
59
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/goodbye.json
100
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/goodbye.json
60
101
  # on :goodbye do |data|
61
102
 
62
103
  # Verifies ownership of an Events API Request URL.
63
104
  # @see https://api.slack.com/events/url_verification
64
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/url_verification.json
105
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/url_verification.json
65
106
  # on :url_verification do |data|
66
107
 
67
108
  # A message was posted in a multiparty direct message channel.
68
109
  # @see https://api.slack.com/events/message.mpim
69
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/message.mpim.json
110
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.mpim.json
70
111
  # on :message.mpim do |data|
71
112
 
72
113
  # A message was posted in a direct message channel.
73
114
  # @see https://api.slack.com/events/message.im
74
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/message.im.json
115
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.im.json
75
116
  # on :message.im do |data|
76
117
 
77
118
  # A message was posted to a private channel.
78
119
  # @see https://api.slack.com/events/message.groups
79
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/message.groups.json
120
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.groups.json
80
121
  # on :message.groups do |data|
81
122
 
82
123
  # A message was posted to a channel.
83
124
  # @see https://api.slack.com/events/message.channels
84
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/message.channels.json
125
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/message.channels.json
85
126
  # on :message.channels do |data|
86
127
 
87
128
  # A direct message read marker was updated.
88
129
  # @see https://api.slack.com/events/im_marked
89
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_marked.json
130
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_marked.json
90
131
  # on :im_marked do |data|
91
132
 
92
133
  # Bulk updates were made to a DM channel's history.
93
134
  # @see https://api.slack.com/events/im_history_changed
94
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_history_changed.json
135
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_history_changed.json
95
136
  # on :im_history_changed do |data|
96
137
 
97
138
  # The list of accounts a user is signed into has changed.
98
139
  # @see https://api.slack.com/events/accounts_changed
99
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/accounts_changed.json
140
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/accounts_changed.json
100
141
  # on :accounts_changed do |data|
101
142
 
102
143
  # An integration bot was added.
103
144
  # @see https://api.slack.com/events/bot_added
104
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/bot_added.json
145
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_added.json
105
146
  on :bot_added do |data|
106
147
  bots[data.bot.id] = Models::Bot.new(data.bot)
107
148
  end
108
149
 
109
150
  # An integration bot was changed.
110
151
  # @see https://api.slack.com/events/bot_changed
111
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/bot_changed.json
152
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_changed.json
112
153
  on :bot_changed do |data|
113
154
  bot = bots[data.bot.id]
114
- bot.merge!(data.bot) if bot
155
+ bot&.merge!(data.bot)
115
156
  end
116
157
 
117
158
  # A team channel was archived.
118
159
  # @see https://api.slack.com/events/channel_archive
119
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_archive.json
160
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_archive.json
120
161
  on :channel_archive do |data|
121
162
  channel = channels[data.channel]
122
163
  channel.is_archived = true if channel
@@ -124,7 +165,7 @@ module Slack
124
165
 
125
166
  # A team channel was created.
126
167
  # @see https://api.slack.com/events/channel_created
127
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_created.json
168
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_created.json
128
169
  on :channel_created do |data|
129
170
  channel = Models::Channel.new(data.channel)
130
171
  channels[channel.id] = channel
@@ -132,19 +173,19 @@ module Slack
132
173
 
133
174
  # A team channel was deleted.
134
175
  # @see https://api.slack.com/events/channel_deleted
135
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_deleted.json
176
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_deleted.json
136
177
  on :channel_deleted do |data|
137
178
  channels.delete(data.channel)
138
179
  end
139
180
 
140
181
  # Bulk updates were made to a channel's history.
141
182
  # @see https://api.slack.com/events/channel_history_changed
142
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_history_changed.json
183
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_history_changed.json
143
184
  # on :channel_history_changed do |data|
144
185
 
145
186
  # You joined a channel.
146
187
  # @see https://api.slack.com/events/channel_joined
147
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_joined.json
188
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_joined.json
148
189
  on :channel_joined do |data|
149
190
  channel_id = data.channel.id
150
191
  channel = channels[channel_id]
@@ -157,7 +198,7 @@ module Slack
157
198
 
158
199
  # You left a channel.
159
200
  # @see https://api.slack.com/events/channel_left
160
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_left.json
201
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_left.json
161
202
  on :channel_left do |data|
162
203
  channel = channels[data.channel]
163
204
  channel.members.delete(self.self.id) if channel.key? :members
@@ -165,12 +206,12 @@ module Slack
165
206
 
166
207
  # Your channel read marker was updated.
167
208
  # @see https://api.slack.com/events/channel_marked
168
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_marked.json
209
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_marked.json
169
210
  # on :channel_marked do |data|
170
211
 
171
212
  # A team channel was renamed.
172
213
  # @see https://api.slack.com/events/channel_rename
173
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_rename.json
214
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_rename.json
174
215
  on :channel_rename do |data|
175
216
  channel = channels[data.channel.id]
176
217
  channel.name = data.channel.name if channel
@@ -178,7 +219,7 @@ module Slack
178
219
 
179
220
  # A team channel was unarchived.
180
221
  # @see https://api.slack.com/events/channel_unarchive
181
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/channel_unarchive.json
222
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/channel_unarchive.json
182
223
  on :channel_unarchive do |data|
183
224
  channel = channels[data.channel]
184
225
  channel.is_archived = false if channel
@@ -186,84 +227,84 @@ module Slack
186
227
 
187
228
  # A team slash command has been added or changed.
188
229
  # @see https://api.slack.com/events/commands_changed
189
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/commands_changed.json
230
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/commands_changed.json
190
231
  # on :commands_changed do |data|
191
232
 
192
233
  # Do not Disturb settings changed for the current user.
193
234
  # @see https://api.slack.com/events/dnd_updated
194
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/dnd_updated.json
235
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/dnd_updated.json
195
236
  # on :dnd_updated do |data|
196
237
 
197
238
  # Do not Disturb settings changed for a team member.
198
239
  # @see https://api.slack.com/events/dnd_updated_user
199
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/dnd_updated_user.json
240
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/dnd_updated_user.json
200
241
  # on :dnd_updated_user do |data|
201
242
 
202
243
  # The team email domain has changed.
203
244
  # @see https://api.slack.com/events/email_domain_changed
204
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/email_domain_changed.json
245
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/email_domain_changed.json
205
246
  on :email_domain_changed do |data|
206
247
  team.email_domain = data.email_domain
207
248
  end
208
249
 
209
250
  # A team custom emoji has been added or changed.
210
251
  # @see https://api.slack.com/events/emoji_changed
211
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/emoji_changed.json
252
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/emoji_changed.json
212
253
  # on :emoji_changed do |data|
213
254
 
214
255
  # A file was changed.
215
256
  # @see https://api.slack.com/events/file_change
216
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_change.json
257
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_change.json
217
258
  # on :file_change do |data|
218
259
 
219
260
  # A file comment was added.
220
261
  # @see https://api.slack.com/events/file_comment_added
221
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_comment_added.json
262
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_added.json
222
263
  # on :file_comment_added do |data| do
223
264
 
224
265
  # A file comment was deleted.
225
266
  # @see https://api.slack.com/events/file_comment_deleted
226
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_comment_deleted.json
267
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_deleted.json
227
268
  # on :file_comment_deleted do |data|
228
269
 
229
270
  # A file comment was edited.
230
271
  # @see https://api.slack.com/events/file_comment_edited
231
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_comment_edited.json
272
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_comment_edited.json
232
273
  # on :file_comment_edited do |data|
233
274
 
234
275
  # A file was created.
235
276
  # @see https://api.slack.com/events/file_created
236
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_created.json
277
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_created.json
237
278
  # on :file_created do |data|
238
279
 
239
280
  # A file was deleted.
240
281
  # @see https://api.slack.com/events/file_deleted
241
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_deleted.json
282
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_deleted.json
242
283
  # on :file_deleted do |data|
243
284
 
244
285
  # A file was made private.
245
286
  # @see https://api.slack.com/events/file_private
246
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_private.json
287
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_private.json
247
288
  # on :file_private do |data|
248
289
 
249
290
  # A file was made public.
250
291
  # @see https://api.slack.com/events/file_public
251
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_public.json
292
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_public.json
252
293
  # on :file_public do |data|
253
294
 
254
295
  # A file was shared.
255
296
  # @see https://api.slack.com/events/file_shared
256
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_shared.json
297
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_shared.json
257
298
  # on :file_shared do |data|
258
299
 
259
300
  # A file was unshared.
260
301
  # @see https://api.slack.com/events/file_unshared
261
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/file_unshared.json
302
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/file_unshared.json
262
303
  # on :file_unshared do |data|
263
304
 
264
305
  # A private group was archived.
265
306
  # @see https://api.slack.com/events/group_archive
266
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_archive.json
307
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_archive.json
267
308
  on :group_archive do |data|
268
309
  channel = groups[data.channel]
269
310
  channel.is_archived = true if channel
@@ -271,46 +312,46 @@ module Slack
271
312
 
272
313
  # You closed a group channel.
273
314
  # @see https://api.slack.com/events/group_close
274
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_close.json
315
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_close.json
275
316
  on :group_close do |data|
276
317
  groups[data.channel].is_open = false
277
318
  end
278
319
 
279
320
  # Bulk updates were made to a group's history.
280
321
  # @see https://api.slack.com/events/group_history_changed
281
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_history_changed.json
322
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_history_changed.json
282
323
  # on :group_history_changed do |data|
283
324
 
284
325
  # You joined a private group.
285
326
  # @see https://api.slack.com/events/group_joined
286
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_joined.json
327
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_joined.json
287
328
  on :group_joined do |data|
288
329
  groups[data.channel.id] = Models::Channel.new(data.channel)
289
330
  end
290
331
 
291
332
  # You left a private group.
292
333
  # @see https://api.slack.com/events/group_left
293
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_left.json
334
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_left.json
294
335
  on :group_left do |data|
295
336
  channel = groups[data.channel]
296
- channel.members.delete(self.self.id) if channel && channel.key?(:members)
337
+ channel.members.delete(self.self.id) if channel&.key?(:members)
297
338
  end
298
339
 
299
340
  # A private group read marker was updated.
300
341
  # @see https://api.slack.com/events/group_marked
301
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_marked.json
342
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_marked.json
302
343
  # on :group_marked do |data|
303
344
 
304
345
  # You opened a group channel.
305
346
  # @see https://api.slack.com/events/group_open
306
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_open.json
347
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_open.json
307
348
  on :group_open do |data|
308
349
  groups[data.channel].is_open = true
309
350
  end
310
351
 
311
352
  # A private group was renamed.
312
353
  # @see https://api.slack.com/events/group_rename
313
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_rename.json
354
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_rename.json
314
355
  on :group_rename do |data|
315
356
  channel = groups[data.channel.id]
316
357
  channel.name = data.channel.name if channel
@@ -318,7 +359,7 @@ module Slack
318
359
 
319
360
  # A private group was unarchived.
320
361
  # @see https://api.slack.com/events/group_unarchive
321
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/group_unarchive.json
362
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_unarchive.json
322
363
  on :group_unarchive do |data|
323
364
  channel = groups[data.channel]
324
365
  channel.is_archived = false if channel
@@ -326,57 +367,59 @@ module Slack
326
367
 
327
368
  # You closed a direct message channel.
328
369
  # @see https://api.slack.com/events/im_close
329
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_close.json
370
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_close.json
330
371
  on :im_close do |data|
331
- return unless ims && ims.key?(data.channel)
372
+ return unless ims&.key?(data.channel)
373
+
332
374
  ims[data.channel].is_open = false
333
375
  end
334
376
 
335
377
  # A direct message channel was created.
336
378
  # @see https://api.slack.com/events/im_created
337
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_created.json
379
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_created.json
338
380
  on :im_created do |data|
339
381
  ims[data.channel.id] = Models::Im.new(data.channel)
340
382
  end
341
383
 
342
384
  # Bulk updates were made to a DM channel's history.
343
385
  # @see https://api.slack.com/events/im_history_changed
344
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_history_changed.json
386
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_history_changed.json
345
387
  # on :im_history_changed do |data|
346
388
 
347
389
  # A direct message read marker was updated.
348
390
  # @see https://api.slack.com/events/im_marked
349
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_marked.json
391
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_marked.json
350
392
  # on :im_marked do |data|
351
393
 
352
394
  # You opened a direct message channel.
353
395
  # @see https://api.slack.com/events/im_open
354
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/im_open.json
396
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_open.json
355
397
  on :im_open do |data|
356
- return unless ims && ims.key?(data.channel)
398
+ return unless ims&.key?(data.channel)
399
+
357
400
  ims[data.channel].is_open = true
358
401
  end
359
402
 
360
403
  # You manually updated your presence.
361
404
  # @see https://api.slack.com/events/manual_presence_change
362
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/manual_presence_change.json
405
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/manual_presence_change.json
363
406
  on :manual_presence_change do |data|
364
407
  self.self.presence = data.presence
365
408
  end
366
409
 
367
410
  # A pin was added to a channel.
368
411
  # @see https://api.slack.com/events/pin_added
369
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/pin_added.json
412
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pin_added.json
370
413
  # on :pin_added do |data|
371
414
 
372
415
  # A pin was removed from a channel.
373
416
  # @see https://api.slack.com/events/pin_removed
374
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/pin_removed.json
417
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pin_removed.json
375
418
  # on :pin_removed do |data|
376
419
 
377
420
  # You have updated your preferences.
378
421
  # @see https://api.slack.com/events/pref_change
379
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/pref_change.json
422
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/pref_change.json
380
423
  on :pref_change do |data|
381
424
  self.self.prefs ||= {}
382
425
  self.self.prefs[data.name] = data.value
@@ -384,7 +427,7 @@ module Slack
384
427
 
385
428
  # A team member's presence changed.
386
429
  # @see https://api.slack.com/events/presence_change
387
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/presence_change.json
430
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/presence_change.json
388
431
  on :presence_change do |data|
389
432
  user = users[data.user]
390
433
  user.presence = data.presence if user
@@ -392,52 +435,52 @@ module Slack
392
435
 
393
436
  # A team member has added an emoji reaction to an item.
394
437
  # @see https://api.slack.com/events/reaction_added
395
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/reaction_added.json
438
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reaction_added.json
396
439
  # on :reaction_added do |data|
397
440
 
398
441
  # A team member removed an emoji reaction.
399
442
  # @see https://api.slack.com/events/reaction_removed
400
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/reaction_removed.json
443
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reaction_removed.json
401
444
  # on :reaction_removed do |data|
402
445
 
403
446
  # Experimental.
404
447
  # @see https://api.slack.com/events/reconnect_url
405
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/reconnect_url.json
448
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/reconnect_url.json
406
449
  # on :reconnect_url do |data|
407
450
 
408
451
  # A team member has starred an item.
409
452
  # @see https://api.slack.com/events/star_added
410
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/star_added.json
453
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/star_added.json
411
454
  # on :star_added do |data|
412
455
 
413
456
  # A team member removed a star.
414
457
  # @see https://api.slack.com/events/star_removed
415
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/star_removed.json
458
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/star_removed.json
416
459
  # on :star_removed do |data|
417
460
 
418
461
  # A user group has been added to the team.
419
462
  # @see https://api.slack.com/events/subteam_created
420
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/subteam_created.json
463
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_created.json
421
464
  # on :subteam_created do |data|
422
465
 
423
466
  # You have been added to a user group.
424
467
  # @see https://api.slack.com/events/subteam_self_added
425
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/subteam_self_added.json
468
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_self_added.json
426
469
  # on :subteam_self_added do |data|
427
470
 
428
471
  # You have been removed from a user group.
429
472
  # @see https://api.slack.com/events/subteam_self_removed
430
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/subteam_self_removed.json
473
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_self_removed.json
431
474
  # on :subteam_self_removed do |data|
432
475
 
433
476
  # An existing user group has been updated or its members changed.
434
477
  # @see https://api.slack.com/events/subteam_updated
435
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/subteam_updated.json
478
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/subteam_updated.json
436
479
  # on :subteam_updated do |data|
437
480
 
438
481
  # The team domain has changed.
439
482
  # @see https://api.slack.com/events/team_domain_change
440
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_domain_change.json
483
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_domain_change.json
441
484
  on :team_domain_change do |data|
442
485
  team.url = data.url
443
486
  team.domain = data.domain
@@ -445,26 +488,26 @@ module Slack
445
488
 
446
489
  # A new team member has joined.
447
490
  # @see https://api.slack.com/events/team_join
448
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_join.json
491
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_join.json
449
492
  on :team_join do |data|
450
493
  users[data.user.id] = Models::User.new(data.user)
451
494
  end
452
495
 
453
496
  # The team is being migrated between servers.
454
497
  # @see https://api.slack.com/events/team_migration_started
455
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_migration_started.json
498
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_migration_started.json
456
499
  # on :team_migration_started do |data|
457
500
 
458
501
  # The team billing plan has changed.
459
502
  # @see https://api.slack.com/events/team_plan_change
460
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_plan_change.json
503
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_plan_change.json
461
504
  on :team_plan_change do |data|
462
505
  team.plan = data.plan
463
506
  end
464
507
 
465
508
  # A team preference has been updated.
466
509
  # @see https://api.slack.com/events/team_pref_change
467
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_pref_change.json
510
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_pref_change.json
468
511
  on :team_pref_change do |data|
469
512
  team.prefs ||= {}
470
513
  team.prefs[data.name] = data.value
@@ -472,36 +515,36 @@ module Slack
472
515
 
473
516
  # Team profile fields have been updated.
474
517
  # @see https://api.slack.com/events/team_profile_change
475
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_profile_change.json
518
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_change.json
476
519
  # on :team_profile_change do |data|
477
520
 
478
521
  # Team profile fields have been deleted.
479
522
  # @see https://api.slack.com/events/team_profile_delete
480
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_profile_delete.json
523
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_delete.json
481
524
  # on :team_profile_delete do |data|
482
525
 
483
526
  # Team profile fields have been reordered.
484
527
  # @see https://api.slack.com/events/team_profile_reorder
485
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_profile_reorder.json
528
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_profile_reorder.json
486
529
  # on :team_profile_reorder do |data|
487
530
 
488
531
  # The team name has changed.
489
532
  # @see https://api.slack.com/events/team_rename
490
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_rename.json
533
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/team_rename.json
491
534
  on :team_rename do |data|
492
535
  team.name = data.name
493
536
  end
494
537
 
495
538
  # A team member's data has changed.
496
539
  # @see https://api.slack.com/events/user_change
497
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/user_change.json
540
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/user_change.json
498
541
  on :user_change do |data|
499
542
  users[data.user.id] = Models::User.new(data.user)
500
543
  end
501
544
 
502
545
  # A channel member is typing a message.
503
546
  # @see https://api.slack.com/events/user_typing
504
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/user_typing.json
547
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/user_typing.json
505
548
  # on :user_typing do |data|
506
549
  end
507
550
  end