ruby_skynet 0.3.0 → 0.4.0.pre

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 729668f7d983cdc9801d603ace66a025d0038cf2
4
+ data.tar.gz: 9f9ac2b233d3c607d01f316476bf193010cc8a86
5
+ SHA512:
6
+ metadata.gz: d68231094851f6c74ee3eb1f0eaf17442ca7fb9d7788c7247c09561b61344b68cd68fb495468f66e8ee517171566b8e099431e0ba0a844f6be35c2df0ba92072
7
+ data.tar.gz: c57624d3a943a3c8751b738f7c4a447b145d9127d4b08bd040ac700c1bbde88ca9c12aa379a0e84c2034cf785d2e8f30ff117242a6171e0730dd957eb9e07f6d
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source :rubygems
1
+ source 'http://rubygems.org'
2
2
 
3
3
  group :test do
4
4
  gem "shoulda"
@@ -18,4 +18,4 @@ gem "bson"
18
18
  gem "bson_ext", :platform => :ruby
19
19
  # Celluloid::IO is used to create SkyNet services in Ruby
20
20
  # multi_json?
21
- gem "celluloid-io"
21
+ gem "celluloid-io", '0.13.0.pre2'
data/Gemfile.lock CHANGED
@@ -1,54 +1,53 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activesupport (3.2.9)
4
+ activesupport (3.2.12)
5
5
  i18n (~> 0.6)
6
6
  multi_json (~> 1.0)
7
+ atomic (1.0.1)
8
+ atomic (1.0.1-java)
7
9
  bourne (1.1.2)
8
10
  mocha (= 0.10.5)
9
- bson (1.8.0)
10
- activesupport
11
- bson_ext (1.8.0)
12
- bson (~> 1.8.0)
13
- celluloid (0.12.3)
14
- facter (>= 1.6.12)
11
+ bson (1.8.3)
12
+ bson (1.8.3-java)
13
+ celluloid (0.13.0.pre2)
15
14
  timers (>= 1.0.0)
16
- celluloid-io (0.12.0)
17
- celluloid (~> 0.12.0)
15
+ celluloid-io (0.13.0.pre2)
16
+ celluloid (>= 0.13.0.pre)
18
17
  nio4r (>= 0.4.0)
19
- facter (1.6.16)
20
18
  gene_pool (1.3.0)
21
- i18n (0.6.1)
19
+ i18n (0.6.4)
22
20
  metaclass (0.0.1)
23
21
  mocha (0.10.5)
24
22
  metaclass (~> 0.0.1)
25
- multi_json (1.4.0)
26
- nio4r (0.4.3)
27
- rake (10.0.2)
23
+ multi_json (1.7.0)
24
+ nio4r (0.4.3-java)
25
+ rake (10.0.3)
28
26
  resilient_socket (0.4.0)
29
27
  semantic_logger
30
28
  ruby_protobuf (0.4.11)
31
- semantic_logger (0.11.4)
29
+ semantic_logger (2.0.0)
32
30
  sync_attr
33
31
  thread_safe
34
32
  shoulda (3.3.2)
35
33
  shoulda-context (~> 1.0.1)
36
34
  shoulda-matchers (~> 1.4.1)
37
- shoulda-context (1.0.1)
35
+ shoulda-context (1.0.2)
38
36
  shoulda-matchers (1.4.2)
39
37
  activesupport (>= 3.0.0)
40
38
  bourne (~> 1.1.2)
41
39
  sync_attr (0.1.1)
42
- thread_safe (0.0.3)
43
- timers (1.0.1)
40
+ thread_safe (0.1.0)
41
+ atomic
42
+ timers (1.1.0)
44
43
 
45
44
  PLATFORMS
46
- ruby
45
+ java
47
46
 
48
47
  DEPENDENCIES
49
48
  bson
50
49
  bson_ext
51
- celluloid-io
50
+ celluloid-io (= 0.13.0.pre2)
52
51
  gene_pool
53
52
  multi_json
54
53
  rake
data/README.md CHANGED
@@ -25,7 +25,7 @@ require 'rubygems'
25
25
  require 'ruby_skynet'
26
26
 
27
27
  RubySkynet::Server.port = 2000
