class BrewCaskTools::Casks::Version

Parent class for different types of Versions

Constants

DIR_BLACKLIST

Public Class Methods

new(dir) click to toggle source
# File lib/bct/cask/version.rb, line 9
def initialize(dir)
  @dir = dir
end
parse_version(version) click to toggle source
# File lib/bct/cask/version.rb, line 30
def self.parse_version(version)
  Versionomy.parse(version)
rescue Versionomy::Errors::ParseError
  version
end

Public Instance Methods

latest?() click to toggle source
# File lib/bct/cask/version.rb, line 17
def latest?
  all_versions.select { |version| version.to_s == 'latest' }.length.positive?
end
old() click to toggle source
# File lib/bct/cask/version.rb, line 25
def old
  _, *previous = versions.reverse
  previous
end
rm_old() click to toggle source
# File lib/bct/cask/version.rb, line 21
def rm_old
  old.each { |version| rm(version) }
end
versions() click to toggle source
# File lib/bct/cask/version.rb, line 13
def versions
  @versions ||= latest? ? ['latest'] : all_versions.sort
end

Private Instance Methods

all_versions() click to toggle source
# File lib/bct/cask/version.rb, line 43
def all_versions
  Dir.entries(@dir)
     .reject { |dir| DIR_BLACKLIST.include?(dir) }
     .map do |version|
       if File.directory?(File.join(@dir, version))
         Version.parse_version(version)
       end
     end.compact
end
rm(version) click to toggle source
# File lib/bct/cask/version.rb, line 38
def rm(version)
  version_dir = File.join(@dir, version.to_s)
  ::FileUtils.rm_rf(version_dir, secure: true, verbose: true)
end