This post will explain blocks and Procs, with which you're probably at least somewhat familiar, but also some lesser known Ruby closures like Lambdas and Methods
One of the most confusing parts of learning basic Ruby (until your AHA! moment) is understanding what blocks are and how they work, mostly because it's something you probably haven't ever seen before trying out Ruby. It shouldn't be, because they're actually pretty simple. You HAVE already seen them before... they are commonly used as inputs to some of the iterators you've no doubt worked with like
Here, you'll learn more about blocks and also about their lessor known cousins, Procs, lambdas and Methods. By the end, you should be comfortable working with blocks and writing your own methods that take them. You should understand when you may need to use a Proc instead and the basics of the other two options -- lambdas and Methods.