kinetic-ruby 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f189587940e17c98646e020e9a1273d369efab0d
4
- data.tar.gz: 92c531dbd2441ecf40577a0cb5712556fe740d34
3
+ metadata.gz: bf1c12357e8d889c3e7076c8215fe84bd29a8973
4
+ data.tar.gz: 8eb7356990856bfe9a2fd5126c4048a0625d020b
5
5
  SHA512:
6
- metadata.gz: 5846939b710c3b7e66392ca684052c44b099f4931bb92b21cfecb48c0f739cfcfe2d5636b9ccf2b45b68b2753c544fbc0dfc12036d674a723d25ac34bcef0cb4
7
- data.tar.gz: c50521a898906902c37f1dc5452505d4752ea0efe049aabb1872244e0729a15da9d06b420eaf9bbee7a2c474fc5559260762c17d7b37139c62995e83f43acf46
6
+ metadata.gz: 48a55ccafce38cf772b7950e8ec2e77576063c946e280b8bbd79240f5db4b7c7503c3194ecfb1474625b045e2b94f7e1bed0cc0cb7c325f19a76cff9ff8393f7
7
+ data.tar.gz: 35b9d71bf84a1ac45f20f04bd865efadcf3e5bb669f7ed46cea940e9e7699281e90cc8d7fc635da04aede050a5536242c68ab0e9941218174b42ed6e7fb16e6e
data/Rakefile CHANGED
@@ -10,7 +10,11 @@ CLEAN.include ['*.gem', '*.log']
10
10
  namespace :test do
11
11
  desc "Test Kinetic Ruby server"
12
12
  task :server => 'kinetic:server:start' do
13
- report "Started Kinetic Ruby server!"
13
+
14
+ report("Validating server can accept a client connection", true)
15
+
16
+ report "Kinetic Ruby server launched!"
17
+
14
18
  client = Thread.new do
15
19
  addr = $kinetic_server.host + ':' + $kinetic_server.port.to_s
16
20
  report "Connecting test client to #{addr}\n"
@@ -19,9 +23,16 @@ namespace :test do
19
23
  report "Connected to server!"
20
24
  client.close
21
25
  end
26
+
27
+ report "Terminating client connection..."
22
28
  client.join 5.0
29
+
30
+ report "Initiating server shutdown..."
23
31
  $kinetic_server.shutdown unless $kinetic_server.nil?
24
32
  $kinetic_server = nil
33
+
34
+ report "Shutdown complete!"
35
+
25
36
  report "Kinetic Ruby server test successful!"
26
37
  end
27
38
  end
@@ -1,3 +1,5 @@
1
+ require 'date'
2
+
1
3
  module KineticRuby
2
4
 
3
5
  class Logger
@@ -9,10 +11,11 @@ module KineticRuby
9
11
  LOG_LEVEL_VERBOSE = 3,
10
12
  ]
11
13
 
12
- def initialize(log_level=LOG_LEVEL_INFO, stream=$stdout)
14
+ def initialize(log_level=LOG_LEVEL_INFO, stream=$stdout, enable_timestamp=true)
13
15
  set_level log_level
14
16
  @stream = stream
15
17
  @prefix = ''
18
+ @timestamp_enabled = enable_timestamp
16
19
  end
17
20
 
18
21
  def level=(log_level)
@@ -23,6 +26,14 @@ module KineticRuby
23
26
  @level.dup
24
27
  end
25
28
 
29
+ def enable_timestamp(enable=true)
30
+ @timestamp_enabled = enable
31
+ end
32
+
33
+ def timestamp_enabled
34
+ @timestamp_enabled
35
+ end
36
+
26
37
  def prefix=(msg)
27
38
  @prefix = msg if msg
28
39
  end
@@ -66,9 +77,10 @@ module KineticRuby
66
77
  end
67
78
 
68
79
  def log_message(msg, banner)
69
- msg = @prefix + msg if (@prefix && !@prefix.empty?)
70
- msg += "\n" + @prefix + ('-'*40) if (banner && msg && !msg.empty?)
71
- @stream.puts msg
80
+ now = '[' + DateTime.now.to_s + '] '
81
+ timestamp = @timestamp_enabled ? now : '[N/A]'
82
+ @stream.puts(timestamp + @prefix + msg) if (msg)
83
+ @stream.puts(timestamp + @prefix + ('-'*40)) if (banner && msg)
72
84
  @stream.flush
73
85
  end
74
86
 
@@ -23,7 +23,7 @@ module KineticRuby
23
23
  logger.prefix = logger.prefix + add_prefix
