Sha256: 155d5dc20f65e112a12e001add9e5fd4269decfc38df22365e9d90a160604b44
Contents?: true
Size: 1.5 KB
Versions: 3
Compression:
Stored size: 1.5 KB
Contents
require 'mkmf' module Nvvm module Validator METHOD_MAP = { install: %w[version? git? new_version?], update: %w[git?], reinstall: %w[git? installed_version?], rebuild: %w[version? git? installed_version?], use: %w[version? installed_version?], list: %w[git?], uninstall: %w[version? installed_version?] }.freeze module_function def validate_before_invoke(command) return unless validations = METHOD_MAP[command.to_sym] validations.each { |v| send(v) } end def git? abort 'git is required to install.' unless find_executable('git') true end def version? abort 'undefined Neovim version. please run [ nvvm list ].' if find_version.nil? true end def new_version?(ver = nil) Installer.pull ver = version if ver.nil? abort "#{ver} is already installed." if version_include?(ver) true end def installed_version?(ver = version) abort "#{ver} is not installed." unless version_include?(ver) true end private def find_version version_regex = /\Av\d\..+\z|\A(\d\.\d(a|b){0,1}(\.\d+){0,1})\z/ regex = /(\Asystem\z|\Alatest\z|\Anightly\z|#{version_regex})/ $*.find { |v| v =~ regex } end def version Version.format(find_version) end def version_include?(ver) Version.versions.include?(ver) || use_system?(ver) end def use_system?(ver) ver == 'system' && $*.include?('use') end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
nvvm-0.5.0 | lib/nvvm/validator.rb |
nvvm-0.4.0 | lib/nvvm/validator.rb |
nvvm-0.3.0 | lib/nvvm/validator.rb |