tubesock 0.1.3 → 0.2.0

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: 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