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
data/spec/spec_helper.rb CHANGED
@@ -1,9 +1,11 @@
1
+ # frozen_string_literal: true
1
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..'))
2
3
 
3
4
  require 'rubygems'
4
5
  require 'rspec'
6
+ require 'timecop'
5
7
 
6
- require 'slack-ruby-client'
8
+ require 'slack_ruby_client'
7
9
 
8
10
  Dir[File.join(File.dirname(__FILE__), 'support', '**/*.rb')].each do |file|
9
11
  require file
@@ -12,3 +14,8 @@ end
12
14
  Slack.configure do |config|
13
15
  config.token = ENV['SLACK_API_TOKEN']
14
16
  end
17
+
18
+ RSpec.configure do |config|
19
+ # Enable flags like --only-failures and --next-failure
20
+ config.example_status_persistence_file_path = '.rspec_status'
21
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # http://spin.atomicobject.com/2014/07/07/ruby-queue-pop-timeout/
2
3
  class QueueWithTimeout
3
4
  def initialize
@@ -6,15 +7,15 @@ class QueueWithTimeout
6
7
  @recieved = ConditionVariable.new
7
8
  end
8
9
 
9
- def push(x)
10
+ def push(item)
10
11
  @mutex.synchronize do
11
- @queue << x
12
+ @queue << item
12
13
  @recieved.signal
13
14
  end
14
15
  end
15
16
 
16
- def <<(x)
17
- push(x)
17
+ def <<(item)
18
+ push(item)
18
19
  end
19
20
 
20
21
  def pop(non_block = false)
@@ -26,7 +27,7 @@ class QueueWithTimeout
26
27
  if @queue.empty?
27
28
  @recieved.wait(@mutex, timeout) if timeout != 0
28
29
  # if we're still empty after the timeout, raise exception
29
- fail ThreadError, 'queue empty' if @queue.empty?
30
+ raise ThreadError, 'queue empty' if @queue.empty?
30
31
  end
31
32
  @queue.shift
32
33
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Concurrency
@@ -6,8 +7,7 @@ module Slack
6
7
  end
7
8
 
8
9
  class Socket < ::Slack::RealTime::Socket
9
- def self.close
10
- end
10
+ def self.close; end
11
11
 
12
12
  def start_async(client)
13
13
  reactor = Thread.new {}
@@ -1,13 +1,24 @@
1
+ # frozen_string_literal: true
1
2
  RSpec.shared_context 'connected client' do |opts|
2
3
  let(:client) { Slack::RealTime::Client.new(opts || {}) }
3
4
  let(:ws) { double(Slack::RealTime::Concurrency::Mock::WebSocket) }
4
- let(:url) { 'wss://ms173.slack-msgs.com/websocket/lqcUiAvrKTP-uuid=' }
5
+ let(:url) do
6
+ if Slack::RealTime.config.store_class == Slack::RealTime::Stores::Store
7
+ 'wss://ms173.slack-msgs.com/websocket/lqcUiAvrKTP-uuid='
8
+ else
9
+ 'wss://mpmulti-w5tz.slack-msgs.com/websocket/uid'
10
+ end
11
+ end
5
12
  let(:socket) { double(Slack::RealTime::Socket, connected?: true) }
13
+
6
14
  before do
7
15
  Slack::RealTime.configure do |config|
8
16
  config.concurrency = Slack::RealTime::Concurrency::Mock
17
+ config.store_class = (opts || {})[:store_class] || Slack::RealTime::Stores::Store
9
18
  end
10
- allow(Slack::RealTime::Socket).to receive(:new).with(url, ping: 30, logger: Slack::Logger.default).and_return(socket)
19
+ allow(Slack::RealTime::Socket).to(
20
+ receive(:new).with(url, ping: 30, logger: Slack::Logger.default).and_return(socket)
21
+ )
11
22
  allow(socket).to receive(:start_sync)
12
23
  allow(socket).to receive(:connect!)
13
24
  allow(ws).to receive(:on)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  class Event
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  RSpec.configure do |config|
2
3
  config.before do
3
4
  @old_token = Slack::Config.token
data/spec/support/vcr.rb CHANGED
@@ -1,9 +1,14 @@
1
+ # frozen_string_literal: true
1
2
  require 'vcr'
2
3
  require 'webmock/rspec'
3
4
 
4
5
  VCR.configure do |config|
5
6
  config.cassette_library_dir = 'spec/fixtures/slack'
6
7
  config.hook_into :webmock
7
- config.default_cassette_options = { record: :new_episodes }
8
+ # config.default_cassette_options = { record: :new_episodes }
8
9
  config.configure_rspec_metadata!
