slack-ruby-client 0.14.2 → 0.15.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 (322) hide show
  1. checksums.yaml +4 -4
  2. data/.github/FUNDING.yml +1 -0
  3. data/.rubocop.yml +23 -7
  4. data/.rubocop_todo.yml +103 -43
  5. data/.travis.yml +0 -1
  6. data/CHANGELOG.md +39 -2
  7. data/CONTRIBUTING.md +24 -6
  8. data/Dangerfile +2 -1
  9. data/Gemfile +10 -3
  10. data/README.md +90 -30
  11. data/Rakefile +1 -0
  12. data/UPGRADING.md +16 -0
  13. data/bin/commands.rb +24 -0
  14. data/bin/commands/admin_apps.rb +27 -0
  15. data/bin/commands/admin_apps_approved.rb +17 -0
  16. data/bin/commands/admin_apps_requests.rb +16 -0
  17. data/bin/commands/admin_apps_restricted.rb +17 -0
  18. data/bin/commands/admin_conversations.rb +17 -0
  19. data/bin/commands/admin_conversations_restrictAccess.rb +37 -0
  20. data/bin/commands/admin_conversations_whitelist.rb +37 -0
  21. data/bin/commands/admin_emoji.rb +54 -0
  22. data/bin/commands/admin_inviteRequests.rb +36 -0
  23. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  24. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  25. data/bin/commands/admin_teams.rb +27 -0
  26. data/bin/commands/admin_teams_admins.rb +16 -0
  27. data/bin/commands/admin_teams_owners.rb +16 -0
  28. data/bin/commands/admin_teams_settings.rb +64 -0
  29. data/bin/commands/admin_usergroups.rb +48 -0
  30. data/bin/commands/admin_users.rb +97 -0
  31. data/bin/commands/admin_users_session.rb +16 -0
  32. data/bin/commands/api.rb +3 -2
  33. data/bin/commands/apps.rb +3 -2
  34. data/bin/commands/apps_permissions.rb +5 -4
  35. data/bin/commands/apps_permissions_resources.rb +3 -2
  36. data/bin/commands/apps_permissions_scopes.rb +3 -2
  37. data/bin/commands/apps_permissions_users.rb +5 -4
  38. data/bin/commands/auth.rb +5 -4
  39. data/bin/commands/bots.rb +3 -2
  40. data/bin/commands/calls.rb +52 -0
  41. data/bin/commands/calls_participants.rb +25 -0
  42. data/bin/commands/channels.rb +31 -30
  43. data/bin/commands/chat.rb +36 -32
  44. data/bin/commands/chat_scheduledMessages.rb +3 -2
  45. data/bin/commands/conversations.rb +36 -36
  46. data/bin/commands/dialog.rb +3 -2
  47. data/bin/commands/dnd.rb +9 -8
  48. data/bin/commands/emoji.rb +3 -2
  49. data/bin/commands/files.rb +14 -12
  50. data/bin/commands/files_comments.rb +3 -2
  51. data/bin/commands/files_remote.rb +78 -0
  52. data/bin/commands/groups.rb +33 -32
  53. data/bin/commands/im.rb +13 -12
  54. data/bin/commands/migration.rb +3 -2
  55. data/bin/commands/mpim.rb +11 -10
  56. data/bin/commands/oauth.rb +6 -5
  57. data/bin/commands/oauth_v2.rb +17 -0
  58. data/bin/commands/pins.rb +7 -8
  59. data/bin/commands/reactions.rb +10 -11
  60. data/bin/commands/reminders.rb +11 -10
  61. data/bin/commands/rtm.rb +5 -4
  62. data/bin/commands/search.rb +7 -6
  63. data/bin/commands/stars.rb +7 -6
  64. data/bin/commands/team.rb +10 -8
  65. data/bin/commands/team_profile.rb +3 -2
  66. data/bin/commands/usergroups.rb +11 -10
  67. data/bin/commands/usergroups_users.rb +5 -4
  68. data/bin/commands/users.rb +21 -20
  69. data/bin/commands/users_admin.rb +1 -0
  70. data/bin/commands/users_prefs.rb +1 -0
  71. data/bin/commands/users_profile.rb +5 -4
  72. data/bin/commands/views.rb +48 -0
  73. data/bin/slack +1 -2
  74. data/examples/hi_real_time/Gemfile +1 -0
  75. data/examples/hi_real_time/hi.rb +7 -3
  76. data/examples/hi_real_time_and_web/Gemfile +1 -0
  77. data/examples/hi_real_time_and_web/hi.rb +7 -3
  78. data/examples/hi_real_time_async_async/Gemfile +1 -0
  79. data/examples/hi_real_time_async_async/hi.rb +6 -2
  80. data/examples/hi_real_time_async_celluloid/Gemfile +1 -0
  81. data/examples/hi_real_time_async_celluloid/hi.rb +7 -3
  82. data/examples/hi_real_time_async_eventmachine/Gemfile +1 -0
  83. data/examples/hi_real_time_async_eventmachine/hi.rb +7 -3
  84. data/examples/hi_web/Gemfile +1 -0
  85. data/examples/hi_web/hi.rb +1 -0
  86. data/examples/new_ticket/Gemfile +1 -0
  87. data/examples/new_ticket/new_ticket.rb +1 -0
  88. data/lib/slack-ruby-client.rb +4 -4
  89. data/lib/slack.rb +1 -0
  90. data/lib/slack/config.rb +1 -0
  91. data/lib/slack/events/config.rb +1 -0
  92. data/lib/slack/events/request.rb +3 -1
  93. data/lib/slack/logger.rb +6 -5
  94. data/lib/slack/messages/formatting.rb +1 -0
  95. data/lib/slack/messages/message.rb +1 -4
  96. data/lib/slack/real_time/api/message.rb +3 -1
  97. data/lib/slack/real_time/api/message_id.rb +1 -0
  98. data/lib/slack/real_time/api/ping.rb +5 -2
  99. data/lib/slack/real_time/api/typing.rb +3 -1
  100. data/lib/slack/real_time/client.rb +46 -22
  101. data/lib/slack/real_time/concurrency.rb +1 -0
  102. data/lib/slack/real_time/concurrency/async.rb +18 -9
  103. data/lib/slack/real_time/concurrency/celluloid.rb +10 -4
  104. data/lib/slack/real_time/concurrency/eventmachine.rb +9 -6
  105. data/lib/slack/real_time/config.rb +6 -1
  106. data/lib/slack/real_time/models.rb +1 -0
  107. data/lib/slack/real_time/models/base.rb +1 -4
  108. data/lib/slack/real_time/models/bot.rb +1 -0
  109. data/lib/slack/real_time/models/channel.rb +1 -0
  110. data/lib/slack/real_time/models/group.rb +1 -0
  111. data/lib/slack/real_time/models/im.rb +1 -0
  112. data/lib/slack/real_time/models/team.rb +1 -0
  113. data/lib/slack/real_time/models/user.rb +1 -0
  114. data/lib/slack/real_time/socket.rb +16 -13
  115. data/lib/slack/real_time/stores.rb +1 -0
  116. data/lib/slack/real_time/stores/base.rb +4 -1
  117. data/lib/slack/real_time/stores/starter.rb +11 -0
  118. data/lib/slack/real_time/stores/store.rb +26 -25
  119. data/lib/slack/version.rb +2 -1
  120. data/lib/slack/web/api/endpoints.rb +48 -0
  121. data/lib/slack/web/api/endpoints/admin_apps.rb +42 -0
  122. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  123. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
  124. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  125. data/lib/slack/web/api/endpoints/admin_conversations.rb +30 -0
  126. data/lib/slack/web/api/endpoints/admin_conversations_restrictAccess.rb +61 -0
  127. data/lib/slack/web/api/endpoints/admin_conversations_whitelist.rb +64 -0
  128. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  129. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  130. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  131. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  132. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  133. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  134. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  135. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  136. data/lib/slack/web/api/endpoints/admin_usergroups.rb +77 -0
  137. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  138. data/lib/slack/web/api/endpoints/admin_users_session.rb +28 -0
  139. data/lib/slack/web/api/endpoints/api.rb +2 -1
  140. data/lib/slack/web/api/endpoints/apps.rb +2 -1
  141. data/lib/slack/web/api/endpoints/apps_permissions.rb +3 -2
  142. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +2 -1
  143. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +2 -1
  144. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +3 -2
  145. data/lib/slack/web/api/endpoints/auth.rb +3 -2
  146. data/lib/slack/web/api/endpoints/bots.rb +2 -1
  147. data/lib/slack/web/api/endpoints/calls.rb +83 -0
  148. data/lib/slack/web/api/endpoints/calls_participants.rb +42 -0
  149. data/lib/slack/web/api/endpoints/channels.rb +44 -29
  150. data/lib/slack/web/api/endpoints/chat.rb +38 -31
  151. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +3 -2
  152. data/lib/slack/web/api/endpoints/conversations.rb +34 -35
  153. data/lib/slack/web/api/endpoints/dialog.rb +2 -1
  154. data/lib/slack/web/api/endpoints/dnd.rb +6 -4
  155. data/lib/slack/web/api/endpoints/emoji.rb +2 -1
  156. data/lib/slack/web/api/endpoints/files.rb +11 -8
  157. data/lib/slack/web/api/endpoints/files_comments.rb +2 -1
  158. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  159. data/lib/slack/web/api/endpoints/groups.rb +33 -18
  160. data/lib/slack/web/api/endpoints/im.rb +17 -12
  161. data/lib/slack/web/api/endpoints/migration.rb +2 -1
  162. data/lib/slack/web/api/endpoints/mpim.rb +16 -11
  163. data/lib/slack/web/api/endpoints/oauth.rb +4 -6
  164. data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
  165. data/lib/slack/web/api/endpoints/pins.rb +8 -12
  166. data/lib/slack/web/api/endpoints/reactions.rb +12 -15
  167. data/lib/slack/web/api/endpoints/reminders.rb +6 -5
  168. data/lib/slack/web/api/endpoints/rtm.rb +3 -2
  169. data/lib/slack/web/api/endpoints/search.rb +4 -3
  170. data/lib/slack/web/api/endpoints/stars.rb +6 -7
  171. data/lib/slack/web/api/endpoints/team.rb +7 -5
  172. data/lib/slack/web/api/endpoints/team_profile.rb +2 -1
  173. data/lib/slack/web/api/endpoints/usergroups.rb +6 -5
  174. data/lib/slack/web/api/endpoints/usergroups_users.rb +3 -2
  175. data/lib/slack/web/api/endpoints/users.rb +11 -12
  176. data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
  177. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  178. data/lib/slack/web/api/endpoints/users_profile.rb +3 -2
  179. data/lib/slack/web/api/endpoints/views.rb +97 -0
  180. data/lib/slack/web/api/error.rb +1 -0
  181. data/lib/slack/web/api/errors.rb +656 -0
  182. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  183. data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -0
  184. data/lib/slack/web/api/mixins.rb +2 -0
  185. data/lib/slack/web/api/mixins/channels.id.rb +1 -0
  186. data/lib/slack/web/api/mixins/conversations.id.rb +27 -0
  187. data/lib/slack/web/api/mixins/groups.id.rb +1 -0
  188. data/lib/slack/web/api/mixins/ids.id.rb +1 -0
  189. data/lib/slack/web/api/mixins/users.id.rb +1 -0
  190. data/lib/slack/web/api/mixins/users.search.rb +1 -0
  191. data/lib/slack/web/api/patches/{chat.6.block-kit-support.patch → chat.1.patch} +29 -26
  192. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  193. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  194. data/lib/slack/web/api/templates/command.erb +1 -0
  195. data/lib/slack/web/api/templates/commands.erb +1 -0
  196. data/lib/slack/web/api/templates/endpoints.erb +1 -0
  197. data/lib/slack/web/api/templates/errors.erb +20 -0
  198. data/lib/slack/web/api/templates/method.erb +5 -1
  199. data/lib/slack/web/api/templates/method_spec.erb +1 -0
  200. data/lib/slack/web/client.rb +2 -1
  201. data/lib/slack/web/config.rb +1 -0
  202. data/lib/slack/web/faraday/connection.rb +24 -20
  203. data/lib/slack/web/faraday/request.rb +1 -0
  204. data/lib/slack/web/faraday/response/raise_error.rb +10 -6
  205. data/lib/slack/web/pagination/cursor.rb +3 -2
  206. data/lib/slack_ruby_client.rb +1 -0
  207. data/lib/tasks/git.rake +1 -0
  208. data/lib/tasks/real_time.rake +13 -5
  209. data/lib/tasks/update.rake +1 -0
  210. data/lib/tasks/web.rake +27 -7
  211. data/screenshots/create-app.png +0 -0
  212. data/slack-ruby-client.gemspec +6 -3
  213. data/spec/fixtures/slack/web/channels_info.yml +108 -15
  214. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  215. data/spec/integration/integration_spec.rb +26 -23
  216. data/spec/slack/config_spec.rb +2 -0
  217. data/spec/slack/events/config_spec.rb +8 -4
  218. data/spec/slack/events/request_spec.rb +67 -37
  219. data/spec/slack/messages/formatting_spec.rb +25 -13
  220. data/spec/slack/real_time/api/message_spec.rb +6 -1
  221. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  222. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  223. data/spec/slack/real_time/client_spec.rb +178 -32
  224. data/spec/slack/real_time/concurrency/celluloid_spec.rb +11 -6
  225. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +9 -1
  226. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  227. data/spec/slack/real_time/event_handlers/bot_spec.rb +2 -1
  228. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
  229. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
  230. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  231. data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
  232. data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
  233. data/spec/slack/real_time/event_handlers/user_spec.rb +1 -0
  234. data/spec/slack/real_time/rtm_connect_spec.rb +1 -0
  235. data/spec/slack/real_time/rtm_start_spec.rb +1 -0
  236. data/spec/slack/real_time/store_spec.rb +2 -1
  237. data/spec/slack/slack_spec.rb +37 -5
  238. data/spec/slack/version_spec.rb +2 -1
  239. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  240. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  241. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  242. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +8 -0
  243. data/spec/slack/web/api/endpoints/admin_conversations_restrictAccess_spec.rb +32 -0
  244. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +13 -0
  245. data/spec/slack/web/api/endpoints/admin_conversations_whitelist_spec.rb +32 -0
  246. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  247. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  248. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  249. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  250. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  251. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  252. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  253. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  254. data/spec/slack/web/api/endpoints/admin_usergroups_spec.rb +37 -0
  255. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +13 -0
  256. data/spec/slack/web/api/endpoints/admin_users_spec.rb +75 -0
  257. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  258. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +1 -0
  259. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +1 -0
  260. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +3 -2
  261. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +4 -3
  262. data/spec/slack/web/api/endpoints/apps_spec.rb +1 -0
  263. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  264. data/spec/slack/web/api/endpoints/calls_participants_spec.rb +24 -0
  265. data/spec/slack/web/api/endpoints/calls_spec.rb +31 -0
  266. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +1 -0
  267. data/spec/slack/web/api/endpoints/conversations_spec.rb +2 -1
  268. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +5 -1
  269. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +5 -3
  270. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +80 -25
  271. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
  272. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
  273. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +6 -1
  274. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  275. data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
  276. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  277. data/spec/slack/web/api/endpoints/files_comments_spec.rb +1 -0
  278. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  279. data/spec/slack/web/api/endpoints/files_spec.rb +1 -0
  280. data/spec/slack/web/api/endpoints/im_spec.rb +1 -0
  281. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  282. data/spec/slack/web/api/endpoints/mpim_spec.rb +1 -0
  283. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -11
  284. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
  285. data/spec/slack/web/api/endpoints/pins_spec.rb +5 -1
  286. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  287. data/spec/slack/web/api/endpoints/reminders_spec.rb +1 -0
  288. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  289. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  290. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  291. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  292. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  293. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  294. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +1 -0
  295. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  296. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  297. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  298. data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
  299. data/spec/slack/web/api/error_spec.rb +4 -2
  300. data/spec/slack/web/api/errors/service_unavailable_spec.rb +8 -5
  301. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -2
  302. data/spec/slack/web/api/mixins/channels_spec.rb +17 -7
  303. data/spec/slack/web/api/mixins/conversations_spec.rb +41 -0
  304. data/spec/slack/web/api/mixins/groups_spec.rb +17 -7
  305. data/spec/slack/web/api/mixins/users_spec.rb +17 -8
  306. data/spec/slack/web/api/pagination/cursor_spec.rb +40 -10
  307. data/spec/slack/web/client_spec.rb +71 -18
  308. data/spec/slack/web/faraday/response/raise_error_spec.rb +41 -7
  309. data/spec/spec_helper.rb +2 -1
  310. data/spec/support/queue_with_timeout.rb +1 -0
  311. data/spec/support/real_time/concurrency/mock.rb +1 -0
  312. data/spec/support/real_time/connected_client.rb +9 -3
  313. data/spec/support/real_time/event.rb +1 -0
  314. data/spec/support/token.rb +1 -0
  315. data/spec/support/vcr.rb +1 -0
  316. metadata +156 -30
  317. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +0 -13
  318. data/lib/slack/web/api/patches/chat.2.attachments-json.patch +0 -17
  319. data/lib/slack/web/api/patches/chat.3.update-attachments-support.patch +0 -21
  320. data/lib/slack/web/api/patches/chat.4.postEphemeral-attachments-support.patch +0 -17
  321. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +0 -13
  322. data/screenshots/register-bot.png +0 -0
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Config
@@ -44,7 +45,11 @@ module Slack
44
45
  end
