slack-ruby-client 0.6.0 → 0.7.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 (127) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +19 -17
  3. data/.travis.yml +1 -0
  4. data/CHANGELOG.md +8 -0
  5. data/README.md +24 -4
  6. data/bin/commands/chat.rb +10 -9
  7. data/bin/commands/files.rb +19 -1
  8. data/examples/hi_real_time/hi.rb +2 -0
  9. data/lib/slack-ruby-client.rb +4 -2
  10. data/lib/slack/config.rb +4 -0
  11. data/lib/slack/logger.rb +13 -0
  12. data/lib/slack/messages/message.rb +6 -0
  13. data/lib/slack/real_time/api/schema/event.json +1 -0
  14. data/lib/slack/real_time/api/templates/event_handler.erb +4 -18
  15. data/lib/slack/real_time/client.rb +29 -5
  16. data/lib/slack/real_time/concurrency/celluloid.rb +6 -0
  17. data/lib/slack/real_time/concurrency/eventmachine.rb +22 -1
  18. data/lib/slack/real_time/config.rb +5 -1
  19. data/lib/slack/real_time/socket.rb +5 -0
  20. data/lib/slack/real_time/stores.rb +10 -0
  21. data/lib/slack/real_time/stores/base.rb +34 -0
  22. data/lib/slack/real_time/stores/starter.rb +361 -0
  23. data/lib/slack/real_time/stores/store.rb +479 -0
  24. data/lib/slack/version.rb +1 -1
  25. data/lib/slack/web/api/endpoints/api.rb +1 -1
  26. data/lib/slack/web/api/endpoints/auth.rb +1 -1
  27. data/lib/slack/web/api/endpoints/channels.rb +14 -14
  28. data/lib/slack/web/api/endpoints/chat.rb +15 -13
  29. data/lib/slack/web/api/endpoints/dnd.rb +5 -5
  30. data/lib/slack/web/api/endpoints/emoji.rb +1 -1
  31. data/lib/slack/web/api/endpoints/files.rb +30 -6
  32. data/lib/slack/web/api/endpoints/groups.rb +16 -16
  33. data/lib/slack/web/api/endpoints/im.rb +5 -5
  34. data/lib/slack/web/api/endpoints/mpim.rb +5 -5
  35. data/lib/slack/web/api/endpoints/oauth.rb +1 -1
  36. data/lib/slack/web/api/endpoints/pins.rb +3 -3
  37. data/lib/slack/web/api/endpoints/reactions.rb +4 -4
  38. data/lib/slack/web/api/endpoints/rtm.rb +1 -1
  39. data/lib/slack/web/api/endpoints/search.rb +3 -3
  40. data/lib/slack/web/api/endpoints/stars.rb +3 -3
  41. data/lib/slack/web/api/endpoints/team.rb +3 -3
  42. data/lib/slack/web/api/endpoints/usergroups.rb +6 -6
  43. data/lib/slack/web/api/endpoints/users.rb +5 -5
  44. data/lib/slack/web/api/patches/chat.1.text-attachments-required.patch +1 -1
  45. data/lib/slack/web/api/templates/method.erb +1 -1
  46. data/lib/slack/web/client.rb +1 -0
  47. data/lib/tasks/real_time.rake +27 -21
  48. data/slack-ruby-client.gemspec +1 -0
  49. data/spec/integration/integration_spec.rb +13 -1
  50. data/spec/slack/real_time/client_spec.rb +40 -5
  51. data/spec/slack/real_time/concurrency/celluloid_spec.rb +2 -1
  52. data/spec/slack/real_time/concurrency/eventmachine_spec.rb +3 -2
  53. data/spec/slack/real_time/event_handlers/event_handlers_spec.rb +15 -0
  54. data/spec/slack/real_time/event_handlers/team_spec.rb +54 -52
  55. data/spec/slack/web/api/endpoints/files_spec.rb +10 -0
  56. data/spec/slack/web/client_spec.rb +1 -1
  57. data/spec/support/real_time/connected_client.rb +3 -3
  58. metadata +23 -71
  59. data/lib/slack/real_time/api/templates/event_handlers.erb +0 -5
  60. data/lib/slack/real_time/event_handlers.rb +0 -66
  61. data/lib/slack/real_time/event_handlers/accounts_changed.rb +0 -18
  62. data/lib/slack/real_time/event_handlers/bot_added.rb +0 -16
  63. data/lib/slack/real_time/event_handlers/bot_changed.rb +0 -17
  64. data/lib/slack/real_time/event_handlers/channel_archive.rb +0 -17
  65. data/lib/slack/real_time/event_handlers/channel_created.rb +0 -17
  66. data/lib/slack/real_time/event_handlers/channel_deleted.rb +0 -16
  67. data/lib/slack/real_time/event_handlers/channel_history_changed.rb +0 -18
  68. data/lib/slack/real_time/event_handlers/channel_joined.rb +0 -22
  69. data/lib/slack/real_time/event_handlers/channel_left.rb +0 -17
  70. data/lib/slack/real_time/event_handlers/channel_marked.rb +0 -18
  71. data/lib/slack/real_time/event_handlers/channel_rename.rb +0 -17
  72. data/lib/slack/real_time/event_handlers/channel_unarchive.rb +0 -17
  73. data/lib/slack/real_time/event_handlers/commands_changed.rb +0 -18
  74. data/lib/slack/real_time/event_handlers/dnd_updated.rb +0 -18
  75. data/lib/slack/real_time/event_handlers/dnd_updated_user.rb +0 -18
  76. data/lib/slack/real_time/event_handlers/email_domain_changed.rb +0 -16
  77. data/lib/slack/real_time/event_handlers/emoji_changed.rb +0 -18
  78. data/lib/slack/real_time/event_handlers/file_change.rb +0 -18
  79. data/lib/slack/real_time/event_handlers/file_comment_added.rb +0 -18
  80. data/lib/slack/real_time/event_handlers/file_comment_deleted.rb +0 -18
  81. data/lib/slack/real_time/event_handlers/file_comment_edited.rb +0 -18
  82. data/lib/slack/real_time/event_handlers/file_created.rb +0 -18
  83. data/lib/slack/real_time/event_handlers/file_deleted.rb +0 -18
  84. data/lib/slack/real_time/event_handlers/file_private.rb +0 -18
  85. data/lib/slack/real_time/event_handlers/file_public.rb +0 -18
  86. data/lib/slack/real_time/event_handlers/file_shared.rb +0 -18
  87. data/lib/slack/real_time/event_handlers/file_unshared.rb +0 -18
  88. data/lib/slack/real_time/event_handlers/group_archive.rb +0 -17
  89. data/lib/slack/real_time/event_handlers/group_close.rb +0 -16
  90. data/lib/slack/real_time/event_handlers/group_history_changed.rb +0 -18
  91. data/lib/slack/real_time/event_handlers/group_joined.rb +0 -16
  92. data/lib/slack/real_time/event_handlers/group_left.rb +0 -17
  93. data/lib/slack/real_time/event_handlers/group_marked.rb +0 -18
  94. data/lib/slack/real_time/event_handlers/group_open.rb +0 -16
  95. data/lib/slack/real_time/event_handlers/group_rename.rb +0 -17
  96. data/lib/slack/real_time/event_handlers/group_unarchive.rb +0 -17
  97. data/lib/slack/real_time/event_handlers/im_close.rb +0 -16
  98. data/lib/slack/real_time/event_handlers/im_created.rb +0 -16
  99. data/lib/slack/real_time/event_handlers/im_history_changed.rb +0 -18
  100. data/lib/slack/real_time/event_handlers/im_marked.rb +0 -18
  101. data/lib/slack/real_time/event_handlers/im_open.rb +0 -16
  102. data/lib/slack/real_time/event_handlers/manual_presence_change.rb +0 -16
  103. data/lib/slack/real_time/event_handlers/pin_added.rb +0 -18
  104. data/lib/slack/real_time/event_handlers/pin_removed.rb +0 -18
  105. data/lib/slack/real_time/event_handlers/pref_change.rb +0 -16
  106. data/lib/slack/real_time/event_handlers/presence_change.rb +0 -17
  107. data/lib/slack/real_time/event_handlers/reaction_added.rb +0 -18
  108. data/lib/slack/real_time/event_handlers/reaction_removed.rb +0 -18
  109. data/lib/slack/real_time/event_handlers/reconnect_url.rb +0 -18
  110. data/lib/slack/real_time/event_handlers/star_added.rb +0 -18
  111. data/lib/slack/real_time/event_handlers/star_removed.rb +0 -18
  112. data/lib/slack/real_time/event_handlers/subteam_created.rb +0 -18
  113. data/lib/slack/real_time/event_handlers/subteam_self_added.rb +0 -18
  114. data/lib/slack/real_time/event_handlers/subteam_self_removed.rb +0 -18
  115. data/lib/slack/real_time/event_handlers/subteam_updated.rb +0 -18
  116. data/lib/slack/real_time/event_handlers/team_domain_change.rb +0 -17
  117. data/lib/slack/real_time/event_handlers/team_join.rb +0 -16
  118. data/lib/slack/real_time/event_handlers/team_migration_started.rb +0 -18
  119. data/lib/slack/real_time/event_handlers/team_plan_change.rb +0 -16
  120. data/lib/slack/real_time/event_handlers/team_pref_change.rb +0 -16
  121. data/lib/slack/real_time/event_handlers/team_profile_change.rb +0 -18
  122. data/lib/slack/real_time/event_handlers/team_profile_delete.rb +0 -18
  123. data/lib/slack/real_time/event_handlers/team_profile_reorder.rb +0 -18
  124. data/lib/slack/real_time/event_handlers/team_rename.rb +0 -16
  125. data/lib/slack/real_time/event_handlers/user_change.rb +0 -16
  126. data/lib/slack/real_time/event_handlers/user_typing.rb +0 -18
  127. data/lib/slack/real_time/store.rb +0 -47
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module ReconnectUrl
7
- # # Experimental.
8
- # # @see https://api.slack.com/events/reconnect_url
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/reconnect_url.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['reconnect_url'] = Slack::RealTime::EventHandlers::ReconnectUrl
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module StarAdded
7
- # # A team member has starred an item.
8
- # # @see https://api.slack.com/events/star_added
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/star_added.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['star_added'] = Slack::RealTime::EventHandlers::StarAdded
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module StarRemoved
7
- # # A team member removed a star.
8
- # # @see https://api.slack.com/events/star_removed
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/star_removed.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['star_removed'] = Slack::RealTime::EventHandlers::StarRemoved
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module SubteamCreated
7
- # # A user group has been added to the team.
8
- # # @see https://api.slack.com/events/subteam_created
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/subteam_created.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['subteam_created'] = Slack::RealTime::EventHandlers::SubteamCreated
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module SubteamSelfAdded
7
- # # You have been added to a user group.
8
- # # @see https://api.slack.com/events/subteam_self_added
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/subteam_self_added.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['subteam_self_added'] = Slack::RealTime::EventHandlers::SubteamSelfAdded
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module SubteamSelfRemoved
7
- # # You have been removed from a user group.
8
- # # @see https://api.slack.com/events/subteam_self_removed
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/subteam_self_removed.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['subteam_self_removed'] = Slack::RealTime::EventHandlers::SubteamSelfRemoved
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module SubteamUpdated
7
- # # An existing user group has been updated or its members changed.
8
- # # @see https://api.slack.com/events/subteam_updated
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/subteam_updated.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['subteam_updated'] = Slack::RealTime::EventHandlers::SubteamUpdated
@@ -1,17 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module TeamDomainChange
5
- # The team domain has changed.
6
- # @see https://api.slack.com/events/team_domain_change
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_domain_change.json
8
- def self.call(client, data)
9
- client.team.url = data.url
10
- client.team.domain = data.domain
11
- end
12
- end
13
- end
14
- end
15
- end
16
-
17
- Slack::RealTime::Client.events['team_domain_change'] = Slack::RealTime::EventHandlers::TeamDomainChange
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module TeamJoin
5
- # A new team member has joined.
6
- # @see https://api.slack.com/events/team_join
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_join.json
8
- def self.call(client, data)
9
- client.users[data.user.id] = Models::User.new(data.user)
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['team_join'] = Slack::RealTime::EventHandlers::TeamJoin
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module TeamMigrationStarted
7
- # # The team is being migrated between servers.
8
- # # @see https://api.slack.com/events/team_migration_started
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_migration_started.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['team_migration_started'] = Slack::RealTime::EventHandlers::TeamMigrationStarted
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module TeamPlanChange
5
- # The team billing plan has changed.
6
- # @see https://api.slack.com/events/team_plan_change
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_plan_change.json
8
- def self.call(client, data)
9
- client.team.plan = data.plan
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['team_plan_change'] = Slack::RealTime::EventHandlers::TeamPlanChange
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module TeamPrefChange
5
- # A team preference has been updated.
6
- # @see https://api.slack.com/events/team_pref_change
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_pref_change.json
8
- def self.call(client, data)
9
- client.team.prefs[data.name] = data.value
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['team_pref_change'] = Slack::RealTime::EventHandlers::TeamPrefChange
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module TeamProfileChange
7
- # # Team profile fields have been updated.
8
- # # @see https://api.slack.com/events/team_profile_change
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_profile_change.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['team_profile_change'] = Slack::RealTime::EventHandlers::TeamProfileChange
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module TeamProfileDelete
7
- # # Team profile fields have been deleted.
8
- # # @see https://api.slack.com/events/team_profile_delete
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_profile_delete.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['team_profile_delete'] = Slack::RealTime::EventHandlers::TeamProfileDelete
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module TeamProfileReorder
7
- # # Team profile fields have been reordered.
8
- # # @see https://api.slack.com/events/team_profile_reorder
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_profile_reorder.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['team_profile_reorder'] = Slack::RealTime::EventHandlers::TeamProfileReorder
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module TeamRename
5
- # The team name has changed.
6
- # @see https://api.slack.com/events/team_rename
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/team_rename.json
8
- def self.call(client, data)
9
- client.team.name = data.name
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['team_rename'] = Slack::RealTime::EventHandlers::TeamRename
@@ -1,16 +0,0 @@
1
- module Slack
2
- module RealTime
3
- module EventHandlers
4
- module UserChange
5
- # A team member's data has changed.
6
- # @see https://api.slack.com/events/user_change
7
- # @see https://github.com/dblock/slack-api-ref/blob/master/events/user_change.json
8
- def self.call(client, data)
9
- client.users[data.user.id] = Models::User.new(data.user)
10
- end
11
- end
12
- end
13
- end
14
- end
15
-
16
- Slack::RealTime::Client.events['user_change'] = Slack::RealTime::EventHandlers::UserChange
@@ -1,18 +0,0 @@
1
- # This file was auto-generated by lib/tasks/real_time.rake
2
-
3
- # module Slack
4
- # module RealTime
5
- # module EventHandlers
6
- # module UserTyping
7
- # # A channel member is typing a message.
8
- # # @see https://api.slack.com/events/user_typing
9
- # # @see https://github.com/dblock/slack-api-ref/blob/master/events/user_typing.json
10
- # def self.call(_client, _data)
11
- # # TODO
12
- # end
13
- # end
14
- # end
15
- # end
16
- # end
17
- #
18
- # Slack::RealTime::Client.events['user_typing'] = Slack::RealTime::EventHandlers::UserTyping
@@ -1,47 +0,0 @@
1
- module Slack
2
- module RealTime
3
- class Store
4
- attr_accessor :users
5
- attr_accessor :bots
6
- attr_accessor :channels
7
- attr_accessor :groups
8
- attr_accessor :teams
9
- attr_accessor :ims
10
-
11
- def self
12
- users[@self_id]
13
- end
14
-
15
- def team
16
- teams[@team_id]
17
- end
18
-
19
- def initialize(attrs)
20
- if attrs.team
21
- @team_id = attrs.team.id
22
- @teams = { @team_id => Models::Team.new(attrs.team) }
23
- else
24
- @teams = {}
25
- end
26
-
27
- {
28
- 'users' => Models::User,
29
- 'channels' => Models::Channel,
30
- 'bots' => Models::Bot,
31
- 'groups' => Models::Group,
32
- 'ims' => Models::Im
33
- }.each_pair do |key, klass|
34
- instance_variable_set "@#{key}", {}
35
- attrs[key].each do |data|
36
- instance_variable_get("@#{key}").send(:[]=, data.id, klass.new(data))
37
- end if attrs.key?(key)
38
- end
39
-
40
- if attrs.self
41
- @self_id = attrs.self.id
42
- @users[@self_id].merge!(attrs.self)
43
- end
44
- end
45
- end
46
- end
47
- end