10
+ config.before_record do |i|
11
+ i.request.body.gsub!(ENV['SLACK_API_TOKEN'], 'token') if ENV.key?('SLACK_API_TOKEN')
12
+ i.response.body.force_encoding('UTF-8')
13
+ end
9
14
  end
metadata CHANGED
@@ -1,43 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slack-ruby-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.9
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Doubrovkine
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-09 00:00:00.000000000 Z
11
+ date: 2021-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: activesupport
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: faraday
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - ">="
32
18
  - !ruby/object:Gem::Version
33
- version: '0.9'
19
+ version: '1.0'
34
20
  type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
24
  - - ">="
39
25
  - !ruby/object:Gem::Version
40
- version: '0.9'
26
+ version: '1.0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: faraday_middleware
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +39,7 @@ dependencies:
53
39
  - !ruby/object:Gem::Version
54
40
  version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
- name: json
42
+ name: gli
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - ">="
@@ -67,7 +53,7 @@ dependencies:
67
53
  - !ruby/object:Gem::Version
68
54
  version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
- name: websocket-driver
56
+ name: hashie
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - ">="
@@ -81,7 +67,7 @@ dependencies:
81
67
  - !ruby/object:Gem::Version
82
68
  version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
- name: gli
70
+ name: websocket-driver
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - ">="
@@ -95,13 +81,13 @@ dependencies:
95
81
  - !ruby/object:Gem::Version
96
82
  version: '0'
97
83
  - !ruby/object:Gem::Dependency
98
- name: hashie
84
+ name: activesupport
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - ">="
102
88
  - !ruby/object:Gem::Version
103
89
  version: '0'
104
- type: :runtime
90
+ type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
@@ -165,7 +151,49 @@ dependencies:
165
151
  - !ruby/object:Gem::Version
166
152
  version: '0'
167
153
  - !ruby/object:Gem::Dependency
168
- name: vcr
154
+ name: rubocop
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 0.82.0
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 0.82.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop-performance
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 1.5.2
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 1.5.2
181
+ - !ruby/object:Gem::Dependency
182
+ name: rubocop-rspec
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: 1.39.0
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: 1.39.0
195
+ - !ruby/object:Gem::Dependency
196
+ name: timecop
169
197
  requirement: !ruby/object:Gem::Requirement
170
198
  requirements:
171
199
  - - ">="
@@ -179,7 +207,7 @@ dependencies:
179
207
  - !ruby/object:Gem::Version
180
208
  version: '0'
181
209
  - !ruby/object:Gem::Dependency
182
- name: webmock
210
+ name: vcr
183
211
  requirement: !ruby/object:Gem::Requirement
184
212
  requirements:
185
213
  - - ">="
@@ -193,26 +221,27 @@ dependencies:
193
221
  - !ruby/object:Gem::Version
194
222
  version: '0'
195
223
  - !ruby/object:Gem::Dependency
196
- name: rubocop
224
+ name: webmock
197
225
  requirement: !ruby/object:Gem::Requirement
198
226
  requirements:
199
- - - '='
227
+ - - ">="
200
228
  - !ruby/object:Gem::Version
201
- version: 0.35.0
229
+ version: '0'
202
230
  type: :development
203
231
  prerelease: false
204
232
  version_requirements: !ruby/object:Gem::Requirement
205
233
  requirements:
206
- - - '='
234
+ - - ">="
207
235
  - !ruby/object:Gem::Version
208
- version: 0.35.0
209
- description:
236
+ version: '0'
237
+ description:
210
238
  email: dblock@dblock.org
211
239
  executables:
212
240
  - slack
213
241
  extensions: []
214
242
  extra_rdoc_files: []
215
243
  files:
244
+ - ".github/FUNDING.yml"
216
245
  - ".gitignore"
217
246
  - ".gitmodules"
218
247
  - ".rspec"
@@ -229,19 +258,56 @@ files:
229
258
  - Rakefile
230
259
  - UPGRADING.md
231
260
  - bin/commands.rb
261
+ - bin/commands/admin_analytics.rb
262
+ - bin/commands/admin_apps.rb
263
+ - bin/commands/admin_apps_approved.rb
264
+ - bin/commands/admin_apps_requests.rb
265
+ - bin/commands/admin_apps_restricted.rb
266
+ - bin/commands/admin_barriers.rb
267
+ - bin/commands/admin_conversations.rb
268
+ - bin/commands/admin_conversations_ekm.rb
269
+ - bin/commands/admin_conversations_restrictAccess.rb
270
+ - bin/commands/admin_conversations_whitelist.rb
271
+ - bin/commands/admin_emoji.rb
272
+ - bin/commands/admin_inviteRequests.rb
273
+ - bin/commands/admin_inviteRequests_approved.rb
274
+ - bin/commands/admin_inviteRequests_denied.rb
275
+ - bin/commands/admin_teams.rb
276
+ - bin/commands/admin_teams_admins.rb
277
+ - bin/commands/admin_teams_owners.rb
278
+ - bin/commands/admin_teams_settings.rb
279
+ - bin/commands/admin_usergroups.rb
280
+ - bin/commands/admin_users.rb
281
+ - bin/commands/admin_users_session.rb
232
282
  - bin/commands/api.rb
