bridge-ruby 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +19 -0
- data/README.md +31 -0
- data/Rakefile +24 -0
- data/bridge-ruby.gemspec +24 -0
- data/doc/Bridge.html +276 -0
- data/doc/Bridge/Bridge.html +1874 -0
- data/doc/Bridge/Bridge/SystemService.html +396 -0
- data/doc/Bridge/Client.html +271 -0
- data/doc/Bridge/Connection.html +1180 -0
- data/doc/Bridge/Connection/SockBuffer.html +322 -0
- data/doc/Bridge/Reference.html +605 -0
- data/doc/Bridge/Serializer.html +405 -0
- data/doc/Bridge/Serializer/Callback.html +498 -0
- data/doc/Bridge/Tcp.html +657 -0
- data/doc/Bridge/Util.html +643 -0
- data/doc/Bridge/Util/CallbackReference.html +557 -0
- data/doc/OpenSSL/X509/Certificate.html +275 -0
- data/doc/SSLCertificateVerification.html +446 -0
- data/doc/_index.html +239 -0
- data/doc/class_list.html +53 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +57 -0
- data/doc/css/style.css +328 -0
- data/doc/file.README.html +106 -0
- data/doc/file_list.html +55 -0
- data/doc/frames.html +28 -0
- data/doc/index.html +106 -0
- data/doc/js/app.js +214 -0
- data/doc/js/full_list.js +173 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +772 -0
- data/doc/top-level-namespace.html +112 -0
- data/examples/channels/client-writeable.rb +24 -0
- data/examples/channels/client.rb +23 -0
- data/examples/channels/server.rb +24 -0
- data/examples/chat/chatclient.rb +21 -0
- data/examples/chat/chatserver.rb +24 -0
- data/examples/client-context/client.rb +21 -0
- data/examples/client-context/server.rb +25 -0
- data/examples/secure/example.rb +8 -0
- data/examples/simple/channels.rb +47 -0
- data/examples/simple/services.rb +41 -0
- data/include/ssl/cacert.pem +3331 -0
- data/lib/bridge-ruby.rb +441 -0
- data/lib/client.rb +14 -0
- data/lib/connection.rb +162 -0
- data/lib/reference.rb +49 -0
- data/lib/serializer.rb +104 -0
- data/lib/ssl_utils.rb +68 -0
- data/lib/tcp.rb +73 -0
- data/lib/util.rb +101 -0
- data/lib/version.rb +3 -0
- data/rakelib/package.rake +4 -0
- data/rakelib/test.rake +8 -0
- data/test/regression/reconnect.rb +48 -0
- data/test/regression/rpc.rb +39 -0
- data/test/regression/test.rb +58 -0
- data/test/unit/bridge_dummy.rb +26 -0
- data/test/unit/connection_dummy.rb +21 -0
- data/test/unit/reference_dummy.rb +11 -0
- data/test/unit/tcp_dummy.rb +12 -0
- data/test/unit/test.rb +20 -0
- data/test/unit/test_reference.rb +30 -0
- data/test/unit/test_serializer.rb +109 -0
- data/test/unit/test_tcp.rb +51 -0
- data/test/unit/test_util.rb +59 -0
- metadata +162 -0
@@ -0,0 +1,51 @@
|
|
1
|
+
require "bridge"
|
2
|
+
require_relative "connection_dummy.rb"
|
3
|
+
require "test/unit"
|
4
|
+
|
5
|
+
class TestTcp < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
|
9
|
+
end
|
10
|
+
|
11
|
+
def teardown
|
12
|
+
## Nothing really
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
def test_receive_data
|
17
|
+
dummy = ConnectionDummy.new
|
18
|
+
tcp = Bridge::Tcp.new nil, dummy
|
19
|
+
|
20
|
+
messages = ['abc', 'efghij', 'klmnop', 'rs', 't', 'uvwxyz']
|
21
|
+
messages_packed = messages.map do |arg|
|
22
|
+
[arg.length].pack("N") + arg
|
23
|
+
end
|
24
|
+
message = messages_packed.join
|
25
|
+
|
26
|
+
messages_packed.each do |arg|
|
27
|
+
tcp.receive_data arg
|
28
|
+
end
|
29
|
+
|
30
|
+
assert(dummy.onopened)
|
31
|
+
assert_equal(messages, dummy.messages)
|
32
|
+
|
33
|
+
|
34
|
+
5.times do
|
35
|
+
dummy.messages = []
|
36
|
+
|
37
|
+
message = messages_packed.join
|
38
|
+
|
39
|
+
pieces = rand(message.length) + 1
|
40
|
+
each_piece = message.length / pieces
|
41
|
+
while message.length > 0
|
42
|
+
if message.length > each_piece
|
43
|
+
tcp.receive_data(message.slice!(0, each_piece))
|
44
|
+
else
|
45
|
+
tcp.receive_data(message.slice!(0..-1))
|
46
|
+
end
|
47
|
+
end
|
48
|
+
assert_equal(messages, dummy.messages)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require "bridge"
|
2
|
+
require_relative "bridge_dummy.rb"
|
3
|
+
require "test/unit"
|
4
|
+
|
5
|
+
class TestUtil < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
|
9
|
+
end
|
10
|
+
|
11
|
+
def teardown
|
12
|
+
## Nothing really
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_generate_guid
|
16
|
+
ids = {}
|
17
|
+
(1..10).each do
|
18
|
+
id = Bridge::Util.generate_guid
|
19
|
+
assert_equal(12, id.length)
|
20
|
+
assert(!ids.key?(id))
|
21
|
+
ids[id] = true
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_stringify_and_parse
|
26
|
+
data = {'a' => 1, 'b' => "test code", 'c' => {}, 'd' => [1,false,nil,"asdf",{'a' => 1, 'b' => 2}]}
|
27
|
+
assert_equal(Bridge::Util.parse(Bridge::Util.stringify(data)), data)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_ref_callback
|
31
|
+
dummy = BridgeDummy.new
|
32
|
+
dest = ['x', 'x', 'x']
|
33
|
+
|
34
|
+
dest_ref = Bridge::Reference.new(dummy, dest + ["callback"]).to_dict
|
35
|
+
|
36
|
+
ref = Bridge::Reference.new dummy, dest
|
37
|
+
|
38
|
+
cb = Bridge::Util.ref_callback ref
|
39
|
+
|
40
|
+
assert_instance_of(Bridge::Util::CallbackReference, cb)
|
41
|
+
assert_equal(ref.to_dict, cb.to_dict)
|
42
|
+
|
43
|
+
args = [1,2,3]
|
44
|
+
blk = lambda {1}
|
45
|
+
args << blk
|
46
|
+
cb.call args, &blk
|
47
|
+
|
48
|
+
assert_equal(args, *dummy.last_args)
|
49
|
+
assert_equal(dest_ref, dummy.last_dest)
|
50
|
+
|
51
|
+
args = [4,5,6]
|
52
|
+
blk = lambda {2}
|
53
|
+
args << blk
|
54
|
+
cb.callback args, &blk
|
55
|
+
|
56
|
+
assert_equal(args, *dummy.last_args)
|
57
|
+
assert_equal(dest_ref, dummy.last_dest)
|
58
|
+
end
|
59
|
+
end
|
metadata
ADDED
@@ -0,0 +1,162 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bridge-ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- ''
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-06-24 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: eventmachine
|
16
|
+
requirement: &70092868833700 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.12.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70092868833700
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: json
|
27
|
+
requirement: &70092868833200 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.5.0
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70092868833200
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: yard
|
38
|
+
requirement: &70092868832740 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.7.2
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70092868832740
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rake-compiler
|
49
|
+
requirement: &70092868832280 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.7.9
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70092868832280
|
58
|
+
description: Bridge client for Ruby.
|
59
|
+
email:
|
60
|
+
- team@getbridge.com
|
61
|
+
executables: []
|
62
|
+
extensions: []
|
63
|
+
extra_rdoc_files:
|
64
|
+
- README.md
|
65
|
+
files:
|
66
|
+
- LICENSE
|
67
|
+
- README.md
|
68
|
+
- Rakefile
|
69
|
+
- bridge-ruby.gemspec
|
70
|
+
- doc/Bridge.html
|
71
|
+
- doc/Bridge/Bridge.html
|
72
|
+
- doc/Bridge/Bridge/SystemService.html
|
73
|
+
- doc/Bridge/Client.html
|
74
|
+
- doc/Bridge/Connection.html
|
75
|
+
- doc/Bridge/Connection/SockBuffer.html
|
76
|
+
- doc/Bridge/Reference.html
|
77
|
+
- doc/Bridge/Serializer.html
|
78
|
+
- doc/Bridge/Serializer/Callback.html
|
79
|
+
- doc/Bridge/Tcp.html
|
80
|
+
- doc/Bridge/Util.html
|
81
|
+
- doc/Bridge/Util/CallbackReference.html
|
82
|
+
- doc/OpenSSL/X509/Certificate.html
|
83
|
+
- doc/SSLCertificateVerification.html
|
84
|
+
- doc/_index.html
|
85
|
+
- doc/class_list.html
|
86
|
+
- doc/css/common.css
|
87
|
+
- doc/css/full_list.css
|
88
|
+
- doc/css/style.css
|
89
|
+
- doc/file.README.html
|
90
|
+
- doc/file_list.html
|
91
|
+
- doc/frames.html
|
92
|
+
- doc/index.html
|
93
|
+
- doc/js/app.js
|
94
|
+
- doc/js/full_list.js
|
95
|
+
- doc/js/jquery.js
|
96
|
+
- doc/method_list.html
|
97
|
+
- doc/top-level-namespace.html
|
98
|
+
- examples/channels/client-writeable.rb
|
99
|
+
- examples/channels/client.rb
|
100
|
+
- examples/channels/server.rb
|
101
|
+
- examples/chat/chatclient.rb
|
102
|
+
- examples/chat/chatserver.rb
|
103
|
+
- examples/client-context/client.rb
|
104
|
+
- examples/client-context/server.rb
|
105
|
+
- examples/secure/example.rb
|
106
|
+
- examples/simple/channels.rb
|
107
|
+
- examples/simple/services.rb
|
108
|
+
- include/ssl/cacert.pem
|
109
|
+
- lib/bridge-ruby.rb
|
110
|
+
- lib/client.rb
|
111
|
+
- lib/connection.rb
|
112
|
+
- lib/reference.rb
|
113
|
+
- lib/serializer.rb
|
114
|
+
- lib/ssl_utils.rb
|
115
|
+
- lib/tcp.rb
|
116
|
+
- lib/util.rb
|
117
|
+
- lib/version.rb
|
118
|
+
- rakelib/package.rake
|
119
|
+
- rakelib/test.rake
|
120
|
+
- test/regression/reconnect.rb
|
121
|
+
- test/regression/rpc.rb
|
122
|
+
- test/regression/test.rb
|
123
|
+
- test/unit/bridge_dummy.rb
|
124
|
+
- test/unit/connection_dummy.rb
|
125
|
+
- test/unit/reference_dummy.rb
|
126
|
+
- test/unit/tcp_dummy.rb
|
127
|
+
- test/unit/test.rb
|
128
|
+
- test/unit/test_reference.rb
|
129
|
+
- test/unit/test_serializer.rb
|
130
|
+
- test/unit/test_tcp.rb
|
131
|
+
- test/unit/test_util.rb
|
132
|
+
homepage: http://getbridge.com
|
133
|
+
licenses: []
|
134
|
+
post_install_message:
|
135
|
+
rdoc_options:
|
136
|
+
- --title
|
137
|
+
- Bridge
|
138
|
+
- --main
|
139
|
+
- README.md
|
140
|
+
- -x
|
141
|
+
- lib/version
|
142
|
+
require_paths:
|
143
|
+
- lib
|
144
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0'
|
150
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
152
|
+
requirements:
|
153
|
+
- - ! '>='
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
156
|
+
requirements: []
|
157
|
+
rubyforge_project:
|
158
|
+
rubygems_version: 1.8.10
|
159
|
+
signing_key:
|
160
|
+
specification_version: 3
|
161
|
+
summary: Ruby/Bridge library
|
162
|
+
test_files: []
|