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