protoplasm-em-server 0.1.5 → 0.1.6

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.
@@ -10,6 +10,19 @@ module Protoplasm
10
10
  cls
11
11
  end
12
12
 
13
+ def close
14
+ _socket.close if _socket && !_socket.closed?
15
+ end
16
+
17
+ def self.client(*args)
18
+ client = new(*args)
19
+ begin
20
+ yield client
21
+ ensure
22
+ client.close
23
+ end
24
+ end
25
+
13
26
  private
14
27
  def host_port
15
28
  raise "Must be implemented by the client class"
@@ -24,7 +37,7 @@ module Protoplasm
24
37
  s.setsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE, true)
25
38
  s
26
39
  end
27
- yield @socket
40
+ yield @socket if block_given?
28
41
  rescue Errno::EPIPE, Errno::ECONNRESET
29
42
  count += 1
30
43
  if count > 3
@@ -1,3 +1,3 @@
1
1
  module Protoplasm
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -43,6 +43,22 @@ describe "Protoplasm test server" do
43
43
  end
44
44
  end
45
45
 
46
+ it "should allow a self closing client" do
47
+ with_proto_server(ProtoplasmTest::EMServer) do |port|
48
+ ProtoplasmTest::Client.client('127.0.0.1', port) do |client|
49
+ client.ping
50
+ assert_equal "LOWER", client.upcase('lower')
51
+ assert_equal "UPPER", client.upcase('upper')
52
+ nums = []
53
+ client.evens(10) do |resp|
54
+ nums << resp
55
+ end
56
+ assert_equal [2, 4, 6, 8], nums
57
+ client.ping
58
+ assert_equal "LOWER", client.upcase('lower')
59
+ end
60
+ end
61
+ end
46
62
  it "should do constant lookups" do
47
63
  assert_equal :PING, ProtoplasmTest::Types::Command::Type.lookup(1)
48
64
  assert_equal :UPCASE, ProtoplasmTest::Types::Command::Type.lookup(2)
metadata CHANGED
@@ -1,92 +1,67 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: protoplasm-em-server
3
- version: !ruby/object:Gem::Version
4
- hash: 17
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.6
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 1
9
- - 5
10
- version: 0.1.5
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Josh Hull
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-02-01 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-02-03 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: eventmachine
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70249433648200 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
32
22
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: beefcake
36
23
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70249433648200
25
+ - !ruby/object:Gem::Dependency
26
+ name: beefcake
27
+ requirement: &70249433663300 !ruby/object:Gem::Requirement
38
28
  none: false
39
- requirements:
29
+ requirements:
40
30
  - - ~>
41
- - !ruby/object:Gem::Version
42
- hash: 29
43
- segments:
44
- - 0
45
- - 3
46
- - 7
31
+ - !ruby/object:Gem::Version
47
32
  version: 0.3.7
48
33
  type: :runtime
49
- version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: rake
52
34
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70249433663300
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
38
+ requirement: &70249433661880 !ruby/object:Gem::Requirement
54
39
  none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
62
44
  type: :development
63
- version_requirements: *id003
64
- - !ruby/object:Gem::Dependency
65
- name: minitest
66
45
  prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *70249433661880
47
+ - !ruby/object:Gem::Dependency
48
+ name: minitest
49
+ requirement: &70249433658340 !ruby/object:Gem::Requirement
68
50
  none: false
69
- requirements:
51
+ requirements:
70
52
  - - ~>
71
- - !ruby/object:Gem::Version
72
- hash: 21
73
- segments:
74
- - 2
75
- - 6
76
- - 1
53
+ - !ruby/object:Gem::Version
77
54
  version: 2.6.1
78
55
  type: :development
79
- version_requirements: *id004
56
+ prerelease: false
57
+ version_requirements: *70249433658340
80
58
  description: A protoplasm server backed by EventMachine.
81
- email:
59
+ email:
82
60
  - joshbuddy@gmail.com
83
61
  executables: []
84
-
85
62
  extensions: []
86
-
87
63
  extra_rdoc_files: []
88
-
89
- files:
64
+ files:
90
65
  - .gitignore
91
66
  - Gemfile
92
67
  - README.md
@@ -102,38 +77,29 @@ files:
102
77
  - test/test_helper.rb
103
78
  homepage: https://github.com/bazaarlabs/protoplasm
104
79
  licenses: []
105
-
106
80
  post_install_message:
107
81
  rdoc_options: []
108
-
109
- require_paths:
82
+ require_paths:
110
83
  - lib
111
- required_ruby_version: !ruby/object:Gem::Requirement
84
+ required_ruby_version: !ruby/object:Gem::Requirement
112
85
  none: false
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- hash: 3
117
- segments:
118
- - 0
119
- version: "0"
120
- required_rubygems_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
121
91
  none: false
122
- requirements:
123
- - - ">="
124
- - !ruby/object:Gem::Version
125
- hash: 3
126
- segments:
127
- - 0
128
- version: "0"
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
129
96
  requirements: []
130
-
131
97
  rubyforge_project: protoplasm-em-server
132
98
  rubygems_version: 1.8.15
133
99
  signing_key:
134
100
  specification_version: 3
135
101
  summary: A protoplasm server backed by EventMachine
136
- test_files:
102
+ test_files:
137
103
  - test/protoplasm_test.rb
138
104
  - test/test_helper.rb
139
105
  has_rdoc: