bridge-ruby 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.
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: []