libwebsocket 0.0.4 → 0.1.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.
data/README.md CHANGED
@@ -5,7 +5,7 @@ be one. It can be used in any server, event loop etc.
5
5
 
6
6
  ## Server handshake
7
7
 
8
- h = LibWebSocket::Handshake::Server.new
8
+ h = LibWebSocket::OpeningHandshake::Server.new
9
9
 
10
10
  # Parse client request
11
11
  h.parse \<<EOF
@@ -34,7 +34,7 @@ be one. It can be used in any server, event loop etc.
34
34
 
35
35
  ## Client handshake
36
36
 
37
- h = LibWebSocket::Handshake::Client.new(url => 'ws://example.com')
37
+ h = LibWebSocket::OpeningHandshake::Client.new(url => 'ws://example.com')
38
38
 
39
39
  # Create request
40
40
  h.to_s # GET /demo HTTP/1.1
@@ -6,7 +6,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../lib/libwebsocket')
6
6
 
7
7
  module EchoServer
8
8
  def receive_data(data)
9
- @hs ||= LibWebSocket::Handshake::Server.new
9
+ @hs ||= LibWebSocket::OpeningHandshake::Server.new
10
10
  @frame ||= LibWebSocket::Frame.new
11
11
 
12
12
  if !@hs.done?
@@ -4,7 +4,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../lib/libwebsocket')
4
4
  class WebSocket
5
5
 
6
6
  def initialize(url, params = {})
7
- @hs ||= LibWebSocket::Handshake::Client.new(:url => url, :version => params[:version])
7
+ @hs ||= LibWebSocket::OpeningHandshake::Client.new(:url => url, :version => params[:version])
8
8
  @frame ||= LibWebSocket::Frame.new
9
9
 
10
10
  @socket = TCPSocket.new(@hs.url.host, @hs.url.port || 80)
@@ -35,7 +35,7 @@ end
35
35
 
36
36
  class EchoServer
37
37
  def call(env)
38
- @hs ||= LibWebSocket::Handshake::Server.new
38
+ @hs ||= LibWebSocket::OpeningHandshake::Server.new
39
39
  @connection = env['async.connection']
40
40
 
41
41
  if !@hs.done?
data/lib/libwebsocket.rb CHANGED
@@ -3,15 +3,15 @@
3
3
  # or clients to provide WebSocket support.
4
4
  module LibWebSocket
5
5
 
6
- VERSION = '0.0.4' # Version of LibWebSocket
6
+ VERSION = '0.1.0' # Version of LibWebSocket
7
7
 
8
- autoload :Cookie, "#{File.dirname(__FILE__)}/libwebsocket/cookie"
9
- autoload :Frame, "#{File.dirname(__FILE__)}/libwebsocket/frame"
10
- autoload :Handshake, "#{File.dirname(__FILE__)}/libwebsocket/handshake"
11
- autoload :Message, "#{File.dirname(__FILE__)}/libwebsocket/message"
12
- autoload :Request, "#{File.dirname(__FILE__)}/libwebsocket/request"
13
- autoload :Response, "#{File.dirname(__FILE__)}/libwebsocket/response"
14
- autoload :Stateful, "#{File.dirname(__FILE__)}/libwebsocket/stateful"
15
- autoload :URL, "#{File.dirname(__FILE__)}/libwebsocket/url"
8
+ autoload :Cookie, "#{File.dirname(__FILE__)}/libwebsocket/cookie"
9
+ autoload :Frame, "#{File.dirname(__FILE__)}/libwebsocket/frame"
10
+ autoload :OpeningHandshake, "#{File.dirname(__FILE__)}/libwebsocket/opening_handshake"
11
+ autoload :Message, "#{File.dirname(__FILE__)}/libwebsocket/message"
12
+ autoload :Request, "#{File.dirname(__FILE__)}/libwebsocket/request"
13
+ autoload :Response, "#{File.dirname(__FILE__)}/libwebsocket/response"
14
+ autoload :Stateful, "#{File.dirname(__FILE__)}/libwebsocket/stateful"
15
+ autoload :URL, "#{File.dirname(__FILE__)}/libwebsocket/url"
16
16
 
17
17
  end