283
+ - bin/commands/apps.rb
284
+ - bin/commands/apps_connections.rb
285
+ - bin/commands/apps_event_authorizations.rb
286
+ - bin/commands/apps_permissions.rb
287
+ - bin/commands/apps_permissions_resources.rb
288
+ - bin/commands/apps_permissions_scopes.rb
289
+ - bin/commands/apps_permissions_users.rb
233
290
  - bin/commands/auth.rb
291
+ - bin/commands/auth_teams.rb
234
292
  - bin/commands/bots.rb
293
+ - bin/commands/calls.rb
294
+ - bin/commands/calls_participants.rb
235
295
  - bin/commands/channels.rb
236
296
  - bin/commands/chat.rb
297
+ - bin/commands/chat_scheduledMessages.rb
298
+ - bin/commands/conversations.rb
299
+ - bin/commands/dialog.rb
237
300
  - bin/commands/dnd.rb
238
301
  - bin/commands/emoji.rb
239
302
  - bin/commands/files.rb
240
303
  - bin/commands/files_comments.rb
304
+ - bin/commands/files_remote.rb
241
305
  - bin/commands/groups.rb
242
306
  - bin/commands/im.rb
307
+ - bin/commands/migration.rb
243
308
  - bin/commands/mpim.rb
244
309
  - bin/commands/oauth.rb
310
+ - bin/commands/oauth_v2.rb
245
311
  - bin/commands/pins.rb
246
312
  - bin/commands/reactions.rb
247
313
  - bin/commands/reminders.rb
@@ -253,20 +319,18 @@ files:
253
319
  - bin/commands/usergroups.rb
254
320
  - bin/commands/usergroups_users.rb
255
321
  - bin/commands/users.rb
322
+ - bin/commands/users_admin.rb
323
+ - bin/commands/users_prefs.rb
256
324
  - bin/commands/users_profile.rb
325
+ - bin/commands/views.rb
326
+ - bin/commands/workflows.rb
257
327
  - bin/slack
258
- - examples/hi_real_time/Gemfile
259
- - examples/hi_real_time/hi.gif
260
- - examples/hi_real_time/hi.rb
261
328
  - examples/hi_real_time_and_web/Gemfile
262
329
  - examples/hi_real_time_and_web/hi.gif
263
330
  - examples/hi_real_time_and_web/hi.rb
264
- - examples/hi_real_time_async_celluloid/Gemfile
265
- - examples/hi_real_time_async_celluloid/Procfile
266
- - examples/hi_real_time_async_celluloid/hi.rb
267
- - examples/hi_real_time_async_eventmachine/Gemfile
268
- - examples/hi_real_time_async_eventmachine/Procfile
269
- - examples/hi_real_time_async_eventmachine/hi.rb
331
+ - examples/hi_real_time_async_async/Gemfile
332
+ - examples/hi_real_time_async_async/Procfile
333
+ - examples/hi_real_time_async_async/hi.rb
270
334
  - examples/hi_web/Gemfile
271
335
  - examples/hi_web/hi.gif
272
336
  - examples/hi_web/hi.rb
@@ -275,6 +339,8 @@ files:
275
339
  - lib/slack-ruby-client.rb
276
340
  - lib/slack.rb
277
341
  - lib/slack/config.rb
342
+ - lib/slack/events/config.rb
343
+ - lib/slack/events/request.rb
278
344
  - lib/slack/logger.rb
279
345
  - lib/slack/messages/formatting.rb
280
346
  - lib/slack/messages/message.rb
@@ -286,8 +352,7 @@ files:
286
352
  - lib/slack/real_time/api/typing.rb
287
353
  - lib/slack/real_time/client.rb
288
354
  - lib/slack/real_time/concurrency.rb
289
- - lib/slack/real_time/concurrency/celluloid.rb
290
- - lib/slack/real_time/concurrency/eventmachine.rb
355
+ - lib/slack/real_time/concurrency/async.rb
291
356
  - lib/slack/real_time/config.rb
292
357
  - lib/slack/real_time/models.rb
293
358
  - lib/slack/real_time/models/base.rb
@@ -304,19 +369,56 @@ files:
304
369
  - lib/slack/real_time/stores/store.rb
305
370
  - lib/slack/version.rb
306
371
  - lib/slack/web/api/endpoints.rb
