2010-07-25 Daigo Moriwaki <daigo at debian dot org>
* [shogi-server]
- - shogi_server/command.rb: For an unknown error command log, an
- empty line is no longer logged.
+ - shogi_server/command.rb:
+ + For an unknown error command log, an empty line is no longer logged.
+ + Commands specific to 81Dojo, starting with '%%%', are just
+ ignored instead of unknown command errors.
2010-07-23 Daigo Moriwaki <daigo at debian dot org>
cmd = GetBuoyCountCommand.new(str, player, game_name)
when /^\s*$/
cmd = SpaceCommand.new(str, player)
+ when /^%%%[^%]/
+ # TODO: just ignore commands specific to 81Dojo.
+ # Need to discuss with 81Dojo people.
+ cmd = VoidCommand.new(str, player)
else
cmd = ErrorCommand.new(str, player)
end
attr_accessor :time
end
+ # Dummy command which does nothing.
+ #
+ class VoidCommand < Command
+ def initialize(str, player)
+ super
+ end
+
+ def call
+ return :continue
+ end
+ end
+
# Application-level protocol for Keep-Alive.
# If the server receives an LF, it sends back an LF. Note that the 30 sec
# rule (client may not send LF again within 30 sec) is not implemented
assert_instance_of(ShogiServer::GetBuoyCountCommand, cmd)
end
+ def test_void_command
+ cmd = ShogiServer::Command.factory("%%%HOGE", @p)
+ assert_instance_of(ShogiServer::VoidCommand, cmd)
+ end
+
def test_error
cmd = ShogiServer::Command.factory("should_be_error", @p)
assert_instance_of(ShogiServer::ErrorCommand, cmd)