slack-ruby-client 0.7.2 → 0.7.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cddbe0828a85f10ae1f1ba5750ebb7c2092ce320
4
- data.tar.gz: 5e65e541eb3dc373a49772ab0b5584ed043e848c
3
+ metadata.gz: 2e1cd2d1d9cbc3663ae0616b48855f34454e8ad4
4
+ data.tar.gz: 0e7cc755aa5623005a60d5e2d7d62a8c70596bdb
5
5
  SHA512:
6
- metadata.gz: 3b529246891dca92b7134462247c88a5b72730e5ebf1806fd15fcf55e72e709ce8134898c15aaeb777931a3f62c7b00c86579d877e3c234abc8ac0bee4883249
7
- data.tar.gz: 0a7a750afdcef449823797818ea192a02093908b140e4db145f64369151e4a1a4ead6503f22372b2239d918cc20f6212daae7d4e81eaa099f94e886325e3c2f4
6
+ metadata.gz: 3080aca20cc3a8d3f2d873f9192842806db73f18297e0b41784f5bd3d028d18eabda168331b1f3d883a1699c39f1776adf3a6d5a0881b402408b480f3156c6fd
7
+ data.tar.gz: a8b263005432280abf2b89f6d2495eb63890024336ea2d9f19e04d2078c0c45704acdbda38cb018b75d5afd651ae226b9dbe6e7189d2e6caf5e26d33ad0a3fba
@@ -1,3 +1,7 @@
1
+ ### 0.7.3 (5/14/2016)
2
+
3
+ * [#90](https://github.com/dblock/slack-ruby-client/issues/90): Fix: Celluloid concurrency handles server-side connection closing - [@dblock](https://github.com/dblock).
4
+
1
5
  ### 0.7.2 (5/5/2016)
2
6
 
3
7
  * [#84](https://github.com/dblock/slack-ruby-client/issues/84): Fix: Celluloid concurrency doesn't parallelize the connection setup - [@dblock](https://github.com/dblock).
data/README.md CHANGED
@@ -18,7 +18,7 @@ A Ruby client for the Slack [Web](https://api.slack.com/web) and [RealTime Messa
18
18
 
19
19
  ## Stable Release
20
20
 
21
- You're reading the documentation for the **stable** release of slack-ruby-client, 0.7.2. See [UPGRADING](UPGRADING.md) when upgrading from an older version.
21
+ You're reading the documentation for the **next** release of slack-ruby-client. Please see the documentation for the [last stable release, v0.7.2](https://github.com/dblock/slack-ruby-client/blob/v0.7.2/README.md) unless you're integrating with HEAD. See [UPGRADING](UPGRADING.md) when upgrading from an older version.
22
22
 
23
23
  ## Installation
24
24
 
@@ -306,18 +306,14 @@ Slack::RealTime.configure do |config|
306
306
  end
307
307
  ```
308
308
 
309
- Use `client.start_async` instead of `client.start!` if you don't want the library to control the event run loop, such as when integrating into other applications that already use Eventmachine or Celluloid. A good example of such application is [slack-bot-server](https://github.com/dblock/slack-bot-server).
309
+ Use `client.start_async` instead of `client.start!`. A good example of such application is [slack-bot-server](https://github.com/dblock/slack-bot-server).
310
310
 
311
311
  ```ruby
312
312
  client = Slack::RealTime::Client.new
313
313
 
314
- EM.run do
315
- client.start_async
316
- end
314
+ client.start_async
317
315
  ```
318
316
 
319
- See a fully working example in [examples/hi_real_time_async](examples/hi_real_time_async/hi.rb).
320
-
321
317
  ##### Faye::Websocket with Eventmachine
322
318
 
323
319
  Add the following to your Gemfile.
@@ -326,14 +322,20 @@ Add the following to your Gemfile.
326
322
  gem 'faye-websocket'
327
323
  ```
328
324
 
325
+ See a fully working example in [examples/hi_real_time_async_eventmachine](examples/hi_real_time_async_eventmachine/hi.rb).
326
+
329
327
  ##### Celluloid
330
328
 
331
329
  Add the following to your Gemfile.
332
330
 
333
331
  ```
334
- gem 'celluloid-io'
332
+ gem 'celluloid-io', require: ['celluloid/current', 'celluloid/io']
335
333
  ```
336
334
 
335
+ See a fully working example in [examples/hi_real_time_async_celluloid](examples/hi_real_time_async_celluloid/hi.rb).
336
+
337
+ Require
338
+
337
339
  ### Message Parsing
338
340
 
339
341
  All text in Slack uses the same [system of escaping](https://api.slack.com/docs/formatting): chat messages, direct messages, file comments, etc. Use [Slack::Messages::Formatting](lib/slack/messages/formatting.rb) to unescape incoming messages. This comes handy, for example, you want to treat all input to a real time bot as plain text.
@@ -2,4 +2,4 @@ source 'http://rubygems.org'
2
2
 
3
3
  gem 'slack-ruby-client', path: '../..'
4
4
 
5
- gem 'celluloid-io'
5
+ gem 'celluloid-io', require: ['celluloid/current', 'celluloid/io']
@@ -2,5 +2,5 @@ source 'http://rubygems.org'
2
2
 
3
3
  gem 'slack-ruby-client', path: '../..'
4
4
 
5
- gem 'celluloid-io'
5
+ gem 'celluloid-io', require: ['celluloid/current', 'celluloid/io']
6
6
  gem 'foreman'
@@ -30,12 +30,19 @@ module Slack
30
30
  end
31
31
 
32
32
  def run_loop
33
+ @closing = false
33
34
  @socket = build_socket
34
35
  @connected = @socket.connect
35
36
  driver.start
36
37
  loop { read } if socket
37
- rescue EOFError
38
- # connection closed
38
+ rescue EOFError => e
39
+ logger.debug("#{self.class}##{__method__}") { e }
40
+ driver.emit(:close, WebSocket::Driver::CloseEvent.new(1001, 'server closed connection')) unless @closing
41
+ end
42
+
43
+ def close
44
+ @closing = true
45
+ driver.close
39
46
  end
40
47
 
41
48
  def read
@@ -1,3 +1,3 @@
1
1
  module Slack
2
- VERSION = '0.7.2'.freeze
2
+ VERSION = '0.7.3'.freeze
3
3
  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.2
4
+ version: 0.7.3
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-05-05 00:00:00.000000000 Z
11
+ date: 2016-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -257,8 +257,6 @@ files:
257
257
  - examples/hi_real_time_and_web/Gemfile
258
258
  - examples/hi_real_time_and_web/hi.gif
259
259
  - examples/hi_real_time_and_web/hi.rb
260
- - examples/hi_real_time_async/Gemfile
261
- - examples/hi_real_time_async/hi.rb
262
260
  - examples/hi_real_time_async_celluloid/Gemfile
263
261
  - examples/hi_real_time_async_celluloid/Procfile
264
262
  - examples/hi_real_time_async_celluloid/hi.rb
@@ -440,7 +438,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
440
438
  version: 1.3.6
441
439
  requirements: []
442
440
  rubyforge_project:
443
- rubygems_version: 2.5.1
441
+ rubygems_version: 2.4.8
444
442
  signing_key:
445
443
  specification_version: 4
446
444
  summary: Slack Web and RealTime API client.
@@ -1,5 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- gem 'slack-ruby-client', path: '../..'
4
-
5
- gem 'faye-websocket'
@@ -1,29 +0,0 @@
1
- require 'slack-ruby-client'
2
-
3
- Slack.configure do |config|
4
- config.token = ENV['SLACK_API_TOKEN']
5
- fail 'Missing ENV[SLACK_API_TOKEN]!' unless config.token
6
- end
7
-
8
- client = Slack::RealTime::Client.new
9
-
10
- 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
- end
13
-
14
- client.on :message do |data|
15
- puts data
16
-
17
- client.typing channel: data.channel
18
-
19
- case data.text
20
- when 'bot hi' then
21
- client.message channel: data.channel, text: "Hi <@#{data.user}>!"
22
- when /^bot/ then
23
- client.message channel: data.channel, text: "Sorry <@#{data.user}>, what?"
24
- end
25
- end
26
-
27
- EM.run do
28
- client.start_async
29
- end