Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Beefing up README.

Okay, now that we're done, let's make sure we have some good documentation.
  • Loading branch information...
commit 4b4ca901e37ccf5b67702dd259a14f7c04975dc3 1 parent 3b8a28a
@steveklabnik authored
Showing with 47 additions and 3 deletions.
  1. +47 −3
@@ -1,5 +1,49 @@
-Some experiments with [maze+xml](
+# Maze Solver
-You're gonna need to `gem install nokogiri` to get this going.
+Primarily, this repository is a hypermedia client for applications that
+serve [maze+xml](
-Just `ruby solver.rb` to solve the maze.
+Secondarily, this repository demonstrates refactoring from a simple procedural
+Ruby program to an OO one.
+Well, as [much as 'refactoring' is without any tests](,
+## Running
+First of all, I ran this with Ruby 1.9.3. 1.9.2 should work just fine, too.
+Secondly, you need some [nokogiri]( to get going, so
+`gem install` that right-off.
+Finally, just `ruby solver.rb` to solve the maze.
+## The procedural version
+I started with a simple task: "request some XML with Net::HTTP" and slowly built
+up some code. I pulled out some methods, and before you know it, I had a little
+procedural maze solver.
+You might be intereseted in following from the beginning. If so, check it [here](
+You can read along with the commits to see how I built it by going [here](
+You can see this version [here](
+## The Refactoring
+Commit early, commit often, that's what I always say! I tried to keep the
+commits really tiny so you could see my process with each one. The easiest
+way to follow along is probably on GitHub, you can see the list of commits
+by going [here](
+Check each one in order, as they build upon each other.
+## The OO version
+After the Great Refactoring, what's left is a shiny new version with lots of
+objects. It happens to all of us eventually... anyway, you can check it
+out [here](
+## The Alternate TDD universe
+... coming soon...
Please sign in to comment.
Something went wrong with that request. Please try again.