add spec
add gem
use shoulda-matcher in the spec