Project setup. Adds first passing scenario.
Adds new failing scenario. Started to flesh out some objects and their interfaces.
Adds Sudoku::FileParser with spec.
Adds Sudoku::Puzzle and Sudoku::Row specs with simple implementations inside the spec files. Also left a load of comments in to show my ideas of how I might express the errors.
Move Puzzle and Row out to their own files. Refactor the specs a little. Be clear to use numbers, not strings.
Adds Column class along with :columns message for Puzzle. Utilises Matrix inside Puzzle.
Refactored Row and Column objects to utilise new Unit module. Refactored specs into single Unit spec. Added new Box object that also is a Unit.
Adds complete? method to Puzzle.
Amend FileParser to convert strings into numbers.
Passing second scenario – replaced stub Puzzle with real implementation.
Finalise feature with two remaining scenarios passing. Removed the SudokuValidator stub, as the Puzzle is now aware of its own validity.
Refactor to remove overuse of Sudoku module. Done the same in the specs to make the code easier to read.
Adds new error listing requirements to the feature. Refactored out a new Validator class. Previous scenarios green, but new steps failing.
Adds new spec describing error output for rows. Feature still failing. Basic implementation, needs refactoring.
Puzzle's :rows, :columns and :boxes return hashes indexed from 1, instead of an array.
Complete feature with error listings and their positions.
Some small tinkerings and refactorings. Bit more checking around the command line tool.