Mixin belongs in the inner Validation classes, not here
Use recent versions of RSpec for testing
Make RSpec 2.14 happy: stubs are doubles
Clean up metaprogramming for readability
Inline simple conditions
Standardize the exceptions that we raise
Put helpers in a module to clean up
Cleanup method order: initialize first
Cleanup method order: type after initialize
Cleanup method order: dst_adjust? before builders
Cleanup method order: validate before builders
Cleanup method order: build_s before other builders
Cleanup method order: build_hash, build_ical last
Clean up validate methods
Rename validation type for clarity
Documentation comments
Optimize for readability
All Rule types should take same arguments

For easier duck-typing. (More refactoring to come)
Ruby 1.9 uses Psych for YAML
Unusable methods should fail