puppetlabs/puppet — pull request #2225 by ptomulik (2014-01-07 14:40:20+00:00)
Title: (PUP-1369) Package options property / vash

I've split PR #2130 into several parts. This is one of them.

This PR adds a "Vash" container to puppet utilities. Vash is an acronym for 'Validating Hash'. It's a mixin which turns the receiving class into special hash that validate and munge keys and values as they enter the hash.

Vash was originally developed as a separate module [ptomulik-vash](https://github.com/ptomulik/puppet-vash), and you can find modules' documentation there.

The specs for Vash are disabled by default, because it generates too much of use cases (on ruby 1.8 travis fails to load all the test cases, that is these plus puppets' 19.000+ test cases). If youre going to run specs on another VM, you may re-enable vash specs as follows

PUPPET_TEST_VASH=1 bundle exec rake spec

or
PUPPET_TEST_ALL=1 bundle exec rake spec