372
+ - lib/slack/web/api/endpoints/admin_analytics.rb
373
+ - lib/slack/web/api/endpoints/admin_apps.rb
374
+ - lib/slack/web/api/endpoints/admin_apps_approved.rb
375
+ - lib/slack/web/api/endpoints/admin_apps_requests.rb
376
+ - lib/slack/web/api/endpoints/admin_apps_restricted.rb
377
+ - lib/slack/web/api/endpoints/admin_barriers.rb
378
+ - lib/slack/web/api/endpoints/admin_conversations.rb
379
+ - lib/slack/web/api/endpoints/admin_conversations_ekm.rb
380
+ - lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb
381
+ - lib/slack/web/api/endpoints/admin_conversations_whitelist.rb
382
+ - lib/slack/web/api/endpoints/admin_emoji.rb
383
+ - lib/slack/web/api/endpoints/admin_inviteRequests.rb
384
+ - lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb
385
+ - lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb
386
+ - lib/slack/web/api/endpoints/admin_teams.rb
387
+ - lib/slack/web/api/endpoints/admin_teams_admins.rb
388
+ - lib/slack/web/api/endpoints/admin_teams_owners.rb
389
+ - lib/slack/web/api/endpoints/admin_teams_settings.rb
390
+ - lib/slack/web/api/endpoints/admin_usergroups.rb
391
+ - lib/slack/web/api/endpoints/admin_users.rb
392
+ - lib/slack/web/api/endpoints/admin_users_session.rb
307
393
  - lib/slack/web/api/endpoints/api.rb
394
+ - lib/slack/web/api/endpoints/apps.rb
395
+ - lib/slack/web/api/endpoints/apps_connections.rb
396
+ - lib/slack/web/api/endpoints/apps_event_authorizations.rb
397
+ - lib/slack/web/api/endpoints/apps_permissions.rb
398
+ - lib/slack/web/api/endpoints/apps_permissions_resources.rb
399
+ - lib/slack/web/api/endpoints/apps_permissions_scopes.rb
400
+ - lib/slack/web/api/endpoints/apps_permissions_users.rb
308
401
  - lib/slack/web/api/endpoints/auth.rb
402
+ - lib/slack/web/api/endpoints/auth_teams.rb
309
403
  - lib/slack/web/api/endpoints/bots.rb
404
+ - lib/slack/web/api/endpoints/calls.rb
405
+ - lib/slack/web/api/endpoints/calls_participants.rb
310
406
  - lib/slack/web/api/endpoints/channels.rb
311
407
  - lib/slack/web/api/endpoints/chat.rb
408
+ - lib/slack/web/api/endpoints/chat_scheduledMessages.rb
409
+ - lib/slack/web/api/endpoints/conversations.rb
410
+ - lib/slack/web/api/endpoints/dialog.rb
312
411
  - lib/slack/web/api/endpoints/dnd.rb
313
412
  - lib/slack/web/api/endpoints/emoji.rb
314
413
  - lib/slack/web/api/endpoints/files.rb
315
414
  - lib/slack/web/api/endpoints/files_comments.rb
415
+ - lib/slack/web/api/endpoints/files_remote.rb
316
416
  - lib/slack/web/api/endpoints/groups.rb
317
417
  - lib/slack/web/api/endpoints/im.rb
418
+ - lib/slack/web/api/endpoints/migration.rb
318
419
  - lib/slack/web/api/endpoints/mpim.rb
319
420
  - lib/slack/web/api/endpoints/oauth.rb
421
+ - lib/slack/web/api/endpoints/oauth_v2.rb
320
422
  - lib/slack/web/api/endpoints/pins.rb
321
423
  - lib/slack/web/api/endpoints/presence.rb
322
424
  - lib/slack/web/api/endpoints/reactions.rb
@@ -329,25 +431,37 @@ files:
329
431
  - lib/slack/web/api/endpoints/usergroups.rb
330
432
  - lib/slack/web/api/endpoints/usergroups_users.rb
331
433
  - lib/slack/web/api/endpoints/users.rb
434
+ - lib/slack/web/api/endpoints/users_admin.rb
435
+ - lib/slack/web/api/endpoints/users_prefs.rb
332
436
  - lib/slack/web/api/endpoints/users_profile.rb
437
+ - lib/slack/web/api/endpoints/views.rb
438
+ - lib/slack/web/api/endpoints/workflows.rb
333
439
  - lib/slack/web/api/error.rb
440
+ - lib/slack/web/api/errors.rb
441
+ - lib/slack/web/api/errors/internal_error.rb
442
+ - lib/slack/web/api/errors/slack_error.rb
443
+ - lib/slack/web/api/errors/too_many_requests_error.rb
334
444
  - lib/slack/web/api/mixins.rb
335
445
  - lib/slack/web/api/mixins/channels.id.json
336
446
  - lib/slack/web/api/mixins/channels.id.rb
