Sha256: 4150f4a35d28c03b2fec997a677701e71833298d10f19f3dea52c076c339bc88

Contents?: true

Size: 1.14 KB

Versions: 2

Compression:

Stored size: 1.14 KB

Contents

# encoding: utf-8
require 'cliver/version'
require 'cliver/which'
require 'cliver/assertion'
require 'cliver/detector'
require 'cliver/filter'

# Cliver is tool for making dependency assertions against
# command-line executables.
module Cliver
  # @see Cliver::Assertion
  # @overload (see Cliver::Assertion#initialize)
  # @param (see Cliver::Assertion#initialize)
  # @raise (see Cliver::Assertion#assert!)
  # @return (see Cliver::Assertion#assert!)
  def self.assert(*args, &block)
    Assertion.new(*args, &block).assert!
  end

  extend self

  # Wraps Cliver::assert and returns truthy/false instead of raising
  # @see Cliver::assert
  # @overload (see Cliver::Assertion#initialize)
  # @param (see Cliver::Assertion#initialize)
  # @return [False,String] either returns false or the reason why the
  #                        assertion was unmet.
  def dependency_unmet?(*args, &block)
    Cliver.assert(*args, &block)
    false
  rescue Assertion::DependencyNotMet => error
    # Cliver::Assertion::VersionMismatch -> 'Version Mismatch'
    reason = error.class.name.split(':').last.gsub(/([a-z])([A-Z])/, '\\1 \\2')
    "#{reason}: #{error.message}"
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cliver-0.1.5 lib/cliver.rb
cliver-0.1.4 lib/cliver.rb