We’ve always known that blocks are a big part of what makes Ruby great to work with. I also imagine that most Rubyists are pretty comfortable using them in standard contexts, such as passing them to iterators. But how far can blocks really go? Let’s find out. In this talk we will dig into several examples of Ruby block usage that are a bit less standard. We will look at the power of methods that return lambda’s, passing blocks to Class.new(), using a full method to impersonate a block, and more. The goal is follow the rabbit hole all the way down to see what insights we can gain for the programming we do back in the real world.