slack-ruby-client 0.12.0 → 0.14.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (301) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +21 -9
  4. data/.rubocop_todo.yml +64 -56
  5. data/.travis.yml +5 -3
  6. data/CHANGELOG.md +90 -32
  7. data/Dangerfile +2 -0
  8. data/Gemfile +10 -4
  9. data/LICENSE.md +1 -1
  10. data/README.md +176 -32
  11. data/Rakefile +2 -1
  12. data/UPGRADING.md +27 -1
  13. data/bin/commands.rb +21 -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_emoji.rb +54 -0
  20. data/bin/commands/admin_inviteRequests.rb +36 -0
  21. data/bin/commands/admin_inviteRequests_approved.rb +16 -0
  22. data/bin/commands/admin_inviteRequests_denied.rb +16 -0
  23. data/bin/commands/admin_teams.rb +27 -0
  24. data/bin/commands/admin_teams_admins.rb +16 -0
  25. data/bin/commands/admin_teams_owners.rb +16 -0
  26. data/bin/commands/admin_teams_settings.rb +64 -0
  27. data/bin/commands/admin_users.rb +97 -0
  28. data/bin/commands/admin_users_session.rb +16 -0
  29. data/bin/commands/api.rb +1 -0
  30. data/bin/commands/apps.rb +15 -0
  31. data/bin/commands/apps_permissions.rb +1 -0
  32. data/bin/commands/apps_permissions_resources.rb +1 -0
  33. data/bin/commands/apps_permissions_scopes.rb +1 -0
  34. data/bin/commands/apps_permissions_users.rb +1 -0
  35. data/bin/commands/auth.rb +1 -0
  36. data/bin/commands/bots.rb +1 -0
  37. data/bin/commands/channels.rb +3 -1
  38. data/bin/commands/chat.rb +48 -9
  39. data/bin/commands/chat_scheduledMessages.rb +18 -0
  40. data/bin/commands/conversations.rb +4 -2
  41. data/bin/commands/dialog.rb +1 -0
  42. data/bin/commands/dnd.rb +4 -3
  43. data/bin/commands/emoji.rb +1 -0
  44. data/bin/commands/files.rb +4 -14
  45. data/bin/commands/files_comments.rb +1 -21
  46. data/bin/commands/files_remote.rb +78 -0
  47. data/bin/commands/groups.rb +2 -1
  48. data/bin/commands/im.rb +2 -1
  49. data/bin/commands/migration.rb +1 -0
  50. data/bin/commands/mpim.rb +2 -1
  51. data/bin/commands/oauth.rb +2 -1
  52. data/bin/commands/oauth_v2.rb +17 -0
  53. data/bin/commands/pins.rb +1 -2
  54. data/bin/commands/reactions.rb +2 -3
  55. data/bin/commands/reminders.rb +1 -0
  56. data/bin/commands/rtm.rb +1 -0
  57. data/bin/commands/search.rb +2 -1
  58. data/bin/commands/stars.rb +1 -0
  59. data/bin/commands/team.rb +2 -0
  60. data/bin/commands/team_profile.rb +1 -0
  61. data/bin/commands/usergroups.rb +2 -1
  62. data/bin/commands/usergroups_users.rb +1 -0
  63. data/bin/commands/users.rb +2 -2
  64. data/bin/commands/users_admin.rb +1 -0
  65. data/bin/commands/users_prefs.rb +1 -0
  66. data/bin/commands/users_profile.rb +1 -0
  67. data/bin/commands/views.rb +48 -0
  68. data/bin/slack +2 -3
  69. data/examples/hi_real_time/Gemfile +1 -0
  70. data/examples/hi_real_time/hi.rb +7 -3
  71. data/examples/hi_real_time_and_web/Gemfile +1 -0
  72. data/examples/hi_real_time_and_web/hi.rb +7 -3
  73. data/examples/hi_real_time_async_async/Gemfile +7 -0
  74. data/examples/hi_real_time_async_async/Procfile +2 -0
  75. data/examples/hi_real_time_async_async/hi.rb +41 -0
  76. data/examples/hi_real_time_async_celluloid/Gemfile +1 -0
  77. data/examples/hi_real_time_async_celluloid/hi.rb +7 -3
  78. data/examples/hi_real_time_async_eventmachine/Gemfile +1 -0
  79. data/examples/hi_real_time_async_eventmachine/hi.rb +7 -3
  80. data/examples/hi_web/Gemfile +1 -0
  81. data/examples/hi_web/hi.rb +1 -0
  82. data/examples/new_ticket/Gemfile +1 -0
  83. data/examples/new_ticket/new_ticket.rb +1 -0
  84. data/lib/slack-ruby-client.rb +8 -2
  85. data/lib/slack.rb +1 -0
  86. data/lib/slack/config.rb +1 -0
  87. data/lib/slack/events/config.rb +32 -0
  88. data/lib/slack/events/request.rb +66 -0
  89. data/lib/slack/logger.rb +6 -5
  90. data/lib/slack/messages/formatting.rb +1 -0
  91. data/lib/slack/messages/message.rb +1 -0
  92. data/lib/slack/real_time/api/message.rb +3 -1
  93. data/lib/slack/real_time/api/message_id.rb +1 -0
  94. data/lib/slack/real_time/api/ping.rb +5 -2
  95. data/lib/slack/real_time/api/typing.rb +3 -1
  96. data/lib/slack/real_time/client.rb +97 -28
  97. data/lib/slack/real_time/concurrency.rb +2 -0
  98. data/lib/slack/real_time/concurrency/async.rb +142 -0
  99. data/lib/slack/real_time/concurrency/celluloid.rb +33 -9
  100. data/lib/slack/real_time/concurrency/eventmachine.rb +32 -7
  101. data/lib/slack/real_time/config.rb +7 -2
  102. data/lib/slack/real_time/models.rb +1 -0
  103. data/lib/slack/real_time/models/base.rb +1 -0
  104. data/lib/slack/real_time/models/bot.rb +1 -0
  105. data/lib/slack/real_time/models/channel.rb +1 -0
  106. data/lib/slack/real_time/models/group.rb +1 -0
  107. data/lib/slack/real_time/models/im.rb +1 -0
  108. data/lib/slack/real_time/models/team.rb +1 -0
  109. data/lib/slack/real_time/models/user.rb +1 -0
  110. data/lib/slack/real_time/socket.rb +42 -13
  111. data/lib/slack/real_time/stores.rb +1 -0
  112. data/lib/slack/real_time/stores/base.rb +1 -0
  113. data/lib/slack/real_time/stores/starter.rb +11 -0
  114. data/lib/slack/real_time/stores/store.rb +28 -25
  115. data/lib/slack/version.rb +2 -1
  116. data/lib/slack/web/api/endpoints.rb +41 -0
  117. data/lib/slack/web/api/endpoints/admin_apps.rb +42 -0
  118. data/lib/slack/web/api/endpoints/admin_apps_approved.rb +35 -0
  119. data/lib/slack/web/api/endpoints/admin_apps_requests.rb +33 -0
  120. data/lib/slack/web/api/endpoints/admin_apps_restricted.rb +35 -0
  121. data/lib/slack/web/api/endpoints/admin_conversations.rb +30 -0
  122. data/lib/slack/web/api/endpoints/admin_emoji.rb +88 -0
  123. data/lib/slack/web/api/endpoints/admin_inviteRequests.rb +61 -0
  124. data/lib/slack/web/api/endpoints/admin_inviteRequests_approved.rb +33 -0
  125. data/lib/slack/web/api/endpoints/admin_inviteRequests_denied.rb +33 -0
  126. data/lib/slack/web/api/endpoints/admin_teams.rb +50 -0
  127. data/lib/slack/web/api/endpoints/admin_teams_admins.rb +34 -0
  128. data/lib/slack/web/api/endpoints/admin_teams_owners.rb +34 -0
  129. data/lib/slack/web/api/endpoints/admin_teams_settings.rb +99 -0
  130. data/lib/slack/web/api/endpoints/admin_users.rb +163 -0
  131. data/lib/slack/web/api/endpoints/admin_users_session.rb +28 -0
  132. data/lib/slack/web/api/endpoints/api.rb +1 -0
  133. data/lib/slack/web/api/endpoints/apps.rb +27 -0
  134. data/lib/slack/web/api/endpoints/apps_permissions.rb +1 -0
  135. data/lib/slack/web/api/endpoints/apps_permissions_resources.rb +1 -0
  136. data/lib/slack/web/api/endpoints/apps_permissions_scopes.rb +1 -0
  137. data/lib/slack/web/api/endpoints/apps_permissions_users.rb +1 -0
  138. data/lib/slack/web/api/endpoints/auth.rb +1 -0
  139. data/lib/slack/web/api/endpoints/bots.rb +1 -0
  140. data/lib/slack/web/api/endpoints/channels.rb +3 -0
  141. data/lib/slack/web/api/endpoints/chat.rb +99 -12
  142. data/lib/slack/web/api/endpoints/chat_scheduledMessages.rb +38 -0
  143. data/lib/slack/web/api/endpoints/conversations.rb +4 -1
  144. data/lib/slack/web/api/endpoints/dialog.rb +1 -0
  145. data/lib/slack/web/api/endpoints/dnd.rb +3 -1
  146. data/lib/slack/web/api/endpoints/emoji.rb +1 -0
  147. data/lib/slack/web/api/endpoints/files.rb +4 -13
  148. data/lib/slack/web/api/endpoints/files_comments.rb +1 -33
  149. data/lib/slack/web/api/endpoints/files_remote.rb +127 -0
  150. data/lib/slack/web/api/endpoints/groups.rb +1 -0
  151. data/lib/slack/web/api/endpoints/im.rb +1 -0
  152. data/lib/slack/web/api/endpoints/migration.rb +1 -0
  153. data/lib/slack/web/api/endpoints/mpim.rb +1 -0
  154. data/lib/slack/web/api/endpoints/oauth.rb +2 -1
  155. data/lib/slack/web/api/endpoints/oauth_v2.rb +30 -0
  156. data/lib/slack/web/api/endpoints/pins.rb +2 -4
  157. data/lib/slack/web/api/endpoints/reactions.rb +5 -6
  158. data/lib/slack/web/api/endpoints/reminders.rb +1 -0
  159. data/lib/slack/web/api/endpoints/rtm.rb +1 -0
  160. data/lib/slack/web/api/endpoints/search.rb +1 -0
  161. data/lib/slack/web/api/endpoints/stars.rb +1 -0
  162. data/lib/slack/web/api/endpoints/team.rb +3 -0
  163. data/lib/slack/web/api/endpoints/team_profile.rb +1 -0
  164. data/lib/slack/web/api/endpoints/usergroups.rb +1 -0
  165. data/lib/slack/web/api/endpoints/usergroups_users.rb +1 -0
  166. data/lib/slack/web/api/endpoints/users.rb +1 -2
  167. data/lib/slack/web/api/endpoints/users_admin.rb +1 -0
  168. data/lib/slack/web/api/endpoints/users_prefs.rb +1 -0
  169. data/lib/slack/web/api/endpoints/users_profile.rb +1 -0
  170. data/lib/slack/web/api/endpoints/views.rb +97 -0
  171. data/lib/slack/web/api/error.rb +1 -0
  172. data/lib/slack/web/api/errors.rb +566 -0
  173. data/lib/slack/web/api/errors/slack_error.rb +14 -1
  174. data/lib/slack/web/api/errors/too_many_requests_error.rb +1 -0
  175. data/lib/slack/web/api/mixins.rb +1 -0
  176. data/lib/slack/web/api/mixins/channels.id.rb +1 -0
  177. data/lib/slack/web/api/mixins/groups.id.rb +1 -0
  178. data/lib/slack/web/api/mixins/ids.id.rb +4 -1
  179. data/lib/slack/web/api/mixins/users.id.rb +1 -0
  180. data/lib/slack/web/api/mixins/users.search.rb +1 -0
  181. data/lib/slack/web/api/patches/chat.5.postEphemeral-text-or-attachments.patch +5 -3
  182. data/lib/slack/web/api/patches/chat.6.block-kit-support.patch +69 -0
  183. data/lib/slack/web/api/patches/views.1.view-json.patch +40 -0
  184. data/lib/slack/web/api/patches/views.1.views-published.patch +16 -0
  185. data/lib/slack/web/api/templates/command.erb +1 -0
  186. data/lib/slack/web/api/templates/commands.erb +1 -0
  187. data/lib/slack/web/api/templates/endpoints.erb +1 -0
  188. data/lib/slack/web/api/templates/errors.erb +20 -0
  189. data/lib/slack/web/api/templates/method.erb +1 -0
  190. data/lib/slack/web/api/templates/method_spec.erb +1 -0
  191. data/lib/slack/web/client.rb +2 -1
  192. data/lib/slack/web/config.rb +1 -0
  193. data/lib/slack/web/faraday/connection.rb +1 -0
  194. data/lib/slack/web/faraday/request.rb +1 -0
  195. data/lib/slack/web/faraday/response/raise_error.rb +10 -6
  196. data/lib/slack/web/pagination/cursor.rb +4 -0
  197. data/lib/slack_ruby_client.rb +1 -0
  198. data/lib/tasks/git.rake +1 -0
  199. data/lib/tasks/real_time.rake +15 -5
  200. data/lib/tasks/update.rake +1 -0
  201. data/lib/tasks/web.rake +28 -7
  202. data/screenshots/create-app.png +0 -0
  203. data/slack-ruby-client.gemspec +6 -2
  204. data/spec/fixtures/slack/web/views_open_error.yml +76 -0
  205. data/spec/integration/integration_spec.rb +116 -48
  206. data/spec/slack/config_spec.rb +2 -0
  207. data/spec/slack/events/config_spec.rb +33 -0
  208. data/spec/slack/events/request_spec.rb +179 -0
  209. data/spec/slack/messages/formatting_spec.rb +25 -13
  210. data/spec/slack/real_time/api/message_spec.rb +6 -1
  211. data/spec/slack/real_time/api/ping_spec.rb +2 -0
  212. data/spec/slack/real_time/api/typing_spec.rb +5 -1
  213. data/spec/slack/real_time/client_spec.rb +212 -31
  214. data/spec/slack/real_time/concurrency/celluloid_spec.rb +15 -5
  215. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +11 -1
  216. data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +2 -0
  217. data/spec/slack/real_time/event_handlers/bot_spec.rb +2 -1
  218. data/spec/slack/real_time/event_handlers/channel_spec.rb +9 -6
  219. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +2 -1
  220. data/spec/slack/real_time/event_handlers/group_spec.rb +5 -4
  221. data/spec/slack/real_time/event_handlers/im_spec.rb +4 -3
  222. data/spec/slack/real_time/event_handlers/team_spec.rb +3 -1
  223. data/spec/slack/real_time/event_handlers/user_spec.rb +1 -0
  224. data/spec/slack/real_time/rtm_connect_spec.rb +1 -0
  225. data/spec/slack/real_time/rtm_start_spec.rb +1 -0
  226. data/spec/slack/real_time/store_spec.rb +2 -1
  227. data/spec/slack/slack_spec.rb +37 -5
  228. data/spec/slack/version_spec.rb +2 -1
  229. data/spec/slack/web/api/endpoints/admin_apps_approved_spec.rb +8 -0
  230. data/spec/slack/web/api/endpoints/admin_apps_requests_spec.rb +8 -0
  231. data/spec/slack/web/api/endpoints/admin_apps_restricted_spec.rb +8 -0
  232. data/spec/slack/web/api/endpoints/admin_apps_spec.rb +8 -0
  233. data/spec/slack/web/api/endpoints/admin_conversations_spec.rb +13 -0
  234. data/spec/slack/web/api/endpoints/admin_emoji_spec.rb +37 -0
  235. data/spec/slack/web/api/endpoints/admin_inviteRequests_approved_spec.rb +8 -0
  236. data/spec/slack/web/api/endpoints/admin_inviteRequests_denied_spec.rb +8 -0
  237. data/spec/slack/web/api/endpoints/admin_inviteRequests_spec.rb +18 -0
  238. data/spec/slack/web/api/endpoints/admin_teams_admins_spec.rb +13 -0
  239. data/spec/slack/web/api/endpoints/admin_teams_owners_spec.rb +13 -0
  240. data/spec/slack/web/api/endpoints/admin_teams_settings_spec.rb +53 -0
  241. data/spec/slack/web/api/endpoints/admin_teams_spec.rb +16 -0
  242. data/spec/slack/web/api/endpoints/admin_users_session_spec.rb +13 -0
  243. data/spec/slack/web/api/endpoints/admin_users_spec.rb +75 -0
  244. data/spec/slack/web/api/endpoints/api_spec.rb +1 -0
  245. data/spec/slack/web/api/endpoints/apps_permissions_resources_spec.rb +1 -0
  246. data/spec/slack/web/api/endpoints/apps_permissions_scopes_spec.rb +1 -0
  247. data/spec/slack/web/api/endpoints/apps_permissions_spec.rb +3 -2
  248. data/spec/slack/web/api/endpoints/apps_permissions_users_spec.rb +4 -3
  249. data/spec/slack/web/api/endpoints/apps_spec.rb +16 -0
  250. data/spec/slack/web/api/endpoints/bots_spec.rb +1 -0
  251. data/spec/slack/web/api/endpoints/chat_scheduledMessages_spec.rb +8 -0
  252. data/spec/slack/web/api/endpoints/conversations_spec.rb +2 -1
  253. data/spec/slack/web/api/endpoints/custom_specs/auth_spec.rb +5 -1
  254. data/spec/slack/web/api/endpoints/custom_specs/channels_spec.rb +2 -0
  255. data/spec/slack/web/api/endpoints/custom_specs/chat_spec.rb +112 -36
  256. data/spec/slack/web/api/endpoints/custom_specs/dialog_spec.rb +12 -4
  257. data/spec/slack/web/api/endpoints/custom_specs/groups_spec.rb +2 -0
  258. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +6 -1
  259. data/spec/slack/web/api/endpoints/custom_specs/views_spec.rb +95 -0
  260. data/spec/slack/web/api/endpoints/dnd_spec.rb +6 -0
  261. data/spec/slack/web/api/endpoints/emoji_spec.rb +1 -0
  262. data/spec/slack/web/api/endpoints/files_comments_spec.rb +1 -19
  263. data/spec/slack/web/api/endpoints/files_remote_spec.rb +24 -0
  264. data/spec/slack/web/api/endpoints/files_spec.rb +1 -0
  265. data/spec/slack/web/api/endpoints/im_spec.rb +1 -0
  266. data/spec/slack/web/api/endpoints/migration_spec.rb +1 -0
  267. data/spec/slack/web/api/endpoints/mpim_spec.rb +1 -0
  268. data/spec/slack/web/api/endpoints/oauth_spec.rb +1 -0
  269. data/spec/slack/web/api/endpoints/oauth_v2_spec.rb +13 -0
  270. data/spec/slack/web/api/endpoints/pins_spec.rb +5 -1
  271. data/spec/slack/web/api/endpoints/reactions_spec.rb +8 -1
  272. data/spec/slack/web/api/endpoints/reminders_spec.rb +1 -0
  273. data/spec/slack/web/api/endpoints/rtm_spec.rb +1 -0
  274. data/spec/slack/web/api/endpoints/search_spec.rb +1 -0
  275. data/spec/slack/web/api/endpoints/stars_spec.rb +1 -0
  276. data/spec/slack/web/api/endpoints/team_profile_spec.rb +1 -0
  277. data/spec/slack/web/api/endpoints/team_spec.rb +1 -0
  278. data/spec/slack/web/api/endpoints/usergroups_spec.rb +1 -0
  279. data/spec/slack/web/api/endpoints/usergroups_users_spec.rb +1 -0
  280. data/spec/slack/web/api/endpoints/users_admin_spec.rb +1 -0
  281. data/spec/slack/web/api/endpoints/users_prefs_spec.rb +1 -0
  282. data/spec/slack/web/api/endpoints/users_profile_spec.rb +1 -0
  283. data/spec/slack/web/api/endpoints/views_spec.rb +29 -0
  284. data/spec/slack/web/api/error_spec.rb +4 -2
  285. data/spec/slack/web/api/errors/service_unavailable_spec.rb +6 -3
  286. data/spec/slack/web/api/errors/slack_error_spec.rb +26 -2
  287. data/spec/slack/web/api/mixins/channels_spec.rb +17 -7
  288. data/spec/slack/web/api/mixins/groups_spec.rb +17 -7
  289. data/spec/slack/web/api/mixins/users_spec.rb +17 -8
  290. data/spec/slack/web/api/pagination/cursor_spec.rb +40 -10
  291. data/spec/slack/web/client_spec.rb +45 -18
  292. data/spec/slack/web/faraday/response/raise_error_spec.rb +41 -7
  293. data/spec/spec_helper.rb +8 -1
  294. data/spec/support/queue_with_timeout.rb +5 -4
  295. data/spec/support/real_time/concurrency/mock.rb +1 -0
  296. data/spec/support/real_time/connected_client.rb +9 -3
  297. data/spec/support/real_time/event.rb +1 -0
  298. data/spec/support/token.rb +1 -0
  299. data/spec/support/vcr.rb +1 -0
  300. metadata +149 -9
  301. data/screenshots/register-bot.png +0 -0
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
- desc 'Get info on your multiparty direct messages.'
4
+ desc 'Mpim methods.'
4
5
  command 'mpim' do |g|
5
6
  g.desc 'Closes a multiparty direct message channel.'
6
7
  g.long_desc %( Closes a multiparty direct message channel. )
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Oauth methods.'
@@ -9,7 +10,7 @@ command 'oauth' do |g|
9
10
  c.flag 'client_secret', desc: 'Issued when you created your application.'
10
11
  c.flag 'code', desc: 'The code param returned via the OAuth callback.'
11
12
  c.flag 'redirect_uri', desc: 'This must match the originally submitted URI (if one was sent).'
12
- c.flag 'single_channel', desc: 'Request the user to add your app only to a single channel.'
13
+ c.flag 'single_channel', desc: 'Request the user to add your app only to a single channel. Only valid with a legacy workspace app.'
13
14
  c.action do |_global_options, options, _args|
14
15
  puts JSON.dump($client.oauth_access(options))
15
16
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'OauthV2 methods.'
5
+ command 'oauth_v2' do |g|
6
+ g.desc 'Exchanges a temporary OAuth verifier code for an access token.'
7
+ g.long_desc %( Exchanges a temporary OAuth verifier code for an access token. )
8
+ g.command 'access' do |c|
9
+ c.flag 'code', desc: 'The code param returned via the OAuth callback.'
10
+ c.flag 'client_id', desc: 'Issued when you created your application.'
11
+ c.flag 'client_secret', desc: 'Issued when you created your application.'
12
+ c.flag 'redirect_uri', desc: 'This must match the originally submitted URI (if one was sent).'
13
+ c.action do |_global_options, options, _args|
14
+ puts JSON.dump($client.oauth_v2_access(options))
15
+ end
16
+ end
17
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Pins methods.'
@@ -6,8 +7,6 @@ command 'pins' do |g|
6
7
  g.long_desc %( Pins an item to a channel. )
7
8
  g.command 'add' do |c|
8
9
  c.flag 'channel', desc: 'Channel to pin the item in.'
9
- c.flag 'file', desc: 'File to pin.'
10
- c.flag 'file_comment', desc: 'File comment to pin.'
11
10
  c.flag 'timestamp', desc: 'Timestamp of the message to pin.'
12
11
  c.action do |_global_options, options, _args|
13
12
  puts JSON.dump($client.pins_add(options))
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Reactions methods.'
@@ -5,10 +6,8 @@ command 'reactions' do |g|
5
6
  g.desc 'Adds a reaction to an item.'
6
7
  g.long_desc %( Adds a reaction to an item. )
7
8
  g.command 'add' do |c|
8
- c.flag 'name', desc: 'Reaction (emoji) name.'
9
9
  c.flag 'channel', desc: 'Channel where the message to add reaction to was posted.'
10
- c.flag 'file', desc: 'File to add reaction to.'
11
- c.flag 'file_comment', desc: 'File comment to add reaction to.'
10
+ c.flag 'name', desc: 'Reaction (emoji) name.'
12
11
  c.flag 'timestamp', desc: 'Timestamp of the message to add reaction to.'
13
12
  c.action do |_global_options, options, _args|
14
13
  puts JSON.dump($client.reactions_add(options))
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Reminders methods.'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Rtm methods.'
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
- desc "Search your team's files and messages."
4
+ desc 'Search methods.'
4
5
  command 'search' do |g|
