slack-ruby-client 0.5.4 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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