Module: Vvm::Validator

Included in:
Cli
Defined in:
lib/vvm/validator.rb

Constant Summary collapse

METHOD_MAP =
{
  install:   %w[version? hg? new_version?],
  update:    %w[hg?],
  reinstall: %w[hg? installed_version?],
  rebuild:   %w[version? hg? installed_version?],
  use:       %w[version? installed_version?],
  list:      %w[hg?],
  uninstall: %w[version? installed_version?]
}.freeze

Class Method Summary collapse

Class Method Details

.hg?Boolean

Returns:

  • (Boolean)


22
23
24
25
# File 'lib/vvm/validator.rb', line 22

def hg?
  abort 'mercurial is required to install.' unless find_executable('hg')
  true
end

.installed_version?(ver = version) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
42
# File 'lib/vvm/validator.rb', line 39

def installed_version?(ver = version)
  abort "#{ver} is not installed." unless version_include?(ver)
  true
end

.new_version?(ver = nil) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
35
36
37
# File 'lib/vvm/validator.rb', line 32

def new_version?(ver = nil)
  Installer.pull
  ver = version if ver.nil?
  abort "#{ver} is already installed." if version_include?(ver)
  true
end

.validate_before_invoke(command) ⇒ Object



17
18
19
20
# File 'lib/vvm/validator.rb', line 17

def validate_before_invoke(command)
  return unless validations = METHOD_MAP[command.to_sym]
  validations.each { |m| send(m) }
end

.version?Boolean

Returns:

  • (Boolean)


27
28
29
30
# File 'lib/vvm/validator.rb', line 27

def version?
  abort 'undefined vim version. please run [ vvm list ].' if find_version.nil?
  true
end