5
6
  g.desc 'Searches for messages and files matching a query.'
6
7
  g.long_desc %( Searches for messages and files matching a query. )
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Stars methods.'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'Team methods.'
@@ -23,6 +24,7 @@ command 'team' do |g|
23
24
  g.desc 'Gets information about the current team.'
24
25
  g.long_desc %( Gets information about the current team. )
25
26
  g.command 'info' do |c|
27
+ c.flag 'team', desc: 'Team to get info on, if omitted, will return information about the current team. Will only return team that the authenticated token is allowed to see through external shared channels.'
26
28
  c.action do |_global_options, options, _args|
27
29
  puts JSON.dump($client.team_info(options))
28
30
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'TeamProfile methods.'
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
- desc "Get info on your team's User Groups."
4
+ desc 'Usergroups methods.'
4
5
  command 'usergroups' do |g|
5
6
  g.desc 'Create a User Group'
6
7
  g.long_desc %( Create a User Group )
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'UsergroupsUsers methods.'
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
- desc 'Get info on members of your Slack team.'
4
+ desc 'Users methods.'
4
5
  command 'users' do |g|
5
6
  g.desc 'List conversations the calling user may access.'
6
7
  g.long_desc %( List conversations the calling user may access. )
@@ -65,7 +66,6 @@ command 'users' do |g|
65
66
  c.flag 'cursor', desc: "Paginate through collections of data by setting the cursor parameter to a next_cursor attribute returned by a previous request's response_metadata. Default value fetches the first 'page' of the collection. See pagination for more detail."
66
67
  c.flag 'include_locale', desc: 'Set this to true to receive the locale for users. Defaults to false.'
67
68
  c.flag 'limit', desc: "The maximum number of items to return. Fewer than the requested number of items may be returned, even if the end of the users list hasn't been reached."
68
- c.flag 'presence', desc: 'Deprecated. Whether to include presence data in the output. Defaults to false. Setting this to true reduces performance, especially with large teams.'
69
69
  c.action do |_global_options, options, _args|
70
70
  puts JSON.dump($client.users_list(options))
71
71
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'UsersAdmin methods.'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'UsersPrefs methods.'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # This file was auto-generated by lib/tasks/web.rake
2
3
 
3
4
  desc 'UsersProfile methods.'
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+ # This file was auto-generated by lib/tasks/web.rake
3
+
4
+ desc 'Views methods.'
5
+ command 'views' do |g|
6
+ g.desc 'Open a view for a user.'
7
+ g.long_desc %( Open a view for a user. )
8
+ g.command 'open' do |c|
9
+ c.flag 'trigger_id', desc: 'Exchange a trigger to post to the user.'
10
+ c.flag 'view', desc: 'A view payload. This must be a JSON-encoded string.'
11
+ c.action do |_global_options, options, _args|
12
+ puts JSON.dump($client.views_open(options))
13
+ end
14
+ end
15
+
16
+ g.desc 'Publish a static view for a User.'
17
+ g.long_desc %( Publish a static view for a User. )
18
+ g.command 'publish' do |c|
19
+ c.flag 'user_id', desc: 'id of the user you want publish a view to.'
20
+ c.flag 'view', desc: 'A view payload. This must be a JSON-encoded string.'
21
+ c.flag 'hash', desc: 'A string that represents view state to protect against possible race conditions.'
22
+ c.action do |_global_options, options, _args|
23
+ puts JSON.dump($client.views_publish(options))
24
+ end
25
+ end
26
+
27
+ g.desc 'Push a view onto the stack of a root view.'
28
+ g.long_desc %( Push a view onto the stack of a root view. )
29
+ g.command 'push' do |c|
30
+ c.flag 'trigger_id', desc: 'Exchange a trigger to post to the user.'
31
+ c.flag 'view', desc: 'A view payload. This must be a JSON-encoded string.'
32
+ c.action do |_global_options, options, _args|
33
+ puts JSON.dump($client.views_push(options))
34
+ end
35
+ end
36
+
37
+ g.desc 'Update an existing view.'
38
+ g.long_desc %( Update an existing view. )
39
+ g.command 'update' do |c|
40
+ c.flag 'view', desc: 'A view payload This must be a JSON-encoded string.'
41
+ c.flag 'external_id', desc: 'A unique identifier of the view set by the developer. Must be unique for all views on a team. Max length of 255 characters. Either view_id or external_id is required.'
42
+ c.flag 'hash', desc: 'A string that represents view state to protect against possible race conditions.'
43
+ c.flag 'view_id', desc: 'A unique identifier of the view to be updated. Either view_id or external_id is required.'
44
+ c.action do |_global_options, options, _args|
45
+ puts JSON.dump($client.views_update(options))
46
+ end
47
+ end
48
+ end
data/bin/slack CHANGED
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
-
3
2
  require 'gli'