447
+ - lib/slack/web/api/mixins/conversations.id.rb
337
448
  - lib/slack/web/api/mixins/groups.id.json
338
449
  - lib/slack/web/api/mixins/groups.id.rb
450
+ - lib/slack/web/api/mixins/ids.id.rb
339
451
  - lib/slack/web/api/mixins/users.id.json
340
452
  - lib/slack/web/api/mixins/users.id.rb
341
453
  - lib/slack/web/api/mixins/users.search.json
342
454
  - lib/slack/web/api/mixins/users.search.rb
343
- - lib/slack/web/api/patches/chat.1.text-attachments-required.patch
344
- - lib/slack/web/api/patches/chat.2.attachments-json.patch
345
- - lib/slack/web/api/patches/chat.3.update-attachments-support.patch
455
+ - lib/slack/web/api/patches/chat.1.patch
456
+ - lib/slack/web/api/patches/dialog.1.open-json-support.patch
457
+ - lib/slack/web/api/patches/views.1.view-json.patch
458
+ - lib/slack/web/api/patches/views.1.views-published.patch
346
459
  - lib/slack/web/api/schema/group.json
347
460
  - lib/slack/web/api/schema/method.json
348
461
  - lib/slack/web/api/templates/command.erb
349
462
  - lib/slack/web/api/templates/commands.erb
350
463
  - lib/slack/web/api/templates/endpoints.erb
464
+ - lib/slack/web/api/templates/errors.erb
351
465
  - lib/slack/web/api/templates/method.erb
352
466
  - lib/slack/web/api/templates/method_spec.erb
353
467
  - lib/slack/web/client.rb
@@ -355,31 +469,40 @@ files:
355
469
  - lib/slack/web/faraday/connection.rb
356
470
  - lib/slack/web/faraday/request.rb
357
471
  - lib/slack/web/faraday/response/raise_error.rb
472
+ - lib/slack/web/faraday/response/wrap_error.rb
473
+ - lib/slack/web/pagination/cursor.rb
358
474
  - lib/slack_ruby_client.rb
359
475
  - lib/tasks/git.rake
360
476
  - lib/tasks/real_time.rake
361
477
  - lib/tasks/update.rake
362
478
  - lib/tasks/web.rake
363
- - screenshots/register-bot.png
479
+ - screenshots/create-app.png
364
480
  - slack-ruby-client.gemspec
365
481
  - slack.png
366
482
  - spec/fixtures/slack/web/429_error.yml
483
+ - spec/fixtures/slack/web/503_error.yml
367
484
  - spec/fixtures/slack/web/auth_test_error.yml
368
485
  - spec/fixtures/slack/web/auth_test_success.yml
369
486
  - spec/fixtures/slack/web/channels_info.yml
487
+ - spec/fixtures/slack/web/conversations_setTopic.yml
488
+ - spec/fixtures/slack/web/conversations_setTopic_one_page.yml
489
+ - spec/fixtures/slack/web/conversations_setTopic_paginated.yml
370
490
  - spec/fixtures/slack/web/groups_info.yml
491
+ - spec/fixtures/slack/web/paginated_users_list.yml
492
+ - spec/fixtures/slack/web/rtm_connect.yml
371
493
  - spec/fixtures/slack/web/rtm_start.yml
372
494
  - spec/fixtures/slack/web/users_info.yml
373
495
  - spec/fixtures/slack/web/users_list.yml
496
+ - spec/fixtures/slack/web/views_open_error.yml
374
497
  - spec/integration/integration_spec.rb
375
498
  - spec/slack/config_spec.rb
499
+ - spec/slack/events/config_spec.rb
500
+ - spec/slack/events/request_spec.rb
376
501
  - spec/slack/messages/formatting_spec.rb
377
502
  - spec/slack/real_time/api/message_spec.rb
378
503
  - spec/slack/real_time/api/ping_spec.rb
379
504
  - spec/slack/real_time/api/typing_spec.rb
380
505
  - spec/slack/real_time/client_spec.rb
381
- - spec/slack/real_time/concurrency/celluloid_spec.rb
382
- - spec/slack/real_time/concurrency/eventmachine_spec.rb
383
506
  - spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb
384
507
  - spec/slack/real_time/event_handlers/bot_spec.rb
385
508
  - spec/slack/real_time/event_handlers/channel_spec.rb
@@ -388,24 +511,63 @@ files:
388
511
  - spec/slack/real_time/event_handlers/im_spec.rb
389
512
  - spec/slack/real_time/event_handlers/team_spec.rb
390
513
  - spec/slack/real_time/event_handlers/user_spec.rb
514
+ - spec/slack/real_time/rtm_connect_spec.rb
391
515
  - spec/slack/real_time/rtm_start_spec.rb
392
516
  - spec/slack/real_time/store_spec.rb
