slack-ruby-client 0.5.4 → 0.6.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 (189) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +17 -14
  3. data/CHANGELOG.md +7 -0
  4. data/CONTRIBUTING.md +2 -2
  5. data/Gemfile +1 -0
  6. data/README.md +32 -18
  7. data/Rakefile +4 -1
  8. data/UPGRADING.md +41 -3
  9. data/bin/commands.rb +1 -1
  10. data/bin/commands/api.rb +1 -1
  11. data/bin/commands/auth.rb +1 -1
  12. data/bin/commands/channels.rb +3 -3
  13. data/bin/commands/chat.rb +1 -1
  14. data/bin/commands/dnd.rb +1 -1
  15. data/bin/commands/emoji.rb +1 -1
  16. data/bin/commands/files.rb +2 -1
  17. data/bin/commands/groups.rb +1 -1
  18. data/bin/commands/im.rb +1 -1
  19. data/bin/commands/mpim.rb +1 -1
  20. data/bin/commands/oauth.rb +1 -1
  21. data/bin/commands/pins.rb +1 -1
  22. data/bin/commands/reactions.rb +1 -1
  23. data/bin/commands/rtm.rb +1 -1
  24. data/bin/commands/search.rb +1 -1
  25. data/bin/commands/stars.rb +1 -1
  26. data/bin/commands/team.rb +1 -1
  27. data/bin/commands/usergroups.rb +1 -1
  28. data/bin/commands/users.rb +10 -1
  29. data/examples/hi_real_time/hi.rb +5 -5
  30. data/examples/hi_real_time_and_web/hi.rb +4 -4
  31. data/examples/hi_real_time_async/hi.rb +5 -5
  32. data/lib/slack-ruby-client.rb +10 -0
  33. data/lib/slack/messages/message.rb +9 -0
  34. data/lib/slack/real_time/api/schema/event.json +22 -0
  35. data/lib/slack/real_time/api/templates/event_handler.erb +18 -0
  36. data/lib/slack/real_time/api/templates/event_handlers.erb +5 -0
  37. data/lib/slack/real_time/client.rb +31 -9
  38. data/lib/slack/real_time/config.rb +3 -1
  39. data/lib/slack/real_time/event_handlers.rb +66 -0
  40. data/lib/slack/real_time/event_handlers/accounts_changed.rb +18 -0
  41. data/lib/slack/real_time/event_handlers/bot_added.rb +16 -0
  42. data/lib/slack/real_time/event_handlers/bot_changed.rb +17 -0
  43. data/lib/slack/real_time/event_handlers/channel_archive.rb +17 -0
  44. data/lib/slack/real_time/event_handlers/channel_created.rb +17 -0
  45. data/lib/slack/real_time/event_handlers/channel_deleted.rb +16 -0
  46. data/lib/slack/real_time/event_handlers/channel_history_changed.rb +18 -0
  47. data/lib/slack/real_time/event_handlers/channel_joined.rb +22 -0
  48. data/lib/slack/real_time/event_handlers/channel_left.rb +17 -0
  49. data/lib/slack/real_time/event_handlers/channel_marked.rb +18 -0
  50. data/lib/slack/real_time/event_handlers/channel_rename.rb +17 -0
  51. data/lib/slack/real_time/event_handlers/channel_unarchive.rb +17 -0
  52. data/lib/slack/real_time/event_handlers/commands_changed.rb +18 -0
  53. data/lib/slack/real_time/event_handlers/dnd_updated.rb +18 -0
  54. data/lib/slack/real_time/event_handlers/dnd_updated_user.rb +18 -0
  55. data/lib/slack/real_time/event_handlers/email_domain_changed.rb +16 -0
  56. data/lib/slack/real_time/event_handlers/emoji_changed.rb +18 -0
  57. data/lib/slack/real_time/event_handlers/file_change.rb +18 -0
  58. data/lib/slack/real_time/event_handlers/file_comment_added.rb +18 -0
  59. data/lib/slack/real_time/event_handlers/file_comment_deleted.rb +18 -0
  60. data/lib/slack/real_time/event_handlers/file_comment_edited.rb +18 -0
  61. data/lib/slack/real_time/event_handlers/file_created.rb +18 -0
  62. data/lib/slack/real_time/event_handlers/file_deleted.rb +18 -0
  63. data/lib/slack/real_time/event_handlers/file_private.rb +18 -0
  64. data/lib/slack/real_time/event_handlers/file_public.rb +18 -0
  65. data/lib/slack/real_time/event_handlers/file_shared.rb +18 -0
  66. data/lib/slack/real_time/event_handlers/file_unshared.rb +18 -0
  67. data/lib/slack/real_time/event_handlers/group_archive.rb +17 -0
  68. data/lib/slack/real_time/event_handlers/group_close.rb +16 -0
  69. data/lib/slack/real_time/event_handlers/group_history_changed.rb +18 -0
  70. data/lib/slack/real_time/event_handlers/group_joined.rb +16 -0
  71. data/lib/slack/real_time/event_handlers/group_left.rb +17 -0
  72. data/lib/slack/real_time/event_handlers/group_marked.rb +18 -0
  73. data/lib/slack/real_time/event_handlers/group_open.rb +16 -0
  74. data/lib/slack/real_time/event_handlers/group_rename.rb +17 -0
  75. data/lib/slack/real_time/event_handlers/group_unarchive.rb +17 -0
  76. data/lib/slack/real_time/event_handlers/im_close.rb +16 -0
  77. data/lib/slack/real_time/event_handlers/im_created.rb +16 -0
  78. data/lib/slack/real_time/event_handlers/im_history_changed.rb +18 -0
  79. data/lib/slack/real_time/event_handlers/im_marked.rb +18 -0
  80. data/lib/slack/real_time/event_handlers/im_open.rb +16 -0
  81. data/lib/slack/real_time/event_handlers/manual_presence_change.rb +16 -0
  82. data/lib/slack/real_time/event_handlers/pin_added.rb +18 -0
  83. data/lib/slack/real_time/event_handlers/pin_removed.rb +18 -0
  84. data/lib/slack/real_time/event_handlers/pref_change.rb +16 -0
  85. data/lib/slack/real_time/event_handlers/presence_change.rb +17 -0
  86. data/lib/slack/real_time/event_handlers/reaction_added.rb +18 -0
  87. data/lib/slack/real_time/event_handlers/reaction_removed.rb +18 -0
  88. data/lib/slack/real_time/event_handlers/reconnect_url.rb +18 -0
  89. data/lib/slack/real_time/event_handlers/star_added.rb +18 -0
  90. data/lib/slack/real_time/event_handlers/star_removed.rb +18 -0
  91. data/lib/slack/real_time/event_handlers/subteam_created.rb +18 -0
  92. data/lib/slack/real_time/event_handlers/subteam_self_added.rb +18 -0
  93. data/lib/slack/real_time/event_handlers/subteam_self_removed.rb +18 -0
  94. data/lib/slack/real_time/event_handlers/subteam_updated.rb +18 -0
  95. data/lib/slack/real_time/event_handlers/team_domain_change.rb +17 -0
  96. data/lib/slack/real_time/event_handlers/team_join.rb +16 -0
  97. data/lib/slack/real_time/event_handlers/team_migration_started.rb +18 -0
  98. data/lib/slack/real_time/event_handlers/team_plan_change.rb +16 -0
  99. data/lib/slack/real_time/event_handlers/team_pref_change.rb +16 -0
  100. data/lib/slack/real_time/event_handlers/team_profile_change.rb +18 -0
  101. data/lib/slack/real_time/event_handlers/team_profile_delete.rb +18 -0
  102. data/lib/slack/real_time/event_handlers/team_profile_reorder.rb +18 -0
  103. data/lib/slack/real_time/event_handlers/team_rename.rb +16 -0
  104. data/lib/slack/real_time/event_handlers/user_change.rb +16 -0
  105. data/lib/slack/real_time/event_handlers/user_typing.rb +18 -0
  106. data/lib/slack/real_time/models.rb +7 -0
  107. data/lib/slack/real_time/models/base.rb +11 -0
  108. data/lib/slack/real_time/models/bot.rb +8 -0
  109. data/lib/slack/real_time/models/channel.rb +8 -0
  110. data/lib/slack/real_time/models/group.rb +8 -0
  111. data/lib/slack/real_time/models/im.rb +8 -0
  112. data/lib/slack/real_time/models/team.rb +8 -0
  113. data/lib/slack/real_time/models/user.rb +8 -0
  114. data/lib/slack/real_time/store.rb +47 -0
  115. data/lib/slack/version.rb +1 -1
  116. data/lib/slack/web/api/endpoints.rb +1 -1
  117. data/lib/slack/web/api/endpoints/api.rb +1 -1
  118. data/lib/slack/web/api/endpoints/auth.rb +1 -1
  119. data/lib/slack/web/api/endpoints/channels.rb +2 -4
  120. data/lib/slack/web/api/endpoints/chat.rb +1 -1
  121. data/lib/slack/web/api/endpoints/dnd.rb +1 -1
  122. data/lib/slack/web/api/endpoints/emoji.rb +1 -1
  123. data/lib/slack/web/api/endpoints/files.rb +4 -1
  124. data/lib/slack/web/api/endpoints/groups.rb +1 -1
  125. data/lib/slack/web/api/endpoints/im.rb +1 -1
  126. data/lib/slack/web/api/endpoints/mpim.rb +1 -1
  127. data/lib/slack/web/api/endpoints/oauth.rb +1 -1
  128. data/lib/slack/web/api/endpoints/pins.rb +1 -1
  129. data/lib/slack/web/api/endpoints/reactions.rb +1 -1
  130. data/lib/slack/web/api/endpoints/rtm.rb +1 -1
  131. data/lib/slack/web/api/endpoints/search.rb +1 -1
  132. data/lib/slack/web/api/endpoints/stars.rb +1 -1
  133. data/lib/slack/web/api/endpoints/team.rb +1 -1
  134. data/lib/slack/web/api/endpoints/usergroups.rb +1 -1
  135. data/lib/slack/web/api/endpoints/users.rb +1 -1
  136. data/lib/slack/web/api/mixins.rb +1 -0
  137. data/lib/slack/web/api/mixins/channels.id.rb +2 -2
  138. data/lib/slack/web/api/mixins/groups.id.rb +2 -2
  139. data/lib/slack/web/api/mixins/users.id.rb +2 -2
  140. data/lib/slack/web/api/mixins/users.search.json +19 -0
  141. data/lib/slack/web/api/mixins/users.search.rb +43 -0
  142. data/lib/slack/web/api/templates/command.erb +1 -1
  143. data/lib/slack/web/api/templates/commands.erb +1 -1
  144. data/lib/slack/web/api/templates/endpoints.erb +1 -1
  145. data/lib/slack/web/api/templates/method.erb +1 -1
  146. data/lib/slack/web/api/templates/method_spec.erb +20 -0
  147. data/lib/slack/web/faraday/connection.rb +1 -0
  148. data/lib/tasks/git.rake +7 -0
  149. data/lib/tasks/real_time.rake +45 -0
  150. data/lib/tasks/update.rake +9 -0
  151. data/lib/{slack/web/api/tasks/generate.rake → tasks/web.rake} +6 -6
  152. data/slack-ruby-client.gemspec +1 -0
  153. data/spec/fixtures/slack/web/rtm_start.yml +53 -22
  154. data/spec/integration/integration_spec.rb +5 -5
  155. data/spec/slack/real_time/client_spec.rb +72 -10
  156. data/spec/slack/real_time/event_handlers/bot_spec.rb +42 -0
  157. data/spec/slack/real_time/event_handlers/channel_spec.rb +116 -0
  158. data/spec/slack/real_time/event_handlers/group_spec.rb +90 -0
  159. data/spec/slack/real_time/event_handlers/im_spec.rb +47 -0
  160. data/spec/slack/real_time/event_handlers/team_spec.rb +58 -0
  161. data/spec/slack/real_time/event_handlers/user_spec.rb +61 -0
  162. data/spec/slack/real_time/rtm_start_spec.rb +13 -0
  163. data/spec/slack/real_time/store_spec.rb +11 -0
  164. data/spec/slack/slack_spec.rb +6 -6
  165. data/spec/slack/web/api/endpoints/api_spec.rb +7 -0
  166. data/spec/slack/web/api/endpoints/{auth_spec.rb → custom_specs/auth_spec.rb} +0 -0
  167. data/spec/slack/web/api/endpoints/{channels_spec.rb → custom_specs/channels_spec.rb} +1 -1
  168. data/spec/slack/web/api/endpoints/{chat_spec.rb → custom_specs/chat_spec.rb} +0 -0
  169. data/spec/slack/web/api/endpoints/{groups_spec.rb → custom_specs/groups_spec.rb} +1 -1
  170. data/spec/slack/web/api/endpoints/custom_specs/users_spec.rb +23 -0
  171. data/spec/slack/web/api/endpoints/dnd_spec.rb +12 -0
  172. data/spec/slack/web/api/endpoints/emoji_spec.rb +7 -0
  173. data/spec/slack/web/api/endpoints/files_spec.rb +36 -0
  174. data/spec/slack/web/api/endpoints/im_spec.rb +30 -0
  175. data/spec/slack/web/api/endpoints/mpim_spec.rb +30 -0
  176. data/spec/slack/web/api/endpoints/oauth_spec.rb +18 -0
  177. data/spec/slack/web/api/endpoints/pins_spec.rb +22 -0
  178. data/spec/slack/web/api/endpoints/reactions_spec.rb +17 -0
  179. data/spec/slack/web/api/endpoints/rtm_spec.rb +7 -0
  180. data/spec/slack/web/api/endpoints/search_spec.rb +22 -0
  181. data/spec/slack/web/api/endpoints/stars_spec.rb +7 -0
  182. data/spec/slack/web/api/endpoints/team_spec.rb +7 -0
  183. data/spec/slack/web/api/endpoints/usergroups_spec.rb +35 -0
  184. data/spec/slack/web/api/mixins/channels_spec.rb +6 -6
  185. data/spec/slack/web/api/mixins/groups_spec.rb +6 -6
  186. data/spec/slack/web/api/mixins/users_spec.rb +12 -6
  187. data/spec/support/real_time/event.rb +11 -0
  188. metadata +159 -13
  189. data/spec/slack/web/api/endpoints/users_spec.rb +0 -17