4
- require 'slack-ruby-client'
3
+ require 'slack_ruby_client'
5
4
 
6
5
  include GLI::App
7
6
 
@@ -46,7 +45,7 @@ pre do |global_options, _command, options, _args|
46
45
  true
47
46
  end
48
47
 
49
- $LOAD_PATH.push File.expand_path('..', __FILE__)
48
+ $LOAD_PATH.push File.expand_path(__dir__)
50
49
  require 'commands'
51
50
 
52
51
  exit run(ARGV)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  source 'http://rubygems.org'
2
3
 
3
4
  gem 'slack-ruby-client', path: '../..'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'slack-ruby-client'
2
3
 
3
4
  Slack.configure do |config|
@@ -10,7 +11,10 @@ end
10
11
  client = Slack::RealTime::Client.new
11
12
 
12
13
  client.on :hello do
13
- puts "Successfully connected, welcome '#{client.self.name}' to the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
14
+ puts(
15
+ "Successfully connected, welcome '#{client.self.name}' to " \
16
+ "the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
17
+ )
14
18
  end
15
19
 
16
20
  client.on :message do |data|
@@ -19,9 +23,9 @@ client.on :message do |data|
19
23
  client.typing channel: data.channel
20
24
 
21
25
  case data.text
22
- when 'bot hi' then
26
+ when 'bot hi'
23
27
  client.message channel: data.channel, text: "Hi <@#{data.user}>!"