393
517
  - spec/slack/slack_spec.rb
394
518
  - spec/slack/version_spec.rb
519
+ - spec/slack/web/api/endpoints/admin_analytics_spec.rb
520
+ - spec/slack/web/api/endpoints/admin_apps_approved_spec.rb
521
+ - spec/slack/web/api/endpoints/admin_apps_requests_spec.rb
522
+ - spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb
523
+ - spec/slack/web/api/endpoints/admin_apps_spec.rb
524
+ - spec/slack/web/api/endpoints/admin_barriers_spec.rb
525
+ - spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb
526
+ - spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb
527
+ - spec/slack/web/api/endpoints/admin_conversations_spec.rb
528
+ - spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb
529
+ - spec/slack/web/api/endpoints/admin_emoji_spec.rb
530
+ - spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb
531
+ - spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb
532
+ - spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb
533
+ - spec/slack/web/api/endpoints/admin_teams_admins_spec.rb
534
+ - spec/slack/web/api/endpoints/admin_teams_owners_spec.rb
535
+ - spec/slack/web/api/endpoints/admin_teams_settings_spec.rb
536
+ - spec/slack/web/api/endpoints/admin_teams_spec.rb
537
+ - spec/slack/web/api/endpoints/admin_usergroups_spec.rb
538
+ - spec/slack/web/api/endpoints/admin_users_session_spec.rb
539
+ - spec/slack/web/api/endpoints/admin_users_spec.rb
395
540
  - spec/slack/web/api/endpoints/api_spec.rb
541
+ - spec/slack/web/api/endpoints/apps_connections_spec.rb
542
+ - spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb
543
+ - spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb
544
+ - spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb
545
+ - spec/slack/web/api/endpoints/apps_permissions_spec.rb
546
+ - spec/slack/web/api/endpoints/apps_permissions_users_spec.rb
547
+ - spec/slack/web/api/endpoints/apps_spec.rb
548
+ - spec/slack/web/api/endpoints/auth_teams_spec.rb
396
549
  - spec/slack/web/api/endpoints/bots_spec.rb
550
+ - spec/slack/web/api/endpoints/calls_participants_spec.rb
551
+ - spec/slack/web/api/endpoints/calls_spec.rb
552
+ - spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb
553
+ - spec/slack/web/api/endpoints/conversations_spec.rb
397
554
  - spec/slack/web/api/endpoints/custom_specs/auth_spec.rb
398
555
  - spec/slack/web/api/endpoints/custom_specs/channels_spec.rb
399
556
  - spec/slack/web/api/endpoints/custom_specs/chat_spec.rb
557
+ - spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb
400
558
  - spec/slack/web/api/endpoints/custom_specs/groups_spec.rb
401
559
  - spec/slack/web/api/endpoints/custom_specs/users_spec.rb
560
+ - spec/slack/web/api/endpoints/custom_specs/views_spec.rb
402
561
  - spec/slack/web/api/endpoints/dnd_spec.rb
403
562
  - spec/slack/web/api/endpoints/emoji_spec.rb
404
563
  - spec/slack/web/api/endpoints/files_comments_spec.rb
564
+ - spec/slack/web/api/endpoints/files_remote_spec.rb
405
565
  - spec/slack/web/api/endpoints/files_spec.rb
406
566
  - spec/slack/web/api/endpoints/im_spec.rb
567
+ - spec/slack/web/api/endpoints/migration_spec.rb
407
568
  - spec/slack/web/api/endpoints/mpim_spec.rb
408
569
  - spec/slack/web/api/endpoints/oauth_spec.rb
570
+ - spec/slack/web/api/endpoints/oauth_v2_spec.rb
409
571
  - spec/slack/web/api/endpoints/pins_spec.rb
410
572
  - spec/slack/web/api/endpoints/reactions_spec.rb
411
573
  - spec/slack/web/api/endpoints/reminders_spec.rb
@@ -416,12 +578,21 @@ files:
416
578
  - spec/slack/web/api/endpoints/team_spec.rb
417
579
  - spec/slack/web/api/endpoints/usergroups_spec.rb
418
580
  - spec/slack/web/api/endpoints/usergroups_users_spec.rb
581
+ - spec/slack/web/api/endpoints/users_admin_spec.rb
582
+ - spec/slack/web/api/endpoints/users_prefs_spec.rb
419
583
  - spec/slack/web/api/endpoints/users_profile_spec.rb
584
+ - spec/slack/web/api/endpoints/views_spec.rb
585
+ - spec/slack/web/api/endpoints/workflows_spec.rb
420
586
  - spec/slack/web/api/error_spec.rb
587
+ - spec/slack/web/api/errors/slack_error_spec.rb
421
588
  - spec/slack/web/api/mixins/channels_spec.rb