24
24
  logger.log 'message:'
25
25
  logger.prefix = logger.prefix + ' '
26
- self.to_yaml(msg).each_line{|line| logger.log(line) }
26
+ self.to_yaml(msg).each_line{|line| logger.log(line.rstrip) }
27
27
  logger.prefix = orig_prefix
28
28
  logger.log
29
29
  end
@@ -75,14 +75,14 @@ module KineticRuby
75
75
  @logger.log_verbose " #{pb.hmac}"
76
76
 
77
77
  @logger.log ' command:'
78
- pb.command.to_yaml.each_line{|l| @logger.log(" #{l}")}
78
+ pb.command.to_yaml.each_line{|l| @logger.log(" #{l.rstrip}")}
79
79
  @logger.log ' encoded:'
80
80
  @logger.log ' Length: ' + encoded.length.to_s + ' bytes'
81
81
 
82
82
  @logger.log_verbose " Raw:"
83
83
  @logger.log_verbose " #{encoded.inspect}"
84
84
  @logger.log_verbose " Content:"
85
- encoded.to_yaml.each_line{|line| @logger.log_verbose " #{line}"}
85
+ encoded.to_yaml.each_line{|line| @logger.log_verbose " #{line.rstrip}"}
86
86
 
87
87
  @logger.log
88
88
 
@@ -190,7 +190,7 @@ module KineticRuby
190
190
  request = ''
191
191
  pdu = nil
192
192
  connected = true
193
- raw_proto = nil
193
+ raw_proto = []
194
194
 
195
195
  # Process requests while client available
196
196
  while connected && (data = client.receive)
@@ -213,39 +213,42 @@ module KineticRuby
213
213
  else
214
214
  @logger.log "Waiting on remainder of PDU..."
215
215
  end
216
- end
217
216
 
218
- # Handle raw protobuf.. for tests
219
- if raw_proto || request.match(/^\n/)
217
+ # Otherwise, handle custom test requests
218
+ elsif pdu.nil?
219
+ @logger.logv "Checking for custom request: '#{request}'"
220
+
221
+ # Handle raw protobuf.. for tests
222
+ if !raw_proto.empty? || request.match(/^\n/)
220
223
  @logger.log "Appears to be a standalone protobuf incoming..."
221
- pdu = nil
222
224
  raw_proto ||= []
223
225
  raw_proto += request.bytes
224
226
  @logger.log " protobuf: (#{raw_proto.length} bytes)"
225
-
226
- # Otherwise, handle custom test requests
227
- elsif pdu.nil?
228
- @logger.logv "Checking for custom request: '#{request}'"
229
- request_match = request.match(/^read\((\d+)\)/)
230
- if request_match
227
+ request = ''
228
+
229
+ # Handle request for read(num_bytes), and respond with num_bytes of dummy data
230
+ elsif request_match = request.match(/^read\((\d+)\)/)
231
231
  len = request_match[1].to_i
232
232
  response = 'G'*len
233
233
  @logger.log "Responding to 'read(#{len})' w/ '#{response}'"
234
234
  client.send response
235
235
  request = ''
236
- pdu = nil
236
+
237
+ # Handle request for readProto(), and respond with canned Kinetic protobuf
237
238
  elsif request =~ /^readProto()/
238
239
  response = Proto.new(@logger).test_encode
239
240
  @logger.log "Responding to 'read(#{len})' w/ dummy protobuf (#{response.length} bytes)"
240
241
  client.send response
241
242
  request = ''
242
- pdu = nil
243
+
244
+ # Report not enough data yet to make a call...
243
245
  elsif request.match(/^read/) && data.length < 7
244
246
  @logger.log "no command match for request: '#{request}' (...yet)";
247
+
248
+ # Otherwise, report unknown request received!
245
249
  else
246
250
  @logger.log "Unknown request! Aborting..."
247
251
  request = ''
248
- pdu = nil
249
252
  connected = false
250
253
  end
251
254
  end
@@ -1,4 +1,4 @@
1
1
  module KineticRuby
2
- VERSION = '0.6.2'
2
+ VERSION = '0.6.3'
3
3
  PROTOCOL_VERSION = 'v2.0.4'
4
4
  end
@@ -1,4 +1,4 @@
1
1
  module KineticRuby
2
- VERSION = '0.6.2'
2
+ VERSION = '0.6.3'
3
3
  PROTOCOL_VERSION = '<%= proto_ver %>'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kinetic-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-06 00:00:00.000000000 Z
11
+ date: 2014-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake