protoplasm-em-server 0.1.1 → 0.1.2

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.
@@ -27,28 +27,29 @@ module Protoplasm
27
27
  cmd = self.class._types.request_class.new(self.class._types.request_type_field => type.type, type.field => cmd_class.type.new(*args))
28
28
  cmd.encode(s)
29
29
  socket = _socket
30
- socket.write([0, s.size].pack("CQ"))
30
+ socket.write([Types::Request::NORMAL, s.size].pack("CQ"))
31
31
  socket.write s
32
32
  socket.flush
33
33
  fetch_objects = true
34
34
  obj = nil
35
35
  while fetch_objects
36
- response_code = socket.readpartial(1).unpack("C").first
36
+ response_byte = socket.read(1)
37
+ response_code = response_byte.unpack("C").first
37
38
  case response_code
38
39
  when Types::Response::NORMAL
39
40
  fetch_objects = !type.void?
40
41
  if fetch_objects
41
- len_buf = ''
42
- socket.readpartial(8 - len_buf.size, len_buf) while len_buf.size != 8
42
+ len_buf = socket.read(8)
43
43
  len = len_buf.unpack("Q").first
44
- buf = ''
45
- socket.readpartial(len - buf.size, buf) until buf.size == len
46
- obj = type.response_class.decode(buf)
44
+ data = socket.read(len)
45
+ obj = type.response_class.decode(data)
47
46
  yield obj if block_given?
48
47
  end
49
48
  fetch_objects = false unless type.streaming?
50
49
  when Types::Response::STOP_STREAMING
51
50
  fetch_objects = false
51
+ else
52
+ raise "Control byte is #{response_byte.inspect}, code is #{response_code.inspect}"
52
53
  end
53
54
  end
54
55
  obj
@@ -74,7 +74,8 @@ module Protoplasm
74
74
  obj = type.response_class.new(*args)
75
75
  s = ''
76
76
  obj.encode(s)
77
- send_data [Types::Response::NORMAL, s.size].pack("CQ")
77
+ send_data [Types::Response::NORMAL].pack("C")
78
+ send_data [s.size].pack("Q")
78
79
  send_data s
79
80
  end
80
81
  end
@@ -1,3 +1,3 @@
1
1
  module Protoplasm
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protoplasm-em-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-02 00:00:00.000000000Z
12
+ date: 2012-01-04 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: eventmachine
16
- requirement: &70099667516760 !ruby/object:Gem::Requirement
16
+ requirement: &70203485248320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70099667516760
24
+ version_requirements: *70203485248320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: beefcake
27
- requirement: &70099667515480 !ruby/object:Gem::Requirement
27
+ requirement: &70203485183020 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.3.7
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70099667515480
35
+ version_requirements: *70203485183020
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70099667503900 !ruby/object:Gem::Requirement
38
+ requirement: &70203485180540 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70099667503900
46
+ version_requirements: *70203485180540
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: minitest
49
- requirement: &70099667503260 !ruby/object:Gem::Requirement
49
+ requirement: &70203485177180 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 2.6.1
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70099667503260
57
+ version_requirements: *70203485177180
58
58
  description: A protoplasm server backed by EventMachine.
59
59
  email:
60
60
  - joshbuddy@gmail.com
@@ -89,7 +89,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
89
  version: '0'
90
90
  segments:
91
91
  - 0
92
- hash: 1445973023390049337
92
+ hash: 1388192791279370629
93
93
  required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  version: '0'
99
99
  segments:
100
100
  - 0
101
- hash: 1445973023390049337
101
+ hash: 1388192791279370629
102
102
  requirements: []
103
103
  rubyforge_project: protoplasm-em-server
104
104
  rubygems_version: 1.8.10