589
+ - spec/slack/web/api/mixins/conversations_list_spec.rb
590
+ - spec/slack/web/api/mixins/conversations_spec.rb
422
591
  - spec/slack/web/api/mixins/groups_spec.rb
423
592
  - spec/slack/web/api/mixins/users_spec.rb
593
+ - spec/slack/web/api/pagination/cursor_spec.rb
424
594
  - spec/slack/web/client_spec.rb
595
+ - spec/slack/web/faraday/response/raise_error_spec.rb
425
596
  - spec/spec_helper.rb
426
597
  - spec/support/queue_with_timeout.rb
427
598
  - spec/support/real_time/concurrency/mock.rb
@@ -433,7 +604,7 @@ homepage: http://github.com/slack-ruby/slack-ruby-client
433
604
  licenses:
434
605
  - MIT
435
606
  metadata: {}
436
- post_install_message:
607
+ post_install_message:
437
608
  rdoc_options: []
438
609
  require_paths:
439
610
  - lib
@@ -448,29 +619,35 @@ required_rubygems_version: !ruby/object:Gem::Requirement
448
619
  - !ruby/object:Gem::Version
449
620
  version: 1.3.6
450
621
  requirements: []
451
- rubyforge_project:
452
- rubygems_version: 2.6.7
453
- signing_key:
622
+ rubygems_version: 3.1.3
623
+ signing_key:
454
624
  specification_version: 4
455
625
  summary: Slack Web and RealTime API client.
456
626
  test_files:
457
627
  - spec/fixtures/slack/web/429_error.yml
628
+ - spec/fixtures/slack/web/503_error.yml
458
629
  - spec/fixtures/slack/web/auth_test_error.yml
459
630
  - spec/fixtures/slack/web/auth_test_success.yml
460
631
  - spec/fixtures/slack/web/channels_info.yml
632
+ - spec/fixtures/slack/web/conversations_setTopic.yml
633
+ - spec/fixtures/slack/web/conversations_setTopic_one_page.yml
634
+ - spec/fixtures/slack/web/conversations_setTopic_paginated.yml
461
635
  - spec/fixtures/slack/web/groups_info.yml
636
+ - spec/fixtures/slack/web/paginated_users_list.yml
637
+ - spec/fixtures/slack/web/rtm_connect.yml
462
638
  - spec/fixtures/slack/web/rtm_start.yml
463
639
  - spec/fixtures/slack/web/users_info.yml
464
640
  - spec/fixtures/slack/web/users_list.yml
641
+ - spec/fixtures/slack/web/views_open_error.yml
465
642
  - spec/integration/integration_spec.rb
466
643
  - spec/slack/config_spec.rb
644
+ - spec/slack/events/config_spec.rb
645
+ - spec/slack/events/request_spec.rb
467
646
  - spec/slack/messages/formatting_spec.rb
468
647
  - spec/slack/real_time/api/message_spec.rb
469
648
  - spec/slack/real_time/api/ping_spec.rb
470
649
  - spec/slack/real_time/api/typing_spec.rb
471
650
  - spec/slack/real_time/client_spec.rb
472
- - spec/slack/real_time/concurrency/celluloid_spec.rb
473
- - spec/slack/real_time/concurrency/eventmachine_spec.rb
474
651
  - spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb
475
652
  - spec/slack/real_time/event_handlers/bot_spec.rb
476
653
  - spec/slack/real_time/event_handlers/channel_spec.rb
@@ -479,24 +656,63 @@ test_files:
479
656
  - spec/slack/real_time/event_handlers/im_spec.rb
480
657
  - spec/slack/real_time/event_handlers/team_spec.rb
481
658
  - spec/slack/real_time/event_handlers/user_spec.rb
659
+ - spec/slack/real_time/rtm_connect_spec.rb
482
660
  - spec/slack/real_time/rtm_start_spec.rb
483
661
  - spec/slack/real_time/store_spec.rb
484
662
  - spec/slack/slack_spec.rb
485
663
  - spec/slack/version_spec.rb
664
+ - spec/slack/web/api/endpoints/admin_analytics_spec.rb
665
+ - spec/slack/web/api/endpoints/admin_apps_approved_spec.rb
666
+ - spec/slack/web/api/endpoints/admin_apps_requests_spec.rb
667
+ - spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb
668
+ - spec/slack/web/api/endpoints/admin_apps_spec.rb
669
+ - spec/slack/web/api/endpoints/admin_barriers_spec.rb
670
+ - spec/slack/web/api/endpoints/admin_conversations_ekm_spec.rb
671
+ - spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb
672
+ - spec/slack/web/api/endpoints/admin_conversations_spec.rb
673
+ - spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb
674
+ - spec/slack/web/api/endpoints/admin_emoji_spec.rb
675
+ - spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb
676
+ - spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb
677
+ - spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb
678
+ - spec/slack/web/api/endpoints/admin_teams_admins_spec.rb
679
+ - spec/slack/web/api/endpoints/admin_teams_owners_spec.rb
680
+ - spec/slack/web/api/endpoints/admin_teams_settings_spec.rb
681
+ - spec/slack/web/api/endpoints/admin_teams_spec.rb
682
+ - spec/slack/web/api/endpoints/admin_usergroups_spec.rb
683
+ - spec/slack/web/api/endpoints/admin_users_session_spec.rb
684
+ - spec/slack/web/api/endpoints/admin_users_spec.rb
486
685
  - spec/slack/web/api/endpoints/api_spec.rb
686
+ - spec/slack/web/api/endpoints/apps_connections_spec.rb
687
+ - spec/slack/web/api/endpoints/apps_event_authorizations_spec.rb
688
+ - spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb
689
+ - spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb
690
+ - spec/slack/web/api/endpoints/apps_permissions_spec.rb
691
+ - spec/slack/web/api/endpoints/apps_permissions_users_spec.rb
692
+ - spec/slack/web/api/endpoints/apps_spec.rb
693
+ - spec/slack/web/api/endpoints/auth_teams_spec.rb
487
694
  - spec/slack/web/api/endpoints/bots_spec.rb
695
+ - spec/slack/web/api/endpoints/calls_participants_spec.rb
696
+ - spec/slack/web/api/endpoints/calls_spec.rb
697
+ - spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb
698
+ - spec/slack/web/api/endpoints/conversations_spec.rb
488
699
  - spec/slack/web/api/endpoints/custom_specs/auth_spec.rb
489
700
  - spec/slack/web/api/endpoints/custom_specs/channels_spec.rb
490
701
  - spec/slack/web/api/endpoints/custom_specs/chat_spec.rb
702
+ - spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb
491
703
  - spec/slack/web/api/endpoints/custom_specs/groups_spec.rb
492
704
  - spec/slack/web/api/endpoints/custom_specs/users_spec.rb
705
+ - spec/slack/web/api/endpoints/custom_specs/views_spec.rb
493
706
  - spec/slack/web/api/endpoints/dnd_spec.rb
494
707
  - spec/slack/web/api/endpoints/emoji_spec.rb
495
708
  - spec/slack/web/api/endpoints/files_comments_spec.rb
709
+ - spec/slack/web/api/endpoints/files_remote_spec.rb
496
710
  - spec/slack/web/api/endpoints/files_spec.rb
497
711
  - spec/slack/web/api/endpoints/im_spec.rb
712
+ - spec/slack/web/api/endpoints/migration_spec.rb
498
713
  - spec/slack/web/api/endpoints/mpim_spec.rb
499
714
  - spec/slack/web/api/endpoints/oauth_spec.rb
715
+ - spec/slack/web/api/endpoints/oauth_v2_spec.rb
500
716
  - spec/slack/web/api/endpoints/pins_spec.rb
501
717
  - spec/slack/web/api/endpoints/reactions_spec.rb
502
718
  - spec/slack/web/api/endpoints/reminders_spec.rb
@@ -507,12 +723,21 @@ test_files:
507
723
  - spec/slack/web/api/endpoints/team_spec.rb
508
724
  - spec/slack/web/api/endpoints/usergroups_spec.rb
509
725
  - spec/slack/web/api/endpoints/usergroups_users_spec.rb
726
+ - spec/slack/web/api/endpoints/users_admin_spec.rb
727
+ - spec/slack/web/api/endpoints/users_prefs_spec.rb
510
728
  - spec/slack/web/api/endpoints/users_profile_spec.rb
729
+ - spec/slack/web/api/endpoints/views_spec.rb
730
+ - spec/slack/web/api/endpoints/workflows_spec.rb
511
731
  - spec/slack/web/api/error_spec.rb
732
+ - spec/slack/web/api/errors/slack_error_spec.rb
512
733
  - spec/slack/web/api/mixins/channels_spec.rb
734
+ - spec/slack/web/api/mixins/conversations_list_spec.rb
735
+ - spec/slack/web/api/mixins/conversations_spec.rb
513
736
  - spec/slack/web/api/mixins/groups_spec.rb
514
737
  - spec/slack/web/api/mixins/users_spec.rb
738
+ - spec/slack/web/api/pagination/cursor_spec.rb
515
739
  - spec/slack/web/client_spec.rb
740
+ - spec/slack/web/faraday/response/raise_error_spec.rb
516
741
  - spec/spec_helper.rb
517
742
  - spec/support/queue_with_timeout.rb
518
743
  - spec/support/real_time/concurrency/mock.rb