Matchit.vim is great too, but you have to position your cursor on one of the block delimiting keywords (e.g. class, module, def, if, do or end) to make `v%` do what you want. The nice thing about text-objects is that the target area where you can trigger them to achieve the desired effect is much larger.