Change == to is_password?
This confuses a lot of people who are making the switch to BCrypt, thinking that somehow their password is decrypted to a plaintext string.
Also overriding == is bad practice.