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 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