45
46
  end
46
47
 
47
- raise NoConcurrencyError, 'Missing concurrency. Add async-websocket, faye-websocket or celluloid-io to your Gemfile.'
48
+ raise(
49
+ NoConcurrencyError,
50
+ 'Missing concurrency. Add async-websocket, faye-websocket ' \
51
+ 'or celluloid-io to your Gemfile.'
52
+ )
48
53
  end
49
54
  end
50
55
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require_relative 'models/base'
2
3
  require_relative 'models/user'
3
4
  require_relative 'models/bot'
@@ -1,11 +1,8 @@
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
7
  def log_built_in_message(*); end
11
8
  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,17 +1,16 @@
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
15
14
  @last_message_at = nil
16
15
  end
17
16
 
@@ -51,9 +50,9 @@ module Slack
51
50
 
52
51
  def start_sync(client)
53
52
  thread = start_async(client)
54
- thread.join if thread
53
+ thread&.join
55
54
  rescue Interrupt
56
- thread.exit if thread
55
+ thread&.exit
57
56
  end
58
57
 
59
58
  # @return [#join]
@@ -76,15 +75,19 @@ module Slack
76
75
  end
77
76
 
78
77
  def close
79
- # When you call `driver.emit(:close)`, it will typically end up calling `client.close` which will call `@socket.close` and end up back here. In order to break this infinite recursion, we check and set `@driver = nil` before invoking `client.close`.
80
- if driver = @driver
81
- @driver = nil
82
- driver.emit(:close)
83
- end
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
+
83
+ @driver = nil
84
+ driver.emit(:close)
84
85
  end
