lib/include/class_knjappserver_cmdline.rb in knjappserver-0.0.16 vs lib/include/class_knjappserver_cmdline.rb in knjappserver-0.0.17
- old
+ new
@@ -1,38 +1,44 @@
class Knjappserver
def initialize_cmdline
@cmds = {}
- Knj::Thread.new do
- line = $stdin.gets
-
- called = 0
- @cmds.each do |key, connects|
- data = {}
+ Thread.new do
+ begin
+ line = $stdin.gets
+ next if line == "\n"
- if key.is_a?(Regexp)
- if line.match(key)
- connects.each do |conn|
- called += 1
- conn[:block].call(data)
+ called = 0
+ @cmds.each do |key, connects|
+ data = {}
+
+ if key.is_a?(Regexp)
+ if line.match(key)
+ connects.each do |conn|
+ called += 1
+ conn[:block].call(data)
+ end
end
+ else
+ raise "Unknown class for 'cmd_connect': '#{key.class.name}'."
end
- else
- raise "Unknown class for 'cmd_connect': '#{key.class.name}'."
end
+
+ if called == 0
+ print "Unknown command: '#{line.strip}'.\n"
+ end
+ rescue => e
+ self.handle_error(e)
end
-
- if called == 0
- print "Unknown command: '#{line.strip}'.\n"
- end
end
self.cmd_connect(/^\s*restart\s*$/i) do |data|
print "Restart will begin shortly.\n"
self.should_restart = true
end
self.cmd_connect(/^\s*stop\s*$/i) do |data|
+ print "Stopping appserver.\n"
self.stop
end
end
#Connects a proc to a specific command in the command-line (key should be a regex).
\ No newline at end of file