class Percheron::Validators::DockerClient
Public Instance Methods
valid?()
click to toggle source
# File lib/percheron/validators/docker_client.rb, line 5 def valid? message = rules.return { |rule| send(rule) } message ? fail(Errors::DockerClientInvalid, formatted_message(message)) : true end
Private Instance Methods
current_version()
click to toggle source
# File lib/percheron/validators/docker_client.rb, line 50 def current_version `#{Actions::Shell::DOCKER_CLIENT} --version`.chomp.match(/version (.+),/)[1] end
docker_client_exists?()
click to toggle source
# File lib/percheron/validators/docker_client.rb, line 38 def docker_client_exists? paths.each do |path| exe = File.join(path, Actions::Shell::DOCKER_CLIENT) return true if File.executable?(exe) && !File.directory?(exe) end false end
formatted_message(message)
click to toggle source
# File lib/percheron/validators/docker_client.rb, line 12 def formatted_message(message) "Docker client is invalid: #{message}" end
minimum_version()
click to toggle source
# File lib/percheron/validators/docker_client.rb, line 46 def minimum_version @minimum_version ||= Semantic::Version.new('1.6.0') end
paths()
click to toggle source
# File lib/percheron/validators/docker_client.rb, line 34 def paths ENV['PATH'].split(File::PATH_SEPARATOR) end
rules()
click to toggle source
# File lib/percheron/validators/docker_client.rb, line 16 def rules [ :validate_existence, :validate_version ] end
validate_existence()
click to toggle source
# File lib/percheron/validators/docker_client.rb, line 23 def validate_existence return nil if docker_client_exists? 'Is not in your PATH' end
validate_version()
click to toggle source
# File lib/percheron/validators/docker_client.rb, line 28 def validate_version return nil if docker_client_exists? && Semantic::Version.new(current_version) >= minimum_version "Version is insufficient, need #{minimum_version}" end