@@ -1,9 +1,9 @@
1
1
  module LibWebSocket
2
- # This is a base class for LibWebSocket::Handshake::Client and LibWebSocket::Handshake::Server.
3
- class Handshake
2
+ # This is a base class for LibWebSocket::OpeningHandshake::Client and LibWebSocket::OpeningHandshake::Server.
3
+ class OpeningHandshake
4
4
 
5
- autoload :Client, "#{File.dirname(__FILE__)}/handshake/client"
6
- autoload :Server, "#{File.dirname(__FILE__)}/handshake/server"
5
+ autoload :Client, "#{File.dirname(__FILE__)}/opening_handshake/client"
6
+ autoload :Server, "#{File.dirname(__FILE__)}/opening_handshake/server"
7
7
 
8
8
  attr_accessor :secure, :error
9
9
 
@@ -1,12 +1,12 @@
1
1
  module LibWebSocket
2
- class Handshake
2
+ class OpeningHandshake
3
3
  # Construct or parse a client WebSocket handshake. This module is written for
4
4
  # convenience, since using request and response directly requires the same code
5
5
  # again and again.
6
6
  #
7
7
  # SYNOPSIS
8
8
  #
9
- # h = LibWebSocket::Handshake::Client.new(:url => 'ws://example.com')
9
+ # h = LibWebSocket::OpeningHandshake::Client.new(:url => 'ws://example.com')
10
10
  #
11
11
  # # Create request
12
12
  # h.to_s # GET /demo HTTP/1.1
@@ -32,7 +32,7 @@ module LibWebSocket
32
32
  #
33
33
  # h.error # Check if there were any errors
34
34
  # h.done? # Returns true
35
- class Client < Handshake
35
+ class Client < OpeningHandshake
36
36
 
37
37
  attr_accessor :url
38
38
 
@@ -1,12 +1,12 @@
1
1
  module LibWebSocket
2
- class Handshake
2
+ class OpeningHandshake
3
3
  # Construct or parse a server WebSocket handshake. This module is written for
4
4
  # convenience, since using request and response directly requires the same code
5
5
  # again and again.
6
6
  #
7
7
  # SYNOPSIS
8
8
  #
9
- # h = LibWebSocket::Handshake::Server.new
9
+ # h = LibWebSocket::OpeningHandshake::Server.new
10
10
  #
11
11
  # # Parse client request
12
12
  # h.parse \<<EOF
@@ -32,7 +32,7 @@ module LibWebSocket
32
32
  # # Sec-WebSocket-Location: ws://example.com/demo
33
33
  # #
34
34
  # # fQJ,fN/4F4!~K~MH
35
- class Server < Handshake
35
+ class Server < OpeningHandshake
36
36
 
37
37
  # Parse client request
38
38
  # @example
@@ -158,7 +158,7 @@ module LibWebSocket
158
158
  protected
159
159
 
160
160
  def parse_first_line(line)
161
- unless line == 'HTTP/1.1 101 WebSocket Protocol Handshake'
161
+ unless line =~ /\AHTTP\/1.1 101 .+/
162
162
  self.error = 'Wrong response line'
163
163
  return
164
164
  end
