Files | Admin

Notes:

Release Name: 0.2.0

Notes:
Sunshowers is a Ruby library for Web Sockets.  It exposes an easy-to-use
API that may be used in both clients and servers.  On the server side,
it is designed to work with Rack::Request and Rainbows! concurrency
models that expose a synchronous application flow.  On the client side,
it may be used as a standalone wrapper for IO-like objects.

* http://rainbows.rubyforge.org/sunshowers/
* sunshowers@librelist.com
* git://git.bogomips.org/sunshowers.git

Changes:

The ws_handshake! method now accepts optional headers, as
cookies should be settable during the handshake process.  Header
rules are exactly the same as normal Rack response headers and
typically a Hash with String keys and newline-delimited values.

Sunshowers::IO#gets now discards binary frames as dictated by
the current IETF draft specification (66).  Setting
Sunshowers::IO#keep_binary=true will revert to the old (and
hopefully future) behavior on a per-object basis.  Do not expect
the +keep_binary+ member of Sunshowers::IO Struct to become part
of the a stable API.



Changes: .gitignore | 1 + lib/sunshowers.rb | 4 +- lib/sunshowers/io.rb | 33 +++++++--- lib/sunshowers/request.rb | 6 ++- lib/sunshowers/web_socket.rb | 24 +++++--- test/test_io.rb | 3 + test/test_request.rb | 139 ++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 191 insertions(+), 19 deletions(-) commit b238af1ac61d1410ad1117f0fd367bd13d8bbbca Author: Eric Wong Date: Mon Dec 14 02:59:26 2009 -0800 Sunshowers 0.2.0 The ws_handshake! method now accepts optional headers, as cookies should be settable during the handshake process. Header rules are exactly the same as normal Rack response headers and typically a Hash with String keys and newline-delimited values. Sunshowers::IO#gets now discards binary frames as dictated by the current IETF draft specification (66). Setting Sunshowers::IO#keep_binary=true will revert to the old (and hopefully future) behavior on a per-object basis. Do not expect the +keep_binary+ member of Sunshowers::IO Struct to become part of the a stable API. Eric Wong (8): RDoc version constant ws_handshake! may now accept headers request: raise HandshakeError correctly if ws? is false test_request: add PATH_INFO by default test_request: more unit tests io: discard binary frames .gitignore: ignore downloaded drafts more RDoc commit 70badb44746163b195ed76a5c3c86b65ad7a7ba5 Author: Eric Wong Date: Mon Dec 14 02:40:12 2009 -0800 more RDoc commit 6ceffdb2a8729796c9ba4cf14781db4cd0c6f429 Author: Eric Wong Date: Mon Dec 14 02:21:22 2009 -0800 .gitignore: ignore downloaded drafts commit 000a0fbb6fd04ed2cf75aba4117df6755d71f895 Author: Eric Wong Date: Mon Dec 14 01:47:28 2009 -0800 io: discard binary frames Unfortunately the current draft (rev 66) actually specifies that binary frames should be read but then immediately discarded. As in discarded into the ether, not discarded back to the caller :< I guess implementing voice chat via Web Sockets isn't its primary goal... commit 89b83cf2b809a1a8a4b5aa6b24fed043e541b3ba Author: Eric Wong Date: Mon Dec 14 01:30:50 2009 -0800 test_request: more unit tests commit ea77ab1520156120107409dd76e5da2d614cc265 Author: Eric Wong Date: Mon Dec 14 01:20:46 2009 -0800 test_request: add PATH_INFO by default commit 4650ef7854dae721677f818ccc569bcfe0d650d9 Author: Eric Wong Date: Mon Dec 14 01:17:59 2009 -0800 request: raise HandshakeError correctly if ws? is false commit 39c425145ab19821cde635ba852f5a882db4736d Author: Eric Wong Date: Mon Dec 14 00:47:24 2009 -0800 ws_handshake! may now accept headers Headers follow the same rules as Rack headers, and must respond to headers#each and yield two String objects (key, value). commit bfe4bb4bba06df2470d503e65d5e37201d956d87 Author: Eric Wong Date: Sun Dec 13 23:48:53 2009 -0800 RDoc version constant