This topic is a cliché and for a very good reason: it's absolutely essential knowledge.
Besides being essential it's also very interesting and rewarding to learn and there's no better way to learn something than to jump into the nitty-gritty of it. In this case that means implementing the Data Structures and Algorithms from scratch in Ruby.
Why Ruby you might ask? Well, a language it's just a tool to an end and not an end by itself.