@@ -0,0 +1,90 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{libwebsocket}
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Bernard Potocki"]
12
+ s.date = %q{2010-12-05}
13
+ s.description = %q{Universal Ruby library to handle WebSocket protocol}
14
+ s.email = %q{bernard.potocki@imanel.org}
15
+ s.extra_rdoc_files = [
16
+ "README.md"
17
+ ]
18
+ s.files = [
19
+ "README.md",
20
+ "Rakefile",
21
+ "examples/eventmachine_server.rb",
22
+ "examples/plain_client.rb",
23
+ "examples/thin_server.rb",
24
+ "lib/libwebsocket.rb",
25
+ "lib/libwebsocket/cookie.rb",
26
+ "lib/libwebsocket/cookie/request.rb",
27
+ "lib/libwebsocket/cookie/response.rb",
28
+ "lib/libwebsocket/frame.rb",
29
+ "lib/libwebsocket/message.rb",
30
+ "lib/libwebsocket/opening_handshake.rb",
31
+ "lib/libwebsocket/opening_handshake/client.rb",
32
+ "lib/libwebsocket/opening_handshake/server.rb",
33
+ "lib/libwebsocket/request.rb",
34
+ "lib/libwebsocket/response.rb",
35
+ "lib/libwebsocket/stateful.rb",
36
+ "lib/libwebsocket/url.rb",
37
+ "libwebsocket.gemspec",
38
+ "test/libwebsocket/cookie/request.rb",
39
+ "test/libwebsocket/cookie/response.rb",
40
+ "test/libwebsocket/opening_handshake/test_client.rb",
41
+ "test/libwebsocket/opening_handshake/test_server.rb",
42
+ "test/libwebsocket/test_cookie.rb",
43
+ "test/libwebsocket/test_frame.rb",
44
+ "test/libwebsocket/test_message.rb",
45
+ "test/libwebsocket/test_request_75.rb",
46
+ "test/libwebsocket/test_request_76.rb",
47
+ "test/libwebsocket/test_request_common.rb",
48
+ "test/libwebsocket/test_response_75.rb",
49
+ "test/libwebsocket/test_response_76.rb",
50
+ "test/libwebsocket/test_response_common.rb",
51
+ "test/libwebsocket/test_url.rb",
52
+ "test/test_helper.rb"
53
+ ]
54
+ s.homepage = %q{http://github.com/imanel/libwebsocket}
55
+ s.rdoc_options = ["--charset=UTF-8"]
56
+ s.require_paths = ["lib"]
57
+ s.rubygems_version = %q{1.3.7}
58
+ s.summary = %q{Universal Ruby library to handle WebSocket protocol}
59
+ s.test_files = [
60
+ "test/libwebsocket/cookie/request.rb",
61
+ "test/libwebsocket/cookie/response.rb",
62
+ "test/libwebsocket/opening_handshake/test_client.rb",
63
+ "test/libwebsocket/opening_handshake/test_server.rb",
64
+ "test/libwebsocket/test_cookie.rb",
65
+ "test/libwebsocket/test_frame.rb",
66
+ "test/libwebsocket/test_message.rb",
67
+ "test/libwebsocket/test_request_75.rb",
68
+ "test/libwebsocket/test_request_76.rb",
69
+ "test/libwebsocket/test_request_common.rb",
70
+ "test/libwebsocket/test_response_75.rb",
71
+ "test/libwebsocket/test_response_76.rb",
72
+ "test/libwebsocket/test_response_common.rb",
73
+ "test/libwebsocket/test_url.rb",
74
+ "test/test_helper.rb",
75
+ "examples/eventmachine_server.rb",
76
+ "examples/plain_client.rb",
77
+ "examples/thin_server.rb"
78
+ ]
79
+
80
+ if s.respond_to? :specification_version then
81
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
82
+ s.specification_version = 3
83
+
84
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
85
+ else
86
+ end
87
+ else
88
+ end
89
+ end
90
+
@@ -1,9 +1,9 @@
1
1
  require 'test_helper'
2
2
 
3
- class TestServerHandshake < Test::Unit::TestCase
3
+ class TestServerOpeningHandshake < Test::Unit::TestCase
4
4
 
5
5
  def test_to_s
6
- h = LibWebSocket::Handshake::Client.new
6
+ h = LibWebSocket::OpeningHandshake::Client.new
7
7
  h.url = 'ws://example.com/demo'
8
8
 
9
9
  # Mocking
@@ -21,7 +21,7 @@ class TestServerHandshake < Test::Unit::TestCase
21
21
  "Content-Length: 8\x0d\x0a" +
22
22
  "\x0d\x0aTm[K T2u"
23
23
 
24
- h = LibWebSocket::Handshake::Client.new(:url => 'ws://example.com')
24
+ h = LibWebSocket::OpeningHandshake::Client.new(:url => 'ws://example.com')
25
25
 
26
26
  # Mocking
27
27
  h.req.key1 = "18x 6]8vM;54 *(5: { U1]8 z [ 8"
@@ -52,11 +52,11 @@ class TestServerHandshake < Test::Unit::TestCase
52
52
  assert h.done?
53
53
 
54
54
  message = "HTTP/1.1 101 WebSocket Protocol Handshake\x0d\x0a"
55
- h = LibWebSocket::Handshake::Client.new(:url => 'ws://example.com')
55
+ h = LibWebSocket::OpeningHandshake::Client.new(:url => 'ws://example.com')
56
56
  assert h.parse(message)
57
57
  assert !h.error
58
58
 
59
- h = LibWebSocket::Handshake::Client.new
59
+ h = LibWebSocket::OpeningHandshake::Client.new
60
60
  assert !h.parse("HTTP/1.0 foo bar\x0d\x0a")
61
61
  assert_equal 'Wrong response line', h.error
62
62
  end
@@ -1,9 +1,9 @@
1
1
  require 'test_helper'
2
2
 
3
- class TestServerHandshake < Test::Unit::TestCase
3
+ class TestServerOpeningHandshake < Test::Unit::TestCase
4
4
 
5
5
  def test_parse
6
- h = LibWebSocket::Handshake::Server.new
6
+ h = LibWebSocket::OpeningHandshake::Server.new
7
7
  assert !h.done?
8
8
  assert h.parse('')
9
9
 
@@ -27,11 +27,11 @@ class TestServerHandshake < Test::Unit::TestCase
27
27
  "fQJ,fN/4F4!~K~MH";
28
28
 
29
29
  message = "GET /demo HTTP/1.1\x0d\x0a"
30
- h = LibWebSocket::Handshake::Server.new
30
+ h = LibWebSocket::OpeningHandshake::Server.new
31
31
  assert h.parse(message)
32
32
  assert_nil h.error
33
33
 
34
- h = LibWebSocket::Handshake::Server.new
34
+ h = LibWebSocket::OpeningHandshake::Server.new
35
35
  assert_nil h.parse("GET /demo\x0d\x0a")
36
36
  assert_equal 'Wrong request line', h.error
37
37
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libwebsocket
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
+ - 1
8
9
  - 0
9
- - 4
10
- version: 0.0.4
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Bernard Potocki
@@ -38,18 +38,19 @@ files:
38
38
  - lib/libwebsocket/cookie/request.rb
39
39
  - lib/libwebsocket/cookie/response.rb
40
40
  - lib/libwebsocket/frame.rb
41
- - lib/libwebsocket/handshake.rb
42
- - lib/libwebsocket/handshake/client.rb
43
- - lib/libwebsocket/handshake/server.rb
44
41
  - lib/libwebsocket/message.rb
42
+ - lib/libwebsocket/opening_handshake.rb
43
+ - lib/libwebsocket/opening_handshake/client.rb
44
+ - lib/libwebsocket/opening_handshake/server.rb
45
45
  - lib/libwebsocket/request.rb
46
46
  - lib/libwebsocket/response.rb
47
47
  - lib/libwebsocket/stateful.rb
48
48
  - lib/libwebsocket/url.rb
49
+ - libwebsocket.gemspec
49
50
  - test/libwebsocket/cookie/request.rb
50
51
  - test/libwebsocket/cookie/response.rb
51
- - test/libwebsocket/handshake/test_client.rb
52
- - test/libwebsocket/handshake/test_server.rb
52
+ - test/libwebsocket/opening_handshake/test_client.rb
53
+ - test/libwebsocket/opening_handshake/test_server.rb
53
54
  - test/libwebsocket/test_cookie.rb
54
55
  - test/libwebsocket/test_frame.rb
55
56
  - test/libwebsocket/test_message.rb
@@ -98,8 +99,8 @@ summary: Universal Ruby library to handle WebSocket protocol
98
99
  test_files:
99
100
  - test/libwebsocket/cookie/request.rb
100
101
  - test/libwebsocket/cookie/response.rb
101
- - test/libwebsocket/handshake/test_client.rb
102
- - test/libwebsocket/handshake/test_server.rb
102
+ - test/libwebsocket/opening_handshake/test_client.rb
103
+ - test/libwebsocket/opening_handshake/test_server.rb
103
104
  - test/libwebsocket/test_cookie.rb
104
105
  - test/libwebsocket/test_frame.rb
105
106
  - test/libwebsocket/test_message.rb