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 +4 -4
- data/Rakefile +12 -1
- data/lib/kinetic_logger.rb +16 -4
- data/lib/kinetic_proto.rb +3 -3
- data/lib/kinetic_server.rb +17 -14
- data/lib/version.rb +1 -1
- data/lib/version.rb.erb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf1c12357e8d889c3e7076c8215fe84bd29a8973
|
4
|
+
data.tar.gz: 8eb7356990856bfe9a2fd5126c4048a0625d020b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
data/lib/kinetic_logger.rb
CHANGED
@@ -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
|
-
|
70
|
-
|
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
|
|
data/lib/kinetic_proto.rb
CHANGED
@@ -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
|
|
data/lib/kinetic_server.rb
CHANGED
@@ -190,7 +190,7 @@ module KineticRuby
|
|
190
190
|
request = ''
|
191
191
|
pdu = nil
|
192
192
|
connected = true
|
193
|
-
raw_proto =
|
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
|
-
#
|
219
|
-
|
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
|
-
|
227
|
-
|
228
|
-
|
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
|
-
|
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
|
-
|
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
|
data/lib/version.rb
CHANGED
data/lib/version.rb.erb
CHANGED
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.
|
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-
|
11
|
+
date: 2014-08-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|