tubesock 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0a5fc91c6e49797a1595e75ac1fa8425259370a3
4
- data.tar.gz: 3af86ddcbe0fe0cf80aac51d25f27420ca2bb444
3
+ metadata.gz: 641bbc3cadfe10190a32eba8504b498fd2bbd080
4
+ data.tar.gz: 715eb149abbe8e475ce89ef8556d4e05586231a7
5
5
  SHA512:
6
- metadata.gz: b6fa82ff09d335de5942b2ee415a328c15a40ba579f82f1f1293dd6c40de9edb100eb633384d1debb7cde05c017ff69239e9ceff8da37bf8f8c583a9338757aa
7
- data.tar.gz: 3b5050954b14fafc27df74ddaabb5a34f3e8399db95e3d256f5b71c14385f803a28a552a026fd679c2c3ec5e43408b9b0c3881806343e1dd2cc5129edf9d3f1f
6
+ metadata.gz: a20f7fbb5814018a5faa5b882e80d3701db747ca8b7808933a1cb707a7df2095ddf788067196ddd98ab202607b37dd2fd3c71802e11c022b8be0913b2552381d
7
+ data.tar.gz: 37db65ca33059d3af8b9a2c5d06cf44e2cc7ffbc8abdb5c8dae76feebe3928bb87ab17fc28ee0512cec591e618104f362fee065d9cc082e6a33cc8466ea2d281
data/Gemfile CHANGED
@@ -1,5 +1,3 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in tubesock.gemspec
4
- gem "websocket", github: "imanel/websocket-ruby", ref: "49cc8e00eca912726c9980ccb6c927afd718c2de"
5
3
  gemspec
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Tubesock lets you use websockets from rack and rails 4+ by using Rack's new hijack interface to access the underlying socket connection.
6
6
 
7
- In contrast to other websocket libraries, Tubesock does not use a reactor (read: no eventmachine). Instead, it leverages Rails 4's new full-stack concurrency support. Note that this means you must use a concurrent server. We recommend Puma.
7
+ In contrast to other websocket libraries, Tubesock does not use a reactor (read: no eventmachine). Instead, it leverages Rails 4's new full-stack concurrency support. Note that this means you must use a concurrent server. We recommend Puma > 2.0.0.
8
8
 
9
9
  ## Installation
10
10
 
@@ -12,9 +12,6 @@ Add this line to your application's Gemfile:
12
12
 
13
13
  ```ruby
14
14
  gem 'tubesock'
15
- # currently, the ability to setup a websocket from rack is only
16
- # available on my fork. If/when the PR is merged this will become a gem dependency
17
- gem 'websocket', github: "ngauthier/websocket-ruby"
18
15
  ```
19
16
 
20
17
  And then execute:
@@ -59,19 +56,17 @@ class ChatController < ApplicationController
59
56
  def chat
60
57
  hijack do |tubesock|
61
58
  tubesock.onopen do
62
- tubesock.send_data message: "Hello, friend"
59
+ tubesock.send_data "Hello, friend"
63
60
  end
64
61
 
65
62
  tubesock.onmessage do |data|
66
- tubesock.send_data message: "You said: #{data[:message]}"
63
+ tubesock.send_data "You said: #{data}"
67
64
  end
68
65
  end
69
66
  end
70
67
  end
71
68
  ```
72
69
 
73
- For a full example, check out [Tubesock Example](http://github.com/ngauthier/tubesock-example).
74
-
75
70
  ## Contributing
76
71
 
77
72
  1. Fork it
data/lib/tubesock.rb CHANGED
@@ -36,7 +36,7 @@ class Tubesock
36
36
  def send_data data, type = :text
37
37
  frame = WebSocket::Frame::Outgoing::Server.new(
38
38
  version: @version,
39
- data: JSON.dump(data),
39
+ data: data,
40
40
  type: type
41
41
  )
42
42
  @socket.write frame.to_s
@@ -61,7 +61,7 @@ class Tubesock
61
61
  Thread.current.abort_on_exception = true
62
62
  @open_handlers.each(&:call)
63
63
  each_frame do |data|
64
- @message_handlers.each{|h| h.call(JSON.load(data)) }
64
+ @message_handlers.each{|h| h.call(data) }
65
65
  end
66
66
  @close_handlers.each(&:call)
67
67
  @socket.close
@@ -1,3 +1,3 @@
1
1
  class Tubesock
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.0"
3
3
  end
data/test/test_helper.rb CHANGED
@@ -42,10 +42,10 @@ class Tubesock::TestCase::TestInteraction
42
42
  @client_socket << message
43
43
  end
44
44
 
45
- def write(message)
45
+ def write(data)
46
46
  write_raw WebSocket::Frame::Outgoing::Client.new(
47
47
  version: version,
48
- data: JSON.dump(message),
48
+ data: data,
49
49
  type: :text
50
50
  ).to_s
51
51
  end
@@ -54,7 +54,7 @@ class Tubesock::TestCase::TestInteraction
54
54
  framebuffer = WebSocket::Frame::Incoming::Client.new(version: version)
55
55
  data, addrinfo = @client_socket.recvfrom(2000)
56
56
  framebuffer << data
57
- JSON.load(framebuffer.next.data)
57
+ framebuffer.next.data
58
58
  end
59
59
 
60
60
  def join
@@ -25,13 +25,13 @@ class TubesockTest < Tubesock::TestCase
25
25
  tubesock.onclose &closed
26
26
 
27
27
  tubesock.onmessage do |message|
28
- tubesock.send_data message: "Hello #{message["name"]}"
28
+ tubesock.send_data "Hello #{message}"
29
29
  end
30
30
  end
31
31
 
32
- interaction.write name: "Nick"
32
+ interaction.write "Nick"
33
33
  data = interaction.read
34
- data["message"].must_equal "Hello Nick"
34
+ data.must_equal "Hello Nick"
35
35
  interaction.close
36
36
 
37
37
  opened.called.must_equal true
data/tubesock.gemspec CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency "rack", "> 1.5.0"
22
- spec.add_dependency "websocket" # TODO specify the new version when my PR is merged
21
+ spec.add_dependency "rack", ">= 1.5.0"
22
+ spec.add_dependency "websocket", ">= 1.1.0"
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.3"
25
25
  spec.add_development_dependency "rake"
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tubesock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Gauthier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-11 00:00:00.000000000 Z
11
+ date: 2013-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>'
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: 1.5.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>'
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.5.0
27
27
  - !ruby/object:Gem::Dependency
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - '>='
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 1.1.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '>='
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 1.1.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -147,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
147
147
  version: '0'
148
148
  requirements: []
149
149
  rubyforge_project:
150
- rubygems_version: 2.0.3
150
+ rubygems_version: 2.0.2
151
151
  signing_key:
152
152
  specification_version: 4
153
153
  summary: Handle websocket connections via Rack and Rails 4 using concurrency