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.
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 Config
@@ -5,24 +6,27 @@ module Slack
5
6
 
6
7
  extend self
7
8
 
8
- ATTRIBUTES = [
9
- :token,
10
- :websocket_ping,
11
- :websocket_proxy,
12
- :concurrency,
13
- :start_options,
14
- :store_class,
15
- :logger
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.start_options = {}
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
- [:Eventmachine, :Celluloid].each do |concurrency|
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
- fail NoConcurrencyError, 'Missing concurrency. Add faye-websocket or celluloid-io to your Gemfile.'
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
- require 'slack/real_time/models/base'
2
- require 'slack/real_time/models/user'
3
- require 'slack/real_time/models/bot'
4
- require 'slack/real_time/models/channel'
5
- require 'slack/real_time/models/group'
6
- require 'slack/real_time/models/team'
7
- require 'slack/real_time/models/im'
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,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Models
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Models
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Models
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Models
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Models
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Models
@@ -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
- !driver.nil?
48
+ !@driver.nil?
42
49
  end
43
50
 
44
51
  def start_sync(client)
45
52
  thread = start_async(client)
46
- thread.join if thread
53
+ thread&.join
47
54
  rescue Interrupt
48
- thread.exit if thread
55
+ thread&.exit
49
56
  end
50
57
 
51
58
  # @return [#join]
52
59
  def start_async(_client)
53
- fail NotImplementedError, "Expected #{self.class} to implement #{__method__}."
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'.freeze, 'https'.freeze
101
+ when 'wss', 'https'
73
102
  URI::HTTPS::DEFAULT_PORT
74
- when 'ws', 'http'.freeze
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
- fail NotImplementedError, "Expected #{self.class} to implement #{__method__}."
111
+ raise NotImplementedError, "Expected #{self.class} to implement #{__method__}."
83
112
  end
84
113
  end
85
114
  end
@@ -1,6 +1,7 @@
1
- require 'slack/real_time/stores/base'
2
- require 'slack/real_time/stores/starter'
3
- require 'slack/real_time/stores/store'
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
- class_attribute :events
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/dblock/slack-api-ref/blob/master/events/goodbye.json
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/dblock/slack-api-ref/blob/master/events/url_verification.json
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/dblock/slack-api-ref/blob/master/events/message.mpim.json
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/dblock/slack-api-ref/blob/master/events/message.im.json
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/dblock/slack-api-ref/blob/master/events/message.groups.json
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/dblock/slack-api-ref/blob/master/events/message.channels.json
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/dblock/slack-api-ref/blob/master/events/user_typing.json
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/dblock/slack-api-ref/blob/master/events/user_change.json
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/dblock/slack-api-ref/blob/master/events/team_join.json
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/dblock/slack-api-ref/blob/master/events/subteam_updated.json
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/dblock/slack-api-ref/blob/master/events/subteam_self_removed.json
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/dblock/slack-api-ref/blob/master/events/subteam_self_added.json
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/dblock/slack-api-ref/blob/master/events/subteam_created.json
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/dblock/slack-api-ref/blob/master/events/star_removed.json
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/dblock/slack-api-ref/blob/master/events/star_added.json
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/dblock/slack-api-ref/blob/master/events/reconnect_url.json
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/dblock/slack-api-ref/blob/master/events/reaction_removed.json
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/dblock/slack-api-ref/blob/master/events/reaction_added.json
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/dblock/slack-api-ref/blob/master/events/presence_change.json
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/dblock/slack-api-ref/blob/master/events/pref_change.json
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/dblock/slack-api-ref/blob/master/events/pin_removed.json
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/dblock/slack-api-ref/blob/master/events/pin_added.json
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/dblock/slack-api-ref/blob/master/events/manual_presence_change.json
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/dblock/slack-api-ref/blob/master/events/im_open.json
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/dblock/slack-api-ref/blob/master/events/im_marked.json
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/dblock/slack-api-ref/blob/master/events/im_history_changed.json
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/dblock/slack-api-ref/blob/master/events/im_created.json
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/dblock/slack-api-ref/blob/master/events/im_close.json
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/dblock/slack-api-ref/blob/master/events/group_unarchive.json
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/dblock/slack-api-ref/blob/master/events/group_rename.json
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/dblock/slack-api-ref/blob/master/events/group_open.json
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/dblock/slack-api-ref/blob/master/events/group_marked.json
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/dblock/slack-api-ref/blob/master/events/group_left.json
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/dblock/slack-api-ref/blob/master/events/group_joined.json
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/dblock/slack-api-ref/blob/master/events/group_history_changed.json
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/dblock/slack-api-ref/blob/master/events/group_close.json
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/dblock/slack-api-ref/blob/master/events/group_archive.json
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/dblock/slack-api-ref/blob/master/events/file_unshared.json
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/dblock/slack-api-ref/blob/master/events/file_shared.json
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/dblock/slack-api-ref/blob/master/events/file_public.json
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/dblock/slack-api-ref/blob/master/events/file_private.json
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/dblock/slack-api-ref/blob/master/events/file_deleted.json
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/dblock/slack-api-ref/blob/master/events/file_created.json
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/dblock/slack-api-ref/blob/master/events/file_comment_edited.json
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/dblock/slack-api-ref/blob/master/events/file_comment_deleted.json
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/dblock/slack-api-ref/blob/master/events/file_comment_added.json
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/dblock/slack-api-ref/blob/master/events/file_change.json
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/dblock/slack-api-ref/blob/master/events/emoji_changed.json
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/dblock/slack-api-ref/blob/master/events/dnd_updated_user.json
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/dblock/slack-api-ref/blob/master/events/dnd_updated.json
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/dblock/slack-api-ref/blob/master/events/commands_changed.json
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/dblock/slack-api-ref/blob/master/events/channel_unarchive.json
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/dblock/slack-api-ref/blob/master/events/channel_rename.json
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/dblock/slack-api-ref/blob/master/events/channel_marked.json
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/dblock/slack-api-ref/blob/master/events/channel_left.json
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/dblock/slack-api-ref/blob/master/events/channel_joined.json
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/dblock/slack-api-ref/blob/master/events/channel_history_changed.json
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/dblock/slack-api-ref/blob/master/events/channel_deleted.json
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/dblock/slack-api-ref/blob/master/events/channel_created.json
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/dblock/slack-api-ref/blob/master/events/channel_archive.json
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/dblock/slack-api-ref/blob/master/events/bot_changed.json
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/dblock/slack-api-ref/blob/master/events/bot_added.json
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/dblock/slack-api-ref/blob/master/events/accounts_changed.json
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/dblock/slack-api-ref/blob/master/events/team_domain_change.json
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/dblock/slack-api-ref/blob/master/events/team_migration_started.json
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/dblock/slack-api-ref/blob/master/events/team_plan_change.json
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/dblock/slack-api-ref/blob/master/events/team_pref_change.json
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/dblock/slack-api-ref/blob/master/events/team_profile_change.json
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/dblock/slack-api-ref/blob/master/events/team_profile_delete.json
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/dblock/slack-api-ref/blob/master/events/team_profile_reorder.json
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/dblock/slack-api-ref/blob/master/events/team_rename.json
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/dblock/slack-api-ref/blob/master/events/email_domain_changed.json
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