kinetic-ruby 0.6.2 → 0.6.3

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 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