85
86
 
86
87
  protected
87
88
 
89
+ attr_reader :logger
90
+
88
91
  def addr
89
92
  URI(url).host
90
93
  end
@@ -95,9 +98,9 @@ module Slack
95
98
 
96
99
  def port
97
100
  case (uri = URI(url)).scheme
98
- when 'wss'.freeze, 'https'.freeze
101
+ when 'wss', 'https'
99
102
  URI::HTTPS::DEFAULT_PORT
100
- when 'ws', 'http'.freeze
103
+ when 'ws', 'http'
101
104
  URI::HTTP::DEFAULT_PORT
102
105
  else
103
106
  uri.port
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require_relative 'stores/base'
2
3
  require_relative 'stores/starter'
3
4
  require_relative 'stores/store'
@@ -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
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Stores
@@ -14,6 +15,16 @@ 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
+
17
28
  # A private channel was deleted.
18
29
  # @see https://api.slack.com/events/group_deleted
19
30
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_deleted.json
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
3
  module RealTime
3
4
  module Stores
@@ -26,44 +27,44 @@ module Slack
26
27
  @users = {}
27
28
  end
28
29
 
29
- if attrs.users
30
- attrs.users.each do |data|
31
- user = Models::User.new(data)
32
- @users[data.id] = @users.key?(data.id) ? @users[data.id].merge(user) : user
33
- end
30
+ attrs.users&.each do |data|
31
+ user = Models::User.new(data)
32
+ @users[data.id] = @users.key?(data.id) ? @users[data.id].merge(user) : user
34
33
  end
35
34
 
36
35
  @channels = {}
37
- if attrs.channels
38
- attrs.channels.each do |data|
39
- @channels[data.id] = Models::Channel.new(data)
40
- end
36
+ attrs.channels&.each do |data|
37
+ @channels[data.id] = Models::Channel.new(data)
41
38
  end
42
39
 
43
40
  @bots = {}
44
- if attrs.bots
45
- attrs.bots.each do |data|
46
- @bots[data.id] = Models::Bot.new(data)
47
- end
41
+ attrs.bots&.each do |data|
42
+ @bots[data.id] = Models::Bot.new(data)
48
43
  end
49
44
 
50
45
  @groups = {}
51
- if attrs.groups
52
- attrs.groups.each do |data|
53
- @groups[data.id] = Models::Group.new(data)
54
- end
46
+ attrs.groups&.each do |data|
47
+ @groups[data.id] = Models::Group.new(data)
55
48
  end
56
49
 
57
50
  @ims = {}
58
- if attrs.ims
59
- attrs.ims.each do |data|
60
- @ims[data.id] = Models::Im.new(data)
61
- end
51
+ attrs.ims&.each do |data|
52
+ @ims[data.id] = Models::Im.new(data)
62
53
  end
63
54
  end
64
55
 
65
56
  ### RealTime Events
66
57
 
58
+ # An enterprise grid migration has started on an external workspace..
59
+ # @see https://api.slack.com/events/external_org_migration_started
60
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_started.json
61
+ # on :external_org_migration_started do |data|
62
+
63
+ # An enterprise grid migration has finished on an external workspace..
64
+ # @see https://api.slack.com/events/external_org_migration_finished
65
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/external_org_migration_finished.json
66
+ # on :external_org_migration_finished do |data|
67
+
67
68
  # A private channel was deleted.
68
69
  # @see https://api.slack.com/events/group_deleted
69
70
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_deleted.json
@@ -151,7 +152,7 @@ module Slack
151
152
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/bot_changed.json
152
153
  on :bot_changed do |data|
153
154
  bot = bots[data.bot.id]
154
- bot.merge!(data.bot) if bot
155
+ bot&.merge!(data.bot)
155
156
  end
156
157
 
157
158
  # A team channel was archived.
@@ -333,7 +334,7 @@ module Slack
333
334
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/group_left.json
334
335
  on :group_left do |data|
335
336
  channel = groups[data.channel]
336
- channel.members.delete(self.self.id) if channel && channel.key?(:members)
337
+ channel.members.delete(self.self.id) if channel&.key?(:members)
337
338
  end
338
339
 
339
340
  # A private group read marker was updated.
