class TapDance::Brew
Attributes
name[RW]
tap[RW]
version[RW]
Public Class Methods
new(name, version=nil, opts={})
click to toggle source
# File lib/tap_dance/brew.rb, line 10 def initialize(name, version=nil, opts={}) @opts = opts.dup @name = name.to_s @version = version @tap = @opts[:tap] @flags = @opts[:flags] || [] # Get actual tap object unless @tap.nil? case @tap when String, Symbol @tap = @opts[:definition].tap_named @tap.to_s when TapDance::Tap # Good to go! end @opts[:tap] = @tap end end
Public Instance Methods
brewable?()
click to toggle source
Does the formula exist?
# File lib/tap_dance/brew.rb, line 57 def brewable? BrewCLI.formula_info(canonical).okay? end
canonical()
click to toggle source
# File lib/tap_dance/brew.rb, line 48 def canonical unless @tap.nil? "#{@tap.url}/#{@name}" else @name end end
formula_version()
click to toggle source
# File lib/tap_dance/brew.rb, line 61 def formula_version res = BrewCLI.formula_info(canonical) return nil unless res.okay? res.out.split($/).first.match(/#{name}: stable ([^\s,]+)/)[1] end
formula_versions()
click to toggle source
# File lib/tap_dance/brew.rb, line 68 def formula_versions # Takes a long time to get; cache return if @formula_versions.nil? @formula_versions = BrewCLI.formula_versions(canonical). out.chomp.split($/).map do |v| s = v.split(/\s+/) version = s[0] commit = s[3] path = s[4] [ version, commit, path ] end else return @formula_versions end end
install()
click to toggle source
# File lib/tap_dance/brew.rb, line 30 def install if brewable? # Do magic here BrewCLI.install canonical, @flags else TapDance.ui.error "No available formula for \"#{canonical}\"" end end
installed?()
click to toggle source
Is a version installed?
# File lib/tap_dance/brew.rb, line 95 def installed? !installed_versions.empty? end
installed_versions()
click to toggle source
# File lib/tap_dance/brew.rb, line 84 def installed_versions # Would love to use StringScanner...but we don't need to! versions = BrewCLI.list_versions(canonical).out.strip.split(/\s+/) unless versions.empty? return versions[1..-1] else return [] end end
latest_version()
click to toggle source
# File lib/tap_dance/brew.rb, line 99 def latest_version # Works unless the versions have # strings in them, like alpha/beta installed_versions.sort.last if installed? end
to_s()
click to toggle source
# File lib/tap_dance/brew.rb, line 105 def to_s return canonical end
upgrade()
click to toggle source
# File lib/tap_dance/brew.rb, line 39 def upgrade if installed? # Do magic here BrewCLI.upgrade canonical, @flags else TapDance.ui.error "You haven't installed \"#{canonical}\"" end end