slack-ruby-client 0.7.6 → 0.7.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -0
- data/CHANGELOG.md +36 -30
- data/CONTRIBUTING.md +6 -6
- data/Dangerfile +1 -0
- data/Gemfile +2 -0
- data/README.md +2 -2
- data/RELEASING.md +1 -1
- data/UPGRADING.md +3 -3
- data/lib/slack/real_time/concurrency/celluloid.rb +3 -0
- data/lib/slack/real_time/socket.rb +4 -4
- data/lib/slack/version.rb +1 -1
- data/slack-ruby-client.gemspec +1 -1
- data/spec/slack/real_time/concurrency/celluloid_spec.rb +2 -6
- data/spec/slack/real_time/concurrency/eventmachine_spec.rb +2 -5
- data/spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb +19 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f5e10e7b0b264ec6b852aad6693f3ce649b9ebc
|
4
|
+
data.tar.gz: 8f071b342768ac23044d1bef1cdff20677e7fb51
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2dc1764939357dcca97aeafa335615b9acb3d52e24290025c395f0ad38f52d4d69a232cb314956709ae0f3096350e60b0a60db0cdf0477c513d9ef338252892
|
7
|
+
data.tar.gz: 199bbeafef16af488a793cf57b58a335de87fa2a5b6249a59bda227385f87c4be230ed9fc04fa8ed1d1951c8c60f0eea127105e1cd63d0b2d8acda3741869faf
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
### 0.7.7 (8/29/2016)
|
2
|
+
|
3
|
+
* [#103](https://github.com/slack-ruby/slack-ruby-client/pull/103): Added Danger, PR linting - [@dblock](https://github.com/dblock).
|
4
|
+
* [#101](https://github.com/slack-ruby/slack-ruby-client/issues/101): Fix: protected method `close` called with EventMachine - [@dblock](https://github.com/dblock).
|
5
|
+
* [#104](https://github.com/slack-ruby/slack-ruby-client/issues/104): Fix: thread leak in `start_async` with Celluloid - [@dblock](https://github.com/dblock).
|
6
|
+
|
1
7
|
### 0.7.6 (8/7/2016)
|
2
8
|
|
3
9
|
* Added `url_verification`, `message.mpim`, `message.im`, `message.groups` and `message.channels` RealTime events - [@dblock](https://github.com/dblock).
|
@@ -13,56 +19,56 @@
|
|
13
19
|
|
14
20
|
### 0.7.4 (5/28/2016)
|
15
21
|
|
16
|
-
* [#93](https://github.com/
|
22
|
+
* [#93](https://github.com/slack-ruby/slack-ruby-client/pull/93): Fix: When using Celluloid concurrency, handle input from the TCP socket asynchronously from reading more. - [@benzrf](https://github.com/benzrf).
|
17
23
|
* Added `auth_revoke` and `users_identity` to Web API - [@dblock](https://github.com/dblock).
|
18
24
|
* Added `channel` parameter to `files_comments_add` Web API - [@dblock](https://github.com/dblock).
|
19
25
|
|
20
26
|
### 0.7.3 (5/14/2016)
|
21
27
|
|
22
|
-
* [#90](https://github.com/
|
28
|
+
* [#90](https://github.com/slack-ruby/slack-ruby-client/issues/90): Fix: Celluloid concurrency handles server-side connection closing - [@dblock](https://github.com/dblock).
|
23
29
|
|
24
30
|
### 0.7.2 (5/5/2016)
|
25
31
|
|
26
|
-
* [#84](https://github.com/
|
32
|
+
* [#84](https://github.com/slack-ruby/slack-ruby-client/issues/84): Fix: Celluloid concurrency doesn't parallelize the connection setup - [@dblock](https://github.com/dblock).
|
27
33
|
|
28
34
|
### 0.7.1 (5/2/2016)
|
29
35
|
|
30
|
-
* [#82](https://github.com/
|
31
|
-
* [#73](https://github.com/
|
32
|
-
* [#69](https://github.com/
|
33
|
-
* [#85](https://github.com/
|
36
|
+
* [#82](https://github.com/slack-ruby/slack-ruby-client/pull/82): Fix `usergroups.users.{list,update}` and `files.comments.{add,edit,delete}` APIs - [@masatomo](https://github.com/masatomo).
|
37
|
+
* [#73](https://github.com/slack-ruby/slack-ruby-client/issues/73): Add a `closed` event - [@rkadyb](https://github.com/rkadyb).
|
38
|
+
* [#69](https://github.com/slack-ruby/slack-ruby-client/issues/69): Add attachments support for `Slack::Web::Api::Endpoints::Chat.chat_update` - [@nicka](https://github.com/nicka).
|
39
|
+
* [#85](https://github.com/slack-ruby/slack-ruby-client/issues/85): Compatibility with WebMock 2.0 - [@dblock](https://github.com/dblock).
|
34
40
|
* Added `as_user` to `chat_delete` Web API - [@dblock](https://github.com/dblock).
|
35
41
|
* Added `reminders_add`, `reminders_complete`, `reminders_delete`, `reminders_info` and `reminders_list` to Web API - [@dblock](https://github.com/dblock).
|
36
42
|
|
37
43
|
### 0.7.0 (3/6/2016)
|
38
44
|
|
39
|
-
* [#68](https://github.com/
|
40
|
-
* [#67](https://github.com/
|
45
|
+
* [#68](https://github.com/slack-ruby/slack-ruby-client/issues/68): The `Slack::RealTime::Config#store_class` is now globally configurable - [@dblock](https://github.com/dblock).
|
46
|
+
* [#67](https://github.com/slack-ruby/slack-ruby-client/pull/67): Make `logger` configurable and log HTTP requests and responses as well as RealTime events and socket data - [@mikz](https://github.com/mikz), [@dblock](https://github.com/dblock).
|
41
47
|
* Added `Slack::RealTime::Stores::Store` and `Slack::RealTime::Stores::Starter` - [@dblock](https://github.com/dblock).
|
42
48
|
* Added `files_revokePublicURL` and `files_sharedPublicURL` to Web API - [@dblock](https://github.com/dblock).
|
43
|
-
* [#60](https://github.com/
|
49
|
+
* [#60](https://github.com/slack-ruby/slack-ruby-client/issues/60): Exceptions in event handlers and commands are no longer fatal - [@dblock](https://github.com/dblock).
|
44
50
|
|
45
51
|
### 0.6.0 (2/4/2016)
|
46
52
|
|
47
|
-
* [#54](https://github.com/
|
48
|
-
* [#56](https://github.com/
|
49
|
-
* [#57](https://github.com/
|
50
|
-
* [#52](https://github.com/
|
53
|
+
* [#54](https://github.com/slack-ruby/slack-ruby-client/issues/54): RealTime client maintains a local store of team data for `client.self`, `team`, `users`, `channels`, `groups`, `ims` and `bots` data - [@dblock](https://github.com/dblock).
|
54
|
+
* [#56](https://github.com/slack-ruby/slack-ruby-client/issues/56): API responses in both Web and RealTime clients are now instances of [Slack::Messages::Message](lib/slack/messages/message), which provides method access to properties - [@dblock](https://github.com/dblock).
|
55
|
+
* [#57](https://github.com/slack-ruby/slack-ruby-client/issues/57): Configure arguments to pass to `rtm.start` via `config.start_options` - [@dblock](https://github.com/dblock).
|
56
|
+
* [#52](https://github.com/slack-ruby/slack-ruby-client/issues/52): Added `users_search` - [@dblock](https://github.com/dblock).
|
51
57
|
|
52
58
|
### 0.5.4 (1/23/2016)
|
53
59
|
|
54
|
-
* [#45](https://github.com/
|
55
|
-
* [#45](https://github.com/
|
56
|
-
* [#49](https://github.com/
|
60
|
+
* [#45](https://github.com/slack-ruby/slack-ruby-client/issues/45): Added `channels_id`, `groups_id` and `users_id` - [@dblock](https://github.com/dblock).
|
61
|
+
* [#45](https://github.com/slack-ruby/slack-ruby-client/issues/45): Automatically lookup channel, group and user ID in Web API methods when Slack API doesn't accept #channel or @user names - [@dblock](https://github.com/dblock).
|
62
|
+
* [#49](https://github.com/slack-ruby/slack-ruby-client/pull/49): Fix: Celluloid `#connected?` method. - [@mikz](https://github.com/mikz), [@kandadaboggu](https://github.com/kandadaboggu).
|
57
63
|
|
58
64
|
### 0.5.3 (1/11/2016)
|
59
65
|
|
60
|
-
* [#47](https://github.com/
|
66
|
+
* [#47](https://github.com/slack-ruby/slack-ruby-client/pull/47): Fix: default to Celluloid newer API - [@jlyonsmith](https://github.com/jlyonsmith), [@dblock](https://github.com/dblock).
|
61
67
|
* Fixed JRuby file encoding regression - [@dblock](https://github.com/dblock).
|
62
68
|
|
63
69
|
### 0.5.2 (1/8/2016)
|
64
70
|
|
65
|
-
* [#41](https://github.com/
|
71
|
+
* [#41](https://github.com/slack-ruby/slack-ruby-client/issues/41): Added `Slack::Messages::Formatting#unescape` - [@dblock](https://github.com/dblock).
|
66
72
|
* Added `files_comments` to Web API - [@dblock](https://github.com/dblock).
|
67
73
|
|
68
74
|
### 0.5.1 (1/4/2016)
|
@@ -74,18 +80,18 @@
|
|
74
80
|
|
75
81
|
* Added `usergroups_create`, `usergroups_disable`, `usergroups_enable`, `usergroups_list`, `usergroups_update` and `usergroups_users` to Web API - [@dblock](https://github.com/dblock).
|
76
82
|
* Added command-line `slack` client - [@dblock](https://github.com/dblock).
|
77
|
-
* [#5](https://github.com/
|
78
|
-
* [#34](https://github.com/
|
83
|
+
* [#5](https://github.com/slack-ruby/slack-ruby-client/issues/5): Added Celluloid support - [@mikz](https://github.com/mikz), [@dblock](https://github.com/dblock).
|
84
|
+
* [#34](https://github.com/slack-ruby/slack-ruby-client/pull/34): Added `Slack::RealTime::Client#start_async` - [@mikz](https://github.com/mikz), [@dblock](https://github.com/dblock).
|
79
85
|
* `Slack::RealTime::Client` supports `:open` and `:close` callbacks - [@dblock](https://github.com/dblock).
|
80
|
-
* [#32](https://github.com/
|
81
|
-
* [#22](https://github.com/
|
86
|
+
* [#32](https://github.com/slack-ruby/slack-ruby-client/issues/32): Fix: `on_complete: undefined method [] for nil:NilClass` when responding to Slack 400-500 errors - [@dblock](https://github.com/dblock).
|
87
|
+
* [#22](https://github.com/slack-ruby/slack-ruby-client/issues/22): Added `Slack::Web::Api::Error#response` - [@dblock](https://github.com/dblock).
|
82
88
|
* Added `logger` to `Slack::Web::Client` configuration that logs HTTP requests - [@dblock](https://github.com/dblock).
|
83
89
|
|
84
90
|
### 0.4.0 (11/8/2015)
|
85
91
|
|
86
92
|
* Added `team_integrationLogs` to Web API - [@dblock](https://github.com/dblock).
|
87
|
-
* [#11](https://github.com/
|
88
|
-
* [#20](https://github.com/
|
93
|
+
* [#11](https://github.com/slack-ruby/slack-ruby-client/pull/11): Web API `chat_postMessage` errors only if both `attachments` and `text` are missing - [@dblock](https://github.com/dblock).
|
94
|
+
* [#20](https://github.com/slack-ruby/slack-ruby-client/issues/20): Web API `chat_postMessage` will automatically `to_json` attachments - [@dblock](https://github.com/dblock).
|
89
95
|
* Added `mpim_aware` to `rtm_start` to Web API - [@dblock](https://github.com/dblock).
|
90
96
|
* Added `mpim_close`, `mpim_history`, `mpim_list`, `mpim_mark` and `mpim_open` to Web API - [@dblock](https://github.com/dblock).
|
91
97
|
* Added `unreads` to `channels_history`, `groups_history` and `im_history` to Web API - [@dblock](https://github.com/dblock).
|
@@ -107,7 +113,7 @@
|
|
107
113
|
* Added `files_delete` to Web API - [@dblock](https://github.com/dblock).
|
108
114
|
* Added `as_user` to `chat_postMessage` in Web API - [@dblock](https://github.com/dblock).
|
109
115
|
* Use API reference schema from [github.com/dblock/slack-api-ref](https://github.com/dblock/slack-api-ref) - [@dblock](https://github.com/dblock).
|
110
|
-
* Added `reactions_add`, `reactions_list`, `reactions_get` and `reactions_remove` to Web API - [@jakedahn](https://github.com/jakedahn)
|
116
|
+
* Added `reactions_add`, `reactions_list`, `reactions_get` and `reactions_remove` to Web API - [@jakedahn](https://github.com/jakedahn).
|
111
117
|
|
112
118
|
### 0.2.1 (8/2/2015)
|
113
119
|
|
@@ -116,10 +122,10 @@
|
|
116
122
|
|
117
123
|
### 0.2.0 (7/31/2015)
|
118
124
|
|
119
|
-
* [#2](https://github.com/
|
120
|
-
* [#3](https://github.com/
|
121
|
-
* [#3](https://github.com/
|
122
|
-
* [#3](https://github.com/
|
125
|
+
* [#2](https://github.com/slack-ruby/slack-ruby-client/pull/2): `Slack::RealTime::Socket` now pings frames every 30s, as recommended by Slack - [@samdoiron](https://github.com/samdoiron).
|
126
|
+
* [#3](https://github.com/slack-ruby/slack-ruby-client/issues/3): RealTime client WebSocket frame ping frequency is now configurable with `Slack::RealTime::Client.websocket_ping` - [@dblock](https://github.com/dblock).
|
127
|
+
* [#3](https://github.com/slack-ruby/slack-ruby-client/issues/3): RealTime client WebSocket proxy is now configurable with `Slack::RealTime::Client.websocket_proxy` - [@dblock](https://github.com/dblock).
|
128
|
+
* [#3](https://github.com/slack-ruby/slack-ruby-client/issues/3): Added global `Slack::Web::Client` and `Slack::RealTime::Client` configuration options via `Slack::Web::Client.configure` and `Slack::RealTime::Client.configure` - [@dblock](https://github.com/dblock).
|
123
129
|
* Exposed `Slack::RealTime::Client.url`, `team`, `self`, `users`, `channels`, `groups`, `ims` and `bots` - [@dblock](https://github.com/dblock).
|
124
130
|
* Default user-agent for `Slack::Web::Client` now includes a slash, eg. _Slack Ruby Client/0.1.1_ - [@dblock](https://github.com/dblock).
|
125
131
|
* Fix: set `Slack::Web::Client` connection options for `ca_path`, `ca_file`, and `proxy` - [@dblock](https://github.com/dblock).
|
data/CONTRIBUTING.md
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
# Contributing to Slack-Ruby-Client
|
2
2
|
|
3
|
-
This project is work of [many contributors](https://github.com/
|
3
|
+
This project is work of [many contributors](https://github.com/slack-ruby/slack-ruby-client/graphs/contributors).
|
4
4
|
|
5
|
-
You're encouraged to submit [pull requests](https://github.com/
|
5
|
+
You're encouraged to submit [pull requests](https://github.com/slack-ruby/slack-ruby-client/pulls), [propose features and discuss issues](https://github.com/slack-ruby/slack-ruby-client/issues).
|
6
6
|
|
7
7
|
In the examples below, substitute your Github username for `contributor` in URLs.
|
8
8
|
|
9
9
|
### Fork the Project
|
10
10
|
|
11
|
-
Fork the [project on Github](https://github.com/
|
11
|
+
Fork the [project on Github](https://github.com/slack-ruby/slack-ruby-client) and check out your copy.
|
12
12
|
|
13
13
|
```
|
14
14
|
git clone https://github.com/contributor/slack-ruby-client.git
|
15
15
|
cd slack-ruby-client
|
16
|
-
git remote add upstream https://github.com/
|
16
|
+
git remote add upstream https://github.com/slack-ruby/slack-ruby-client.git
|
17
17
|
```
|
18
18
|
|
19
19
|
### Bundle Install and Test
|
@@ -73,7 +73,7 @@ rake slack:api:update
|
|
73
73
|
|
74
74
|
#### Patching Slack Web API
|
75
75
|
|
76
|
-
Sometimes it's necessary to patch auto-generated Slack Web API methods. For example, we want to help clients with calling `to_json` on the `attachments` parameter sent to `chat_postMessage`. See [#20](https://github.com/
|
76
|
+
Sometimes it's necessary to patch auto-generated Slack Web API methods. For example, we want to help clients with calling `to_json` on the `attachments` parameter sent to `chat_postMessage`. See [#20](https://github.com/slack-ruby/slack-ruby-client/issues/20).
|
77
77
|
|
78
78
|
Make a change to a generated file, for example `lib/slack/web/api/endpoints/chat.rb` and generate a patch.
|
79
79
|
|
@@ -124,7 +124,7 @@ Go to https://github.com/contributor/slack-ruby-client and select your feature b
|
|
124
124
|
Update the [CHANGELOG](CHANGELOG.md) with the pull request number. A typical entry looks as follows.
|
125
125
|
|
126
126
|
```
|
127
|
-
* [#123](https://github.com/
|
127
|
+
* [#123](https://github.com/slack-ruby/slack-ruby-client/pull/123): Reticulated splines - [@contributor](https://github.com/contributor).
|
128
128
|
```
|
129
129
|
|
130
130
|
Amend your previous commit and force push the changes.
|
data/Dangerfile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# inherits from https://github.com/slack-ruby/danger
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -2,8 +2,8 @@ Slack Ruby Client
|
|
2
2
|
=================
|
3
3
|
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/slack-ruby-client.svg)](http://badge.fury.io/rb/slack-ruby-client)
|
5
|
-
[![Build Status](https://travis-ci.org/
|
6
|
-
[![Code Climate](https://codeclimate.com/github/
|
5
|
+
[![Build Status](https://travis-ci.org/slack-ruby/slack-ruby-client.svg?branch=master)](https://travis-ci.org/slack-ruby/slack-ruby-client)
|
6
|
+
[![Code Climate](https://codeclimate.com/github/slack-ruby/slack-ruby-client/badges/gpa.svg)](https://codeclimate.com/github/slack-ruby/slack-ruby-client)
|
7
7
|
|
8
8
|
A Ruby client for the Slack [Web](https://api.slack.com/web) and [RealTime Messaging](https://api.slack.com/rtm) APIs. Comes with a handy command-line client, too. If you are not familiar with these concepts, you might want to watch [this video](http://code.dblock.org/2016/03/11/your-first-slack-bot-service-video.html).
|
9
9
|
|
data/RELEASING.md
CHANGED
@@ -11,7 +11,7 @@ bundle install
|
|
11
11
|
rake
|
12
12
|
```
|
13
13
|
|
14
|
-
Check that the last build succeeded in [Travis CI](https://travis-ci.org/
|
14
|
+
Check that the last build succeeded in [Travis CI](https://travis-ci.org/slack-ruby/slack-ruby-client) for all supported platforms.
|
15
15
|
|
16
16
|
Increment the version, modify [lib/slack/version.rb](lib/slack/version.rb).
|
17
17
|
|
data/UPGRADING.md
CHANGED
@@ -19,7 +19,7 @@ After:
|
|
19
19
|
puts "Welcome #{client.self.name} to the #{client.team.name} team."
|
20
20
|
```
|
21
21
|
|
22
|
-
See [#56](https://github.com/
|
22
|
+
See [#56](https://github.com/slack-ruby/slack-ruby-client/issues/56) for more information.
|
23
23
|
|
24
24
|
#### Changes to RealTime Local Store
|
25
25
|
|
@@ -37,7 +37,7 @@ The `client.team` object is now a `Slack::RealTime::Models::Team`, which is a ch
|
|
37
37
|
|
38
38
|
The `client.users`, `.channels`, `.groups` and `.ims` collections have been changed from `Array` to `Hash`, with object ID as key. Replace any code iterating over the array, eg. `client.users.values.each` or `client.channels.each_pair { |id, channel| ... }`.
|
39
39
|
|
40
|
-
See [#55](https://github.com/
|
40
|
+
See [#55](https://github.com/slack-ruby/slack-ruby-client/issues/55) for more information.
|
41
41
|
|
42
42
|
### Upgrading to >= 0.5.0
|
43
43
|
|
@@ -59,6 +59,6 @@ gem 'celluloid-io'
|
|
59
59
|
|
60
60
|
When in doubt, use `faye-websocket`.
|
61
61
|
|
62
|
-
See [#5](https://github.com/
|
62
|
+
See [#5](https://github.com/slack-ruby/slack-ruby-client/issues/5) for more information.
|
63
63
|
|
64
64
|
|
@@ -38,11 +38,14 @@ module Slack
|
|
38
38
|
rescue EOFError => e
|
39
39
|
logger.debug("#{self.class}##{__method__}") { e }
|
40
40
|
driver.emit(:close, WebSocket::Driver::CloseEvent.new(1001, 'server closed connection')) unless @closing
|
41
|
+
ensure
|
42
|
+
current_actor.terminate if current_actor.alive?
|
41
43
|
end
|
42
44
|
|
43
45
|
def close
|
44
46
|
@closing = true
|
45
47
|
driver.close
|
48
|
+
super
|
46
49
|
end
|
47
50
|
|
48
51
|
def read
|
@@ -53,6 +53,10 @@ module Slack
|
|
53
53
|
fail NotImplementedError, "Expected #{self.class} to implement #{__method__}."
|
54
54
|
end
|
55
55
|
|
56
|
+
def close
|
57
|
+
@driver = nil
|
58
|
+
end
|
59
|
+
|
56
60
|
protected
|
57
61
|
|
58
62
|
def addr
|
@@ -77,10 +81,6 @@ module Slack
|
|
77
81
|
def connect
|
78
82
|
fail NotImplementedError, "Expected #{self.class} to implement #{__method__}."
|
79
83
|
end
|
80
|
-
|
81
|
-
def close(_event)
|
82
|
-
@driver = nil
|
83
|
-
end
|
84
84
|
end
|
85
85
|
end
|
86
86
|
end
|
data/lib/slack/version.rb
CHANGED
data/slack-ruby-client.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.files = `git ls-files`.split("\n")
|
14
14
|
s.test_files = `git ls-files -- spec/*`.split("\n")
|
15
15
|
s.require_paths = ['lib']
|
16
|
-
s.homepage = 'http://github.com/
|
16
|
+
s.homepage = 'http://github.com/slack-ruby/slack-ruby-client'
|
17
17
|
s.licenses = ['MIT']
|
18
18
|
s.summary = 'Slack Web and RealTime API client.'
|
19
19
|
s.add_dependency 'activesupport'
|
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require_relative './it_behaves_like_a_realtime_socket'
|
2
3
|
|
3
4
|
begin
|
4
5
|
RSpec.describe Slack::RealTime::Concurrency::Celluloid::Socket do
|
6
|
+
it_behaves_like 'a realtime socket'
|
5
7
|
context 'with url' do
|
6
8
|
let(:url) { 'wss://echo.websocket.org/websocket/xyz' }
|
7
9
|
let(:logger) { ::Logger.new(STDOUT) }
|
@@ -9,12 +11,6 @@ begin
|
|
9
11
|
let(:driver) { WebSocket::Driver::Client }
|
10
12
|
let(:ws) { double(driver) }
|
11
13
|
|
12
|
-
describe '#initialize' do
|
13
|
-
it 'sets url' do
|
14
|
-
expect(socket.url).to eq url
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
14
|
describe '#connect!' do
|
19
15
|
pending 'connects'
|
20
16
|
pending 'pings every 30s'
|
@@ -1,17 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require_relative './it_behaves_like_a_realtime_socket'
|
2
3
|
|
3
4
|
begin
|
4
5
|
RSpec.describe Slack::RealTime::Concurrency::Eventmachine::Socket do
|
6
|
+
it_behaves_like 'a realtime socket'
|
5
7
|
context 'with url' do
|
6
8
|
let(:url) { 'wss://ms174.slack-msgs.com/websocket/xyz' }
|
7
9
|
let(:logger) { ::Logger.new($stdout) }
|
8
10
|
let(:socket) { described_class.new(url, ping: 42, logger: logger) }
|
9
11
|
let(:ws) { double(Faye::WebSocket::Client) }
|
10
|
-
describe '#initialize' do
|
11
|
-
it 'sets url' do
|
12
|
-
expect(socket.url).to eq url
|
13
|
-
end
|
14
|
-
end
|
15
12
|
describe '#connect!' do
|
16
13
|
before do
|
17
14
|
allow(ws).to receive(:on).with(:close)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.shared_examples_for 'a realtime socket' do
|
4
|
+
let(:url) { 'wss://ms174.slack-msgs.com/websocket/xyz' }
|
5
|
+
let(:logger) { ::Logger.new($stdout) }
|
6
|
+
let(:socket) { described_class.new(url, ping: 42, logger: logger) }
|
7
|
+
describe '#initialize' do
|
8
|
+
it 'sets url' do
|
9
|
+
expect(socket.url).to eq url
|
10
|
+
end
|
11
|
+
end
|
12
|
+
describe 'api' do
|
13
|
+
[:start_sync, :start_sync, :disconnect!, :connect!, :connected?, :send_data, :close].each do |m|
|
14
|
+
it m do
|
15
|
+
expect(socket).to respond_to(m)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slack-ruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Doubrovkine
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -221,6 +221,7 @@ files:
|
|
221
221
|
- ".travis.yml"
|
222
222
|
- CHANGELOG.md
|
223
223
|
- CONTRIBUTING.md
|
224
|
+
- Dangerfile
|
224
225
|
- Gemfile
|
225
226
|
- LICENSE.md
|
226
227
|
- README.md
|
@@ -379,6 +380,7 @@ files:
|
|
379
380
|
- spec/slack/real_time/client_spec.rb
|
380
381
|
- spec/slack/real_time/concurrency/celluloid_spec.rb
|
381
382
|
- spec/slack/real_time/concurrency/eventmachine_spec.rb
|
383
|
+
- spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb
|
382
384
|
- spec/slack/real_time/event_handlers/bot_spec.rb
|
383
385
|
- spec/slack/real_time/event_handlers/channel_spec.rb
|
384
386
|
- spec/slack/real_time/event_handlers/event_handlers_spec.rb
|
@@ -427,7 +429,7 @@ files:
|
|
427
429
|
- spec/support/real_time/event.rb
|
428
430
|
- spec/support/token.rb
|
429
431
|
- spec/support/vcr.rb
|
430
|
-
homepage: http://github.com/
|
432
|
+
homepage: http://github.com/slack-ruby/slack-ruby-client
|
431
433
|
licenses:
|
432
434
|
- MIT
|
433
435
|
metadata: {}
|
@@ -469,6 +471,7 @@ test_files:
|
|
469
471
|
- spec/slack/real_time/client_spec.rb
|
470
472
|
- spec/slack/real_time/concurrency/celluloid_spec.rb
|
471
473
|
- spec/slack/real_time/concurrency/eventmachine_spec.rb
|
474
|
+
- spec/slack/real_time/concurrency/it_behaves_like_a_realtime_socket.rb
|
472
475
|
- spec/slack/real_time/event_handlers/bot_spec.rb
|
473
476
|
- spec/slack/real_time/event_handlers/channel_spec.rb
|
474
477
|
- spec/slack/real_time/event_handlers/event_handlers_spec.rb
|