@@ -368,7 +369,7 @@ module Slack
368
369
  # @see https://api.slack.com/events/im_close
369
370
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_close.json
370
371
  on :im_close do |data|
371
- return unless ims && ims.key?(data.channel)
372
+ return unless ims&.key?(data.channel)
372
373
 
373
374
  ims[data.channel].is_open = false
374
375
  end
@@ -394,7 +395,7 @@ module Slack
394
395
  # @see https://api.slack.com/events/im_open
395
396
  # @see https://github.com/slack-ruby/slack-api-ref/blob/master/events/im_open.json
396
397
  on :im_open do |data|
397
- return unless ims && ims.key?(data.channel)
398
+ return unless ims&.key?(data.channel)
398
399
 
399
400
  ims[data.channel].is_open = true
400
401
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Slack
2
- VERSION = '0.14.2'.freeze
3
+ VERSION = '0.15.0'
3
4
  end
@@ -1,5 +1,24 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
4
+ require_relative 'endpoints/admin_apps'
5
+ require_relative 'endpoints/admin_apps_approved'
6
+ require_relative 'endpoints/admin_apps_requests'
7
+ require_relative 'endpoints/admin_apps_restricted'
8
+ require_relative 'endpoints/admin_conversations'
9
+ require_relative 'endpoints/admin_conversations_restrictAccess'
10
+ require_relative 'endpoints/admin_conversations_whitelist'
11
+ require_relative 'endpoints/admin_emoji'
12
+ require_relative 'endpoints/admin_inviteRequests'
13
+ require_relative 'endpoints/admin_inviteRequests_approved'
14
+ require_relative 'endpoints/admin_inviteRequests_denied'
15
+ require_relative 'endpoints/admin_teams'
16
+ require_relative 'endpoints/admin_teams_admins'
17
+ require_relative 'endpoints/admin_teams_owners'
18
+ require_relative 'endpoints/admin_teams_settings'
19
+ require_relative 'endpoints/admin_usergroups'
20
+ require_relative 'endpoints/admin_users'
21
+ require_relative 'endpoints/admin_users_session'
3
22
  require_relative 'endpoints/api'
