diff options
| -rw-r--r-- | lib/leap_cli/config/macros.rb | 22 | ||||
| -rw-r--r-- | lib/leap_cli/config/object.rb | 6 | ||||
| -rw-r--r-- | lib/leap_cli/version.rb | 2 | 
3 files changed, 29 insertions, 1 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 diff --git a/lib/leap_cli/config/object.rb b/lib/leap_cli/config/object.rb index 00997b1..1d296b3 100644 --- a/lib/leap_cli/config/object.rb +++ b/lib/leap_cli/config/object.rb @@ -282,6 +282,12 @@ module LeapCli                  Util::log "error message: no file '#{exc}'", :indent => 1                end              end +          rescue AssertionFailed => exc +            Util.bail! do +              Util::log :failed, "assertion while evaluating node '#{@node.name}'" +              Util::log 'assertion: %s' % exc.assertion, :indent => 1 +              Util::log "offending key: #{key}", :indent => 1 +            end            rescue SyntaxError, StandardError => exc              Util::bail! do                Util::log :error, "while evaluating node '#{@node.name}'" diff --git a/lib/leap_cli/version.rb b/lib/leap_cli/version.rb index 0e96de6..30a1b58 100644 --- a/lib/leap_cli/version.rb +++ b/lib/leap_cli/version.rb @@ -1,6 +1,6 @@  module LeapCli    unless defined?(LeapCli::VERSION) -    VERSION = '1.1.4' +    VERSION = '1.2.0'      COMPATIBLE_PLATFORM_VERSION = '0.2.3'..'1.99'      SUMMARY = 'Command line interface to the LEAP platform'      DESCRIPTION = 'The command "leap" can be used to manage a bevy of servers running the LEAP platform from the comfort of your own home.' | 
