Separate NIF validation and the ActiveModel adapter
Remove undocumented surprise exception
Use stricter definitions and standard terminology
Bug fix: gem works on 1.8, but spec does not
Refactor to make a couple of bugs more visible
Separate testing of Nif class and ActiveModel validator
DRY up specs (in two commits for readability)
DRY up specs (2 of 2)
Bug fix: CIFs with check-letter did not work
[style] Reveal intention
Clean up CIF algorithm and remove #ival
Bug fix: 'specials' failed in Ruby 1.8
Have a private section instead of single unique methods
Refactor: Principle of least surprise — don't say something is a 
valid DNI if it does not even have the form of a DNI, etc
Refactor: express intent clearly
Refactor: extract constants
Update documentation to new API