4
23
  require_relative 'endpoints/apps'
5
24
  require_relative 'endpoints/apps_permissions'
@@ -8,6 +27,8 @@ require_relative 'endpoints/apps_permissions_scopes'
8
27
  require_relative 'endpoints/apps_permissions_users'
9
28
  require_relative 'endpoints/auth'
10
29
  require_relative 'endpoints/bots'
30
+ require_relative 'endpoints/calls'
31
+ require_relative 'endpoints/calls_participants'
11
32
  require_relative 'endpoints/channels'
12
33
  require_relative 'endpoints/chat'
13
34
  require_relative 'endpoints/chat_scheduledMessages'
@@ -17,11 +38,13 @@ require_relative 'endpoints/dnd'
17
38
  require_relative 'endpoints/emoji'
18
39
  require_relative 'endpoints/files'
19
40
  require_relative 'endpoints/files_comments'
41
+ require_relative 'endpoints/files_remote'
20
42
  require_relative 'endpoints/groups'
21
43
  require_relative 'endpoints/im'
22
44
  require_relative 'endpoints/migration'
23
45
  require_relative 'endpoints/mpim'
24
46
  require_relative 'endpoints/oauth'
47
+ require_relative 'endpoints/oauth_v2'
25
48
  require_relative 'endpoints/pins'
