diff options
author | elijah <elijah@riseup.net> | 2013-07-29 13:39:15 -0700 |
---|---|---|
committer | elijah <elijah@riseup.net> | 2013-07-29 13:39:15 -0700 |
commit | 578541a02b85d622f06637b29e2a6f8e32515994 (patch) | |
tree | 98d2798cef36b4aa968020fcbfd86c7a7f9db615 /lib/leap_cli/config/macros.rb | |
parent | d188d599de9997db4c905ae252c4efcba9d7d432 (diff) |
added assert() macro.
if failed, spits out this on compile:
= FAILED assertion while evaluating node 'worm'
- assertion: services.include? 'couchdb'
- offending key: require_couchdb
= bailing out
Diffstat (limited to 'lib/leap_cli/config/macros.rb')
-rw-r--r-- | lib/leap_cli/config/macros.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/leap_cli/config/macros.rb b/lib/leap_cli/config/macros.rb index f46799c..b5f6a34 100644 --- a/lib/leap_cli/config/macros.rb +++ b/lib/leap_cli/config/macros.rb @@ -335,5 +335,27 @@ module LeapCli; module Config entries.join("\n") end + ## + ## UTILITY + ## + + class AssertionFailed < Exception + attr_accessor :assertion + def initialize(assertion) + @assertion = assertion + end + def to_s + @assertion + end + end + + def assert(assertion) + if instance_eval(assertion) + true + else + raise AssertionFailed.new(assertion) + end + end + end end; end |