Sha256: 5e73d00ff01078a90f64b6478860387131d7775aff9d74802dfed074275a8ff1

Contents?: true

Size: 938 Bytes

Versions: 5

Compression:

Stored size: 938 Bytes

Contents

module Divvy
  class Verification

    attr_accessor :package, :description, :commands #:nodoc:
    
    def initialize(package, description = '', &block) #:nodoc:
      raise 'Verify requires a block.' unless block
      
      @package = package
      @description = description.empty? ? package.name : description
      @commands = []
      
      self.instance_eval(&block)
    end
    
    def verify(server)
      @commands.each do |command|
        begin
          server.remote_command(command)
        rescue Divvy::NonZeroExitCode => ex  
          raise Divvy::VerificationFailed.new(@package, description)
        end
      end
    end
  end
  
  class VerificationFailed < Exception #:nodoc:
    attr_accessor :package, :description
    
    def initialize(package, description)
      super("Verifying #{package.name}#{description} failed.")
      
      @package = package
      @description = description
    end
  end
end

Version data entries

5 entries across 5 versions & 2 rubygems

Version Path
mdwan-divvy-0.1.0 lib/divvy/verification.rb
mdwan-divvy-0.1.1 lib/divvy/verification.rb
mdwan-divvy-0.1.2 lib/divvy/verification.rb
michaeldwan-divvy-0.1.2 lib/divvy/verification.rb
michaeldwan-divvy-0.1.5 lib/divvy/verification.rb