28
- RubySkynet::Server.hostname = 'localhost'
28
+ RubySkynet::Server.hostname = '127.0.0.1'
29
29
 
30
30
  # Just echo back any parameters received when the echo method is called
31
31
  class EchoService
data/Rakefile CHANGED
@@ -2,6 +2,7 @@ lib = File.expand_path('../lib/', __FILE__)
2
2
  $:.unshift lib unless $:.include?(lib)
3
3
 
4
4
  require 'rubygems'
5
+ require 'rubygems/package'
5
6
  require 'rake/clean'
6
7
  require 'rake/testtask'
7
8
  require 'date'
@@ -20,15 +21,17 @@ task :gem do |t|
20
21
  spec.date = Date.today.to_s
21
22
  spec.summary = "Skynet Ruby Client"
22
23
  spec.description = "Ruby Client for invoking Skynet services"
23
- spec.files = FileList["./**/*"].exclude('*.gem', 'nbproject').map{|f| f.sub(/^\.\//, '')}
24
+ spec.files = FileList["./**/*"].exclude(/\.gem$/, /\.log$/,/nbproject/).map{|f| f.sub(/^\.\//, '')}
25
+ spec.license = "Apache License V2.0"
24
26
  spec.has_rdoc = true
25
27
  spec.add_dependency 'semantic_logger'
26
28
  spec.add_dependency 'resilient_socket'
27
- spec.add_dependency 'multi_json'
29
+ spec.add_dependency 'multi_json', '>= 1.6.1'
28
30
  spec.add_dependency 'bson'
29
31
  spec.add_dependency 'ruby_protobuf'
32
+ spec.add_dependency 'celluloid-io', '>= 0.13.0.pre2'
30
33
  end
31
- Gem::Builder.new(gemspec).build
34
+ Gem::Package.build gemspec
32
35
  end
33
36
 
34
37
  desc "Run Test Suite"
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+ require 'ruby_skynet'
3
+ require 'sync_attr'
4
+
5
+ SemanticLogger::Logger.default_level = :trace
6
+ SemanticLogger::Logger.appenders << SemanticLogger::Appender::File.new('skynet.log')
7
+
8
+ client = RubySkynet::Client.new('EchoService')
9
+ p client.call('echo', :hello => 'world')
@@ -0,0 +1,28 @@
1
+ require 'rubygems'
2
+ require 'ruby_skynet'
3
+
4
+ # Log trace information to a log file
5
+ SemanticLogger::Logger.default_level = :trace
6
+ SemanticLogger::Logger.appenders << SemanticLogger::Appender::File.new('skynet.log')
7
+
8
+ # Specify Port and Hostname to listen for requests on
9
+ RubySkynet::Server.port = 2000
10
+ RubySkynet::Server.hostname = '127.0.0.1'
11
+
12
+ # Just echo back any parameters received when the echo method is called
13
+ class EchoService
14
+ include RubySkynet::Service
15
+
16
+ # Methods implemented by this service
17
+ # Must take a Hash as input
18
+ # Must Return a Hash response or nil for no response
19
+ def echo(params)
20
+ params
21
+ end
22
+ end
23
+
24
+ # Start the server
25
+ RubySkynet::Server.start
26
+
27
+ puts "Press enter to shutdown server"
28
+ gets
@@ -2,6 +2,7 @@ require 'bson'
2
2
  require 'gene_pool'
3
3
  require 'thread_safe'
4
4
  require 'resilient_socket'
5
+ require 'sync_attr'
5
6
 
6
7
  #
7
8
  # RubySkynet Connection
@@ -183,7 +183,7 @@ module RubySkynet
183
183
  # Network error on read must be sent back to caller since we do not
184
184
  # know if the modification was made
185
185
  response = read(timeout) unless retry_read
186
- raise ResponseError.new("#{Response::Err.name_by_value(response.err_code)}: #{response.err_detail}") if response.err_code != 0
186
+ raise ResponseError.new("#{Response::Err.name_by_value(response.err_code)} (#{response.err_code}): #{response.err_detail}") if response.err_code != 0
187
187
  response
188
188
  end
189
189
 
@@ -20,6 +20,19 @@ module RubySkynet
20
20
  @@region = 'Development'
21
21
  @@server = nil
22
22
 
23
+ def self.start
24
+ @@server ||= supervise(hostname, port)
25
+ end
26
+
27
+ def self.stop
28
+ @@server.terminate if @@server
29
+ @@server = nil
30
+ end
31
+
32
+ def self.running?
33
+ (@@server != nil) && @@server.running?
34
+ end
35
+
23
36
  # Region under which to register Skynet services
24
37
  # Default: 'Development'
25
38
  def self.region
@@ -73,21 +86,17 @@ module RubySkynet
73
86
  @@services.delete(klass.service_name)
74
87
  end
75
88
 
76
- # Returns whether the server is running
77
- def self.running?
78
- (@@server != nil) && @@server.running?
79
- end
80
-
81
- # Start the Server
82
- def self.start
83
- @@server = new
84
- @@server.start
85
- end
89
+ # Start the server so that it can start taking RPC calls
90
+ # Returns false if the server is already running
91
+ def initialize(host, port)
92
+ # Since we included Celluloid::IO, we're actually making a
93
+ # Celluloid::IO::TCPServer here
94
+ # TODO If port is in use, try the next port in sequence
95
+ @server = TCPServer.new(host, port)
96
+ async.run
86
97
 
87
- # Stop the Server
88
- def self.stop
89
- @@server.terminate
90
- @@server = nil
98
+ # Register services hosted by this server
99
+ self.class.services.each_pair {|key, klass| self.class.register_service_in_doozer(klass)}
91
100
  end
92
101
 
93
102
  def finalize
@@ -103,80 +112,18 @@ module RubySkynet
103
112
  logger.info "Skynet Services De-registered in Doozer"
104
113
  end
105
114
 
106
- # Returns whether the server is running
107
- def running?
108
- (@server != nil) && !@server.closed?
109
- end
110
-
111
- ############################################################################
112
- protected
113
-
114
- attr_accessor :server
115
-
116
- # Register the supplied service in doozer
117
- def self.register_service_in_doozer(klass)
118
- config = {
119
- "Config" => {
120
- "UUID" => "#{Server.hostname}:#{Server.port}-#{$$}-#{klass.name}-#{klass.object_id}",
121
- "Name" => klass.service_name,
122
- "Version" => klass.service_version.to_s,
123
- "Region" => Server.region,
124
- "ServiceAddr" => {
125
- "IPAddress" => Server.hostname,
126
- "Port" => Server.port,
127
- "MaxPort" => Server.port + 999
128
- },
129
- },
130
- "Registered" => true
131
- }
132
- RubySkynet::Registry.doozer_pool.with_connection do |doozer|
133
- doozer[klass.service_key] = MultiJson.encode(config)
134
- end
135
- end
136
-
137
- # Start the server so that it can start taking RPC calls
138
- # Returns false if the server is already running
139
- def start
140
- return false if running?
141
-
142
- # Since we included Celluloid::IO, we're actually making a
143
- # Celluloid::IO::TCPServer here
144
- # TODO If port is in use, try the next port in sequence
145
- # TODO make port to listen on configurable
146
- @server = TCPServer.new('0.0.0.0', self.class.port)
147
- run!
148
-
149
- # Register services hosted by this server
150
- self.class.services.each_pair {|key, klass| self.class.register_service_in_doozer(klass)}
151
- true
152
- end
153
-
154
115
  def run
155
116
  logger.info("Starting listener on #{self.class.hostname}:#{self.class.port}")
156
117
  loop do
157
118
  logger.debug "Waiting for a client to connect"
158
119
  begin
159
- handle_connection!(@server.accept)
120
+ async.handle_connection(@server.accept)
160
121
  rescue Exception => exc
161
122
  logger.error "Exception while processing connection request", exc
162
123
  end
163
124
  end
164
125
  end
165
126
 
166
- # Called for each message received from the client
167
- # Returns a Hash that is sent back to the caller
168
- def on_message(service_name, method, params)
169
- logger.benchmark_debug "Called: #{service_name}##{method}" do
170
- logger.trace "Method Call: #{method} with parameters:", params
171
- klass = Server.services[service_name]
172
- raise "Invalid Skynet RPC call, service: #{service_name} is not available at this server" unless klass
173
- service = klass.new
174
- raise "Invalid Skynet RPC call, method: #{method} does not exist for service: #{service_name}" unless service.respond_to?(method)
175
- # TODO Use pool of services, or Celluloid here
176
- service.send(method, params)
177
- end
178
- end
179
-
180
127
  # Called for each client connection
181
128
  def handle_connection(client)
182
129
  logger.debug "Client connected, waiting for data from client"
@@ -186,7 +133,7 @@ module RubySkynet
186
133
  'registered' => true,
187
134
  'clientid' => BSON::ObjectId.new.to_s
188
135
  }
189
- client.write(BSON.serialize(handshake))
136
+ client.write(BSON.serialize(handshake).to_s)
190
137
  Common.read_bson_document(client)
191
138
 
192
139
  while(header = Common.read_bson_document(client)) do
@@ -216,11 +163,11 @@ module RubySkynet
216
163
  if reply
217
164
  logger.debug "Sending Header"
218
165
  # For this test we just send back the received header
219
- client.write(BSON.serialize(header))
166
+ client.write(BSON.serialize(header).to_s)
220
167
 
221
168
  logger.debug "Sending Reply"
222
169
  logger.trace 'Reply', reply
223
- client.write(BSON.serialize({'out' => BSON.serialize(reply).to_s}))
170
+ client.write(BSON.serialize({'out' => BSON.serialize(reply).to_s}).to_s)
224
171
  else
225
172
  logger.debug "Closing client since no reply is being sent back"
226
173
  break
@@ -231,5 +178,48 @@ module RubySkynet
231
178
  logger.debug "Disconnected from the client"
232
179
  end
233
180
 
181
+ # Returns whether the server is running
182
+ def running?
183
+ (@server != nil) && !@server.closed?
184
+ end
185
+
186
+ ############################################################################
187
+ protected
188
+
189
+ # Register the supplied service in doozer
190
+ def self.register_service_in_doozer(klass)
191
+ config = {
192
+ "Config" => {
193
+ "UUID" => "#{Server.hostname}:#{Server.port}-#{$$}-#{klass.name}-#{klass.object_id}",
194
+ "Name" => klass.service_name,
195
+ "Version" => klass.service_version.to_s,
196
+ "Region" => Server.region,
197
+ "ServiceAddr" => {
198
+ "IPAddress" => Server.hostname,
199
+ "Port" => Server.port,
200
+ "MaxPort" => Server.port + 999
201
+ },
202
+ },
203
+ "Registered" => true
204
+ }
205
+ RubySkynet::Registry.doozer_pool.with_connection do |doozer|
206
+ doozer[klass.service_key] = MultiJson.encode(config)
207
+ end
208
+ end
209
+
210
+ # Called for each message received from the client
211
+ # Returns a Hash that is sent back to the caller
212
+ def on_message(service_name, method, params)
213
+ logger.benchmark_debug "Called: #{service_name}##{method}" do
214
+ logger.trace "Method Call: #{method} with parameters:", params
215
+ klass = Server.services[service_name]
216
+ raise "Invalid Skynet RPC call, service: #{service_name} is not available at this server" unless klass
217
+ service = klass.new
218
+ raise "Invalid Skynet RPC call, method: #{method} does not exist for service: #{service_name}" unless service.respond_to?(method)
219
+ # TODO Use pool of services, or Celluloid here
220
+ service.send(method, params)
221
+ end
222
+ end
223
+
234
224
  end
235
225
  end
@@ -21,7 +21,7 @@ module RubySkynet
21
21
  end
22
22
  end
23
23
  # Register the service with the Server
24
- # The server will publish the server to Doozer when te server is running
24
+ # The server will publish the server to Doozer when the server is running
25
25
  Server.register_service(base)
26
26
  end
27
27
 
@@ -1,3 +1,3 @@
1
1
  module RubySkynet #:nodoc
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0.pre"
3
3
  end
@@ -14,7 +14,7 @@ end
14
14
 
15
15
  RubySkynet::Server.port = 2100
16
16
  RubySkynet::Server.region = 'Test'
17
- RubySkynet::Server.hostname = 'localhost'
17
+ RubySkynet::Server.hostname = '127.0.0.1'
18
18
 
19
19
  class TestService
20
20
  include RubySkynet::Service
@@ -36,7 +36,7 @@ class RubySkynetServiceTest < Test::Unit::TestCase
36
36
  @service_name = 'TestService'
37
37
  @version = 1
38
38
  @region = 'Test'
39
- @doozer_key = "/services/#{@service_name}/#{@version}/#{@region}/localhost/2100"
39
+ @doozer_key = "/services/#{@service_name}/#{@version}/#{@region}/127.0.0.1/2100"
40
40
  end
41
41
 
42
42
  teardown do
@@ -7,22 +7,6 @@ require 'celluloid/io'
7
7
  # This a simple stand-alone server that does not use the Skynet code so that
8
8
  # the Skynet code can be tested
9
9
 
10
- # Read the bson document, returning nil if the IO is closed
11
- # before receiving any data or a complete BSON document
12
- def read_bson_document(io)
13
- bytebuf = BSON::ByteBuffer.new
14
- # Read 4 byte size of following BSON document
15
- bytes = io.read(4)
16
- return unless bytes
17
- # Read BSON document
18
- sz = bytes.unpack("V")[0]
19
- bytebuf.append!(bytes)
20
- bytes = io.read(sz-4)
21
- return unless bytes
22
- bytebuf.append!(bytes)
23
- return BSON.deserialize(bytebuf)
24
- end
25
-
26
10
  # Simple single threaded server for testing purposes using a local socket
27
11
  # Sends and receives BSON Messages
28
12
  class SimpleServer
@@ -33,13 +17,13 @@ class SimpleServer
33
17
  # Celluloid::IO::TCPServer here
34
18
  @server = TCPServer.new('127.0.0.1', port)
35
19
  @logger = SemanticLogger::Logger.new(self.class)
36
- run!
20
+ async.run
37
21
  end
38
22
 
39
23
  def run
40
24
  loop do
41
25
  @logger.debug "Waiting for a client to connect"
42
- handle_connection!(@server.accept)
26
+ async.handle_connection(@server.accept)
43
27
  end
44
28
  end
45
29
 
@@ -76,7 +60,7 @@ class SimpleServer
76
60
  'registered' => true,
77
61
  'clientid' => '123'
78
62
  }
79
- client.write(BSON.serialize(handshake))
63
+ client.write(BSON.serialize(handshake).to_s)
80
64
  read_bson_document(client)
81
65
 
82
66
  while(header = read_bson_document(client)) do
@@ -91,17 +75,17 @@ class SimpleServer
91
75
  if reply = on_message(request['method'], BSON.deserialize(request['in']))
92
76
  @logger.debug "Sending Header"
93
77
  # For this test we just send back the received header
94
- client.write(BSON.serialize(header))
78
+ client.write(BSON.serialize(header).to_s)
95
79
 
96
80
  @logger.debug "Sending Reply"
97
81
  @logger.trace 'Reply', reply
98
- client.write(BSON.serialize({'out' => BSON.serialize(reply).to_s}))
82
+ client.write(BSON.serialize({'out' => BSON.serialize(reply).to_s}).to_s)
99
83
  else
100
84
  @logger.debug "Closing client since no reply is being sent back"
101
85
  @server.close
102
86
  client.close
103
87
  @logger.debug "Server closed"
104
- run!
88
+ async.run
105
89
  @logger.debug "Server Restarted"
106
90
  break
107
91
  end
@@ -110,6 +94,23 @@ class SimpleServer
110
94
  client.close
111
95
  @logger.debug "Disconnected from the client"
112
96
  end
97
+
98
+ # Read the bson document, returning nil if the IO is closed
99
+ # before receiving any data or a complete BSON document
100
+ def read_bson_document(io)
101
+ bytebuf = BSON::ByteBuffer.new
102
+ # Read 4 byte size of following BSON document
103
+ bytes = io.read(4)
104
+ return unless bytes
105
+ # Read BSON document
106
+ sz = bytes.unpack("V")[0]
107
+ bytebuf.append!(bytes)
108
+ bytes = io.read(sz-4)
109
+ return unless bytes
110
+ bytebuf.append!(bytes)
111
+ return BSON.deserialize(bytebuf)
112
+ end
113
+
113
114
  end
114
115
 
115
116
  if $0 == __FILE__
data/test.sh ADDED
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+ # This script require RVM to be installed and for ruby and jruby to be installed
3
+ [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
4
+ rvm use ruby@ruby_skynet --create
5
+ rake test
6
+ rvm use jruby@ruby_skynet --create
7
+ rake test
metadata CHANGED
@@ -1,96 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_skynet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
5
- prerelease:
4
+ version: 0.4.0.pre
6
5
  platform: ruby
7
6
  authors:
8
7
  - Reid Morrison
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-12-05 00:00:00.000000000 Z
11
+ date: 2013-03-18 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: semantic_logger
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: resilient_socket
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: multi_json
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
- version: '0'
47
+ version: 1.6.1
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
- version: '0'
54
+ version: 1.6.1
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: bson
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: ruby_protobuf
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: celluloid-io
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: 0.13.0.pre2
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: 0.13.0.pre2
94
97
  description: Ruby Client for invoking Skynet services
95
98
  email:
96
99
  - reidmo@gmail.com
@@ -103,6 +106,8 @@ files:
103
106
  - LICENSE.txt
104
107
  - README.md
105
108
  - Rakefile
109
+ - examples/echo_client.rb
110
+ - examples/echo_server.rb
106
111
  - lib/ruby_skynet.rb
107
112
  - lib/ruby_skynet/client.rb
108
113
  - lib/ruby_skynet/common.rb
@@ -115,42 +120,33 @@ files:
115
120
  - lib/ruby_skynet/server.rb
116
121
  - lib/ruby_skynet/service.rb
117
122
  - lib/ruby_skynet/version.rb
118
- - nbproject/private/config.properties
119
- - nbproject/private/private.properties
120
- - nbproject/private/private.xml
121
- - nbproject/private/rake-d.txt
122
- - nbproject/project.properties
123
- - nbproject/project.xml
124
- - test.log
123
+ - test.sh
125
124
  - test/doozer_client_test.rb
126
125
  - test/ruby_skynet_client_test.rb
127
126
  - test/ruby_skynet_service_test.rb
128
127
  - test/simple_server.rb
129
128
  homepage: https://github.com/ClarityServices/ruby_skynet
130
- licenses: []
129
+ licenses:
130
+ - Apache License V2.0
131
+ metadata: {}
131
132
  post_install_message:
132
133
  rdoc_options: []
133
134
  require_paths:
134
135
  - lib
135
136
  required_ruby_version: !ruby/object:Gem::Requirement
136
- none: false
137
137
  requirements:
138
- - - ! '>='
138
+ - - '>='
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
- segments:
142
- - 0
143
- hash: 434624136862152057
144
141
  required_rubygems_version: !ruby/object:Gem::Requirement
145
- none: false
146
142
  requirements:
147
- - - ! '>='
143
+ - - '>'
148
144
  - !ruby/object:Gem::Version
149
- version: '0'
145
+ version: 1.3.1
150
146
  requirements: []
151
147
  rubyforge_project:
152
- rubygems_version: 1.8.24
148
+ rubygems_version: 2.0.2
153
149
  signing_key:
154
- specification_version: 3
150
+ specification_version: 4
155
151
  summary: Skynet Ruby Client
156
152
  test_files: []
File without changes
@@ -1 +0,0 @@
1
- platform.active=Ruby_0
@@ -1,4 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project-private xmlns="http://www.netbeans.org/ns/project-private/1">
3
- <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>
4
- </project-private>
@@ -1,4 +0,0 @@
1
- clean=
2
- clobber=
3
- gem=
4
- test=
@@ -1,6 +0,0 @@
1
- javac.classpath=
2
- main.file=
3
- platform.active=Ruby
4
- source.encoding=UTF-8
5
- src.lib.dir=lib
6
- test.test.dir=test
@@ -1,15 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project xmlns="http://www.netbeans.org/ns/project/1">
3
- <type>org.netbeans.modules.ruby.rubyproject</type>
4
- <configuration>
5
- <data xmlns="http://www.netbeans.org/ns/ruby-project/1">
6
- <name>ruby_skynet</name>
7
- <source-roots>
8
- <root id="src.lib.dir" name="Source Files"/>
9
- </source-roots>
10
- <test-roots>
11
- <root id="test.test.dir"/>
12
- </test-roots>
13
- </data>
14
- </configuration>
15
- </project>
data/test.log DELETED
Binary file