@@ -0,0 +1,18 @@
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
@@ -0,0 +1,18 @@
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
@@ -0,0 +1,18 @@
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
@@ -0,0 +1,17 @@
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
@@ -0,0 +1,16 @@
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
@@ -0,0 +1,18 @@
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
@@ -0,0 +1,16 @@
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
@@ -0,0 +1,16 @@
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
@@ -0,0 +1,18 @@
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
@@ -0,0 +1,18 @@
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
@@ -0,0 +1,18 @@
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
@@ -0,0 +1,16 @@
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
@@ -0,0 +1,16 @@
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
@@ -0,0 +1,18 @@
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
@@ -0,0 +1,7 @@
1
+ require 'slack/real_time/models/base'
2
+ require 'slack/real_time/models/user'
3
+ require 'slack/real_time/models/bot'
4
+ require 'slack/real_time/models/channel'
5
+ require 'slack/real_time/models/group'
6
+ require 'slack/real_time/models/team'
7
+ require 'slack/real_time/models/im'
@@ -0,0 +1,11 @@
1
+ module Slack
2
+ module RealTime
3
+ module Models
4
+ class Base < Hashie::Mash
5
+ def presence
6
+ super['presence']
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ module Slack
2
+ module RealTime
3
+ module Models
4
+ class Bot < Base
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Slack
2
+ module RealTime
3
+ module Models
4
+ class Channel < Base
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Slack
2
+ module RealTime
3
+ module Models
4
+ class Group < Base
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Slack
2
+ module RealTime
3
+ module Models
4
+ class Im < Base
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Slack
2
+ module RealTime
3
+ module Models
4
+ class Team < Base
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Slack
2
+ module RealTime
3
+ module Models
4
+ class User < Base
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,47 @@
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
@@ -1,3 +1,3 @@
1
1
  module Slack
2
- VERSION = '0.5.4'
2
+ VERSION = '0.6.0'
3
3
  end
@@ -1,4 +1,4 @@
1
- # This file was auto-generated by lib/slack/web/api/tasks/generate.rake
1
+ # This file was auto-generated by lib/tasks/web.rake
2
2
 
3
3
  require 'slack/web/api/endpoints/api'
4
4
  require 'slack/web/api/endpoints/auth'
@@ -1,4 +1,4 @@
1
- # This file was auto-generated by lib/slack/web/api/tasks/generate.rake
1
+ # This file was auto-generated by lib/tasks/web.rake
2
2
 
3
3
  module Slack
4
4
  module Web
@@ -1,4 +1,4 @@
1
- # This file was auto-generated by lib/slack/web/api/tasks/generate.rake
1
+ # This file was auto-generated by lib/tasks/web.rake
2
2
 
3
3
  module Slack
4
4
  module Web
@@ -1,4 +1,4 @@
1
- # This file was auto-generated by lib/slack/web/api/tasks/generate.rake
1
+ # This file was auto-generated by lib/tasks/web.rake
2
2
 
3
3
  module Slack
4
4
  module Web
@@ -31,9 +31,7 @@ module Slack
31
31
  end
32
32
 
33
33
  #
34
- # This method returns a portion of messages/events from the specified channel.
35
- # To read the entire history for a channel, call the method with no latest or
36
- # oldest arguments, and then continue paging using the instructions below.
34
+ # This method returns a portion of message events from the specified channel.
37
35
  #
38
36
  # @option options [channel] :channel
39
37
  # Channel to fetch history for.
@@ -1,4 +1,4 @@
1
- # This file was auto-generated by lib/slack/web/api/tasks/generate.rake
1
+ # This file was auto-generated by lib/tasks/web.rake
2
2
 
3
3
  module Slack
4
4
  module Web
@@ -1,4 +1,4 @@
1
- # This file was auto-generated by lib/slack/web/api/tasks/generate.rake
1
+ # This file was auto-generated by lib/tasks/web.rake
2
2
 
3
3
  module Slack
4
4
  module Web