24
- when /^bot/ then
28
+ when /^bot/
25
29
  client.message channel: data.channel, text: "Sorry <@#{data.user}>, what?"
26
30
  end
27
31
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  source 'http://rubygems.org'
2
3
 
3
4
  gem 'slack-ruby-client', path: '../..'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'slack-ruby-client'
2
3
 
3
4
  Slack.configure do |config|
@@ -8,15 +9,18 @@ end
8
9
  client = Slack::RealTime::Client.new
9
10
 
10
11
  client.on :hello do
11
- puts "Successfully connected, welcome '#{client.self.name}' to the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
12
+ puts(
13
+ "Successfully connected, welcome '#{client.self.name}' " \
14
+ "to the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
15
+ )
12
16
  end
13
17
 
14
18
  client.on :message do |data|
15
19
  puts data
16
20
  case data.text
17
- when 'bot hi' then
21
+ when 'bot hi'
18
22
  client.web_client.chat_postMessage channel: data.channel, text: "Hi <@#{data.user}>!"
19
- when /^bot/ then
23
+ when /^bot/
20
24
  client.web_client.chat_postMessage channel: data.channel, text: "Sorry <@#{data.user}>, what?"
21
25
  end
22
26
  end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+ source 'http://rubygems.org'
3
+
4
+ gem 'slack-ruby-client', path: '../..'
5
+
6
+ gem 'async-websocket'
7
+ gem 'foreman'
@@ -0,0 +1,2 @@
1
+ console: bundle exec ruby hi.rb
2
+
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+ require 'slack-ruby-client'
3
+ require 'async'
4
+
5
+ raise 'Missing ENV[SLACK_API_TOKENS]!' unless ENV.key?('SLACK_API_TOKENS')
6
+
7
+ $stdout.sync = true
8
+ logger = Logger.new($stdout)
9
+ logger.level = Logger::DEBUG
10
+
11
+ threads = []
12
+
13
+ ENV['SLACK_API_TOKENS'].split.each do |token|
14
+ logger.info "Starting #{token[0..12]} ..."
15
+
16
+ client = Slack::RealTime::Client.new(token: token)
17
+
18
+ client.on :hello do
19
+ logger.info(
20
+ "Successfully connected, welcome '#{client.self.name}' to " \
21
+ "the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
22
+ )
23
+ end
24
+
25
+ client.on :message do |data|
26
+ logger.info data
27
+
28
+ client.typing channel: data.channel
29
+
30
+ case data.text
31
+ when /hi/
32
+ client.message channel: data.channel, text: "Hi <@#{data.user}>!"
33
+ else
34
+ client.message channel: data.channel, text: "Sorry <@#{data.user}>, what?"
35
+ end
36
+ end
37
+
38
+ threads << client.start_async
39
+ end
40
+
41
+ threads.each(&:join)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  source 'http://rubygems.org'
2
3
 