26
49
  require_relative 'endpoints/reactions'
27
50
  require_relative 'endpoints/reminders'
@@ -36,15 +59,35 @@ require_relative 'endpoints/users'
36
59
  require_relative 'endpoints/users_admin'
37
60
  require_relative 'endpoints/users_prefs'
38
61
  require_relative 'endpoints/users_profile'
62
+ require_relative 'endpoints/views'
39
63
 
40
64
  module Slack
41
65
  module Web
42
66
  module Api
43
67
  module Endpoints
68
+ include Slack::Web::Api::Mixins::Conversations
44
69
  include Slack::Web::Api::Mixins::Channels
45
70
  include Slack::Web::Api::Mixins::Users
46
71
  include Slack::Web::Api::Mixins::Groups
47
72
 
73
+ include AdminApps
74
+ include AdminAppsApproved
75
+ include AdminAppsRequests
76
+ include AdminAppsRestricted
77
+ include AdminConversations
78
+ include AdminConversationsRestrictaccess
79
+ include AdminConversationsWhitelist
80
+ include AdminEmoji
81
+ include AdminInviterequests
82
+ include AdminInviterequestsApproved
83
+ include AdminInviterequestsDenied
84
+ include AdminTeams
85
+ include AdminTeamsAdmins
86
+ include AdminTeamsOwners
87
+ include AdminTeamsSettings
88
+ include AdminUsergroups
89
+ include AdminUsers
90
+ include AdminUsersSession
48
91
  include Api
49
92
  include Apps
50
93
  include AppsPermissions
@@ -53,6 +96,8 @@ module Slack
53
96
  include AppsPermissionsUsers
54
97
  include Auth
55
98
  include Bots
99
+ include Calls
100
+ include CallsParticipants
56
101
  include Channels
57
102
  include Chat
58
103
  include ChatScheduledmessages
@@ -62,11 +107,13 @@ module Slack
62
107
  include Emoji
63
108
  include Files
64
109
  include FilesComments
110
+ include FilesRemote
65
111
  include Groups
66
112
  include Im
67
113
  include Migration
68
114
  include Mpim
69
115
  include Oauth
116
+ include OauthV2
70
117
  include Pins
71
118
  include Reactions
72
119
  include Reminders
@@ -81,6 +128,7 @@ module Slack
81
128
  include UsersAdmin
82
129
  include UsersPrefs
83
130
  include UsersProfile
131
+ include Views
84
132
  end
85
133
  end
86
134
  end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ module Slack
5
+ module Web
6
+ module Api
7
+ module Endpoints
8
+ module AdminApps
9
+ #
10
+ # Approve an app for installation on a workspace.
11
+ #
12
+ # @option options [Object] :app_id
13
+ # The id of the app to approve.
14
+ # @option options [Object] :request_id
15
+ # The id of the request to approve.
16
+ # @option options [Object] :team_id
17
+ # .
18
+ # @see https://api.slack.com/methods/admin.apps.approve
19
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.approve.json
20
+ def admin_apps_approve(options = {})
21
+ post('admin.apps.approve', options)
22
+ end
23
+
24
+ #
25
+ # Restrict an app for installation on a workspace.
26
+ #
27
+ # @option options [Object] :app_id
28
+ # The id of the app to restrict.
29
+ # @option options [Object] :request_id
30
+ # The id of the request to restrict.
31
+ # @option options [Object] :team_id
32
+ # .
33
+ # @see https://api.slack.com/methods/admin.apps.restrict
34
+ # @see https://github.com/slack-ruby/slack-api-ref/blob/master/methods/admin.apps/admin.apps.restrict.json
35
+ def admin_apps_restrict(options = {})
36
+ post('admin.apps.restrict', options)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end