Ript provides a clean Ruby DSL for describing firewall rules, and implements database migrations-like functionality for applying the rules