Made api more Ruby-like and fixed some bugs.

These are some changes that I made a while back. I thought the api was maintained by shopstyle, so I submitted the PR to the wrong fork. Here it is again.
I wouldn't really consider that backward compatibility since the name of the method is changing but a nice feature and a good alternative for raising an error.