bridge-ruby 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. data/LICENSE +19 -0
  2. data/README.md +31 -0
  3. data/Rakefile +24 -0
  4. data/bridge-ruby.gemspec +24 -0
  5. data/doc/Bridge.html +276 -0
  6. data/doc/Bridge/Bridge.html +1874 -0
  7. data/doc/Bridge/Bridge/SystemService.html +396 -0
  8. data/doc/Bridge/Client.html +271 -0
  9. data/doc/Bridge/Connection.html +1180 -0
  10. data/doc/Bridge/Connection/SockBuffer.html +322 -0
  11. data/doc/Bridge/Reference.html +605 -0
  12. data/doc/Bridge/Serializer.html +405 -0
  13. data/doc/Bridge/Serializer/Callback.html +498 -0
  14. data/doc/Bridge/Tcp.html +657 -0
  15. data/doc/Bridge/Util.html +643 -0
  16. data/doc/Bridge/Util/CallbackReference.html +557 -0
  17. data/doc/OpenSSL/X509/Certificate.html +275 -0
  18. data/doc/SSLCertificateVerification.html +446 -0
  19. data/doc/_index.html +239 -0
  20. data/doc/class_list.html +53 -0
  21. data/doc/css/common.css +1 -0
  22. data/doc/css/full_list.css +57 -0
  23. data/doc/css/style.css +328 -0
  24. data/doc/file.README.html +106 -0
  25. data/doc/file_list.html +55 -0
  26. data/doc/frames.html +28 -0
  27. data/doc/index.html +106 -0
  28. data/doc/js/app.js +214 -0
  29. data/doc/js/full_list.js +173 -0
  30. data/doc/js/jquery.js +4 -0
  31. data/doc/method_list.html +772 -0
  32. data/doc/top-level-namespace.html +112 -0
  33. data/examples/channels/client-writeable.rb +24 -0
  34. data/examples/channels/client.rb +23 -0
  35. data/examples/channels/server.rb +24 -0
  36. data/examples/chat/chatclient.rb +21 -0
  37. data/examples/chat/chatserver.rb +24 -0
  38. data/examples/client-context/client.rb +21 -0
  39. data/examples/client-context/server.rb +25 -0
  40. data/examples/secure/example.rb +8 -0
  41. data/examples/simple/channels.rb +47 -0
  42. data/examples/simple/services.rb +41 -0
  43. data/include/ssl/cacert.pem +3331 -0
  44. data/lib/bridge-ruby.rb +441 -0
  45. data/lib/client.rb +14 -0
  46. data/lib/connection.rb +162 -0
  47. data/lib/reference.rb +49 -0
  48. data/lib/serializer.rb +104 -0
  49. data/lib/ssl_utils.rb +68 -0
  50. data/lib/tcp.rb +73 -0
  51. data/lib/util.rb +101 -0
  52. data/lib/version.rb +3 -0
  53. data/rakelib/package.rake +4 -0
  54. data/rakelib/test.rake +8 -0
  55. data/test/regression/reconnect.rb +48 -0
  56. data/test/regression/rpc.rb +39 -0
  57. data/test/regression/test.rb +58 -0
  58. data/test/unit/bridge_dummy.rb +26 -0
  59. data/test/unit/connection_dummy.rb +21 -0
  60. data/test/unit/reference_dummy.rb +11 -0
  61. data/test/unit/tcp_dummy.rb +12 -0
  62. data/test/unit/test.rb +20 -0
  63. data/test/unit/test_reference.rb +30 -0
  64. data/test/unit/test_serializer.rb +109 -0
  65. data/test/unit/test_tcp.rb +51 -0
  66. data/test/unit/test_util.rb +59 -0
  67. 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: []