Knitting and cats are not a good combination. Both my kitties are intolerable when my girlfriend and I are doing our various needlecrafts. To distract them, I first tried rolling up a yarn ball and then securing the loose end with a slip knot to keep in from unraveling. This loop would quickly be pulled off the ball by kitty claws, undoing the entire ball. I came up with this method to make the yarn ball toy slightly harder to destroy.
Step 1: Materials
To build the yarn ball you'll simply need a length of yarn and a tapestry needle, both very common in a knitter's bag. My yarn was a few yards long, but a bit too short to make the toy, so I supplemented the center of the ball with a handful of yarn bits. This isn't necessary if you have a long enough piece of yarn to begin with.
Step 2: Wind Up the Ball
If you begin your ball with yarn scraps like me, begin winding the long piece of yarn around the scraps, continually wrapping around the loose pieces. If you start with just a single long pieces, loop it several times around 2 fingers, pull the loops off your fingers, and begin wrapping the long piece around this bundle as with the other method.
Once you've formed a cohesive yarn ball that won't come apart on its own, continue wrapping the ball, changing directions often, until the ball is as big as you'd like or the tail is as short as you'd like, whichever comes first.
Step 3: Lock the Loose End
To finish the ball, thread the tapestry needle on the end of the tail. Push the needle through the center of the ball, and pull the entire length of the tail through.
Step 4: Repeat
I usually repeat the previous step 2 more times, rotating the ball and piercing it 90 degrees away each time.
Step 5: Finished
Now you have your completed cat ball. I've found the ball stays together despite some very vicious attacking.