ChessIcu
For parsing files of chess tournament data into ruby classes.
Install
sudo gem install sanichi-chess_icu --source http://gems.github.com
Usage
A tournament (ICU::Tournament) has two or more players (ICU::Player), and each player has one or more results (ICU::Result).
Tournament objects are created by parsing files of various formats. An instance of a class that can handle the format (see below for the available classes) is first created, and then it’s parse or parse! method is called with the file’s contents as the only argument.
require 'chess_icu'
data = open('tournament.txt') { |f| f.read }
parser = ICU::Tournament::Parser.new # substitute the name of an available parser (see below) for "Parser"
tournament = parser.parse(data)
On success, the parse method returns an object of type ICU::Tournament. On error, it returns nil and an error message can be retrieved from the parser instance:
parser.error # => error message or nil on success
Alternatively, if an exception is preferred on error, the parse! method can be used:
tournament = parser.parse!(data)
The currently available parsers are:
-
ICU::Tournament::Krause - the format used by FIDE
-
ICU::Tournament::ForeignCSV - used by Irish players to report their individual results in foreign tournaments
TODO
Future versions of this software will be able to parse additional file formats (such as SwissPerfect).
Author
Mark Orr, rating officer for the Irish Chess Union (ICU).