class BrewCaskTools::Cask
Cask
control class. Implements operations on a single cask.
Attributes
dir[R]
info[R]
name[R]
Public Class Methods
new(name)
click to toggle source
Calls superclass method
# File lib/bct/cask.rb, line 16 def initialize(name) super() @name = name if deprecated? info = [] @name = name.delete(' (!)') else info = `brew cask info #{name}`.split("\n") end @info = Casks::Info.new(info) @dir = File.join(CASKROOM, @name) @versions = Casks::Versions.new(@dir, @info.short_name.sub("#{@name}: ", '')) end
Public Instance Methods
can_cleanup?()
click to toggle source
# File lib/bct/cask.rb, line 61 def can_cleanup? versions.length > 1 || metadata.length > 1 end
candidate()
click to toggle source
# File lib/bct/cask.rb, line 37 def candidate @versions.candidate end
cleanup() { |self, versions| ... }
click to toggle source
# File lib/bct/cask.rb, line 94 def cleanup return unless can_cleanup? if deprecated? yield self, versions # Delete the whole cask ::FileUtils.rm_rf(@dir, secure: true, verbose: true) return end yield self, old @versions.rm_old end
current()
click to toggle source
# File lib/bct/cask.rb, line 33 def current @versions.current end
deprecated?()
click to toggle source
# File lib/bct/cask.rb, line 57 def deprecated? @deprecated ||= @name.include?('(!)') end
exec()
click to toggle source
# File lib/bct/cask.rb, line 70 def exec Open3.popen2e("brew cask install #{@name} --force") do |_stdin, stdout_err, _wait_thr| line = '' while line line = stdout_err.gets puts line end end end
latest?()
click to toggle source
# File lib/bct/cask.rb, line 53 def latest? @versions.latest? end
metadata()
click to toggle source
# File lib/bct/cask.rb, line 49 def metadata @versions.metadata end
old()
click to toggle source
# File lib/bct/cask.rb, line 45 def old @versions.old_installed end
outdated?()
click to toggle source
# File lib/bct/cask.rb, line 65 def outdated? return false if latest? candidate > current end
upgrade()
click to toggle source
# File lib/bct/cask.rb, line 80 def upgrade return say "#{@name} uses the `latest` convention. " \ 'Homebrew cask does not upgrade casks marked as ' \ '`latest`. Use another method of determining if ' \ 'this application has an upgrade', :green if latest? return say "You have the most recent version of #{@name}. " \ 'It cannot be upgraded', :green unless outdated? say "Installing #{@name} (#{candidate})", :cyan exec say "Upgraded #{@name} to version #{candidate}", :green end
versions()
click to toggle source
# File lib/bct/cask.rb, line 41 def versions @versions.installed end