3
4
  gem 'slack-ruby-client', path: '../..'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'slack-ruby-client'
2
3
 
3
4
  raise 'Missing ENV[SLACK_API_TOKENS]!' unless ENV.key?('SLACK_API_TOKENS')
@@ -13,7 +14,10 @@ ENV['SLACK_API_TOKENS'].split.each do |token|
13
14
  client = Slack::RealTime::Client.new(token: token)
14
15
 
15
16
  client.on :hello do
16
- logger.info "Successfully connected, welcome '#{client.self.name}' to the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
17
+ logger.info(
18
+ "Successfully connected, welcome '#{client.self.name}' to " \
19
+ "the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
20
+ )
17
21
  end
18
22
 
19
23
  client.on :message do |data|
@@ -22,9 +26,9 @@ ENV['SLACK_API_TOKENS'].split.each do |token|
22
26
  client.typing channel: data.channel
23
27
 
24
28
  case data.text
25
- when 'bot hi' then
29
+ when 'bot hi'
26
30
  client.message channel: data.channel, text: "Hi <@#{data.user}>!"
27
- when /^bot/ then
31
+ when /^bot/
28
32
  client.message channel: data.channel, text: "Sorry <@#{data.user}>, what?"
29
33
  end
30
34
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  source 'http://rubygems.org'
2
3
 
3
4
  gem 'slack-ruby-client', path: '../..'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'slack-ruby-client'
2
3
 
3
4
  raise 'Missing ENV[SLACK_API_TOKENS]!' unless ENV.key?('SLACK_API_TOKENS')
@@ -13,7 +14,10 @@ ENV['SLACK_API_TOKENS'].split.each do |token|
13
14
  client = Slack::RealTime::Client.new(token: token)
14
15
 
15
16
  client.on :hello do
16
- logger.info "Successfully connected, welcome '#{client.self.name}' to the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
17
+ logger.info(
18
+ "Successfully connected, welcome '#{client.self.name}' to " \
19
+ "the '#{client.team.name}' team at https://#{client.team.domain}.slack.com."
20
+ )
17
21
  end
18
22
 
19
23
  client.on :message do |data|
@@ -22,9 +26,9 @@ ENV['SLACK_API_TOKENS'].split.each do |token|
22
26
  client.typing channel: data.channel
23
27
 
24
28
  case data.text
25
- when 'bot hi' then
29
+ when 'bot hi'
26
30
  client.message channel: data.channel, text: "Hi <@#{data.user}>!"
27
- when /^bot/ then
31
+ when /^bot/
28
32
  client.message channel: data.channel, text: "Sorry <@#{data.user}>, what?"
29
33
  end
30
34
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  source 'http://rubygems.org'
2
3
 
3
4
  gem 'slack-ruby-client', path: '../..'
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require 'slack-ruby-client'
2
3
 
3
4
  Slack.configure do |config|
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  source 'http://rubygems.org'
2
3
 
3
4
  gem 'slack-ruby-client', path: '../..'