class TapDance::DSL
Attributes
definition[R]
Public Class Methods
evaluate(brewfile, lockfile=nil, unlock=nil)
click to toggle source
# File lib/tap_dance/dsl.rb, line 11 def self.evaluate(brewfile, lockfile=nil, unlock=nil) builder = new builder.eval_brewfile(brewfile) builder.definition end
new()
click to toggle source
# File lib/tap_dance/dsl.rb, line 17 def initialize @groups = [] # Arg/filter groups @tap = nil # Current tap scope @definition = Definition.new end
Public Instance Methods
brew(name, version=nil, opts=nil)
click to toggle source
# File lib/tap_dance/dsl.rb, line 50 def brew(name, version=nil, opts=nil) # Was version omitted? if opts.nil? && version.is_a?(Hash) opts = version version = nil end opts ||= {} @definition.brew name, version, { :tap => @tap }.merge(opts) end
eval_brewfile(brewfile, contents = nil)
click to toggle source
# File lib/tap_dance/dsl.rb, line 24 def eval_brewfile(brewfile, contents = nil) contents ||= File.read File.expand_path(brewfile.to_s) instance_eval contents, brewfile.to_s, 1 rescue SyntaxError => e bt = e.message.split("\n")[1..-1] raise BrewfileError, ["Brewfile syntax error:", *bt].join("\n") rescue ScriptError, RegexpError, NameError, ArgumentError => e e.backtrace[0] = "#{e.backtrace[0]}: #{e.message} (#{e.class})" TapDance.ui.warn e.backtrace.join("\n ") raise BrewfileError, "There was an error in your Brewfile," \ " and TapDance cannot continue." end
tap(name, url, opts={}) { || ... }
click to toggle source
DSL
commands
# File lib/tap_dance/dsl.rb, line 38 def tap(name, url, opts={}) # Can't nest taps; doesn't make sense raise BrewfileError, "You cannot nest taps!" unless @tap.nil? old_tap = @tap @tap = @definition.tap name, url, opts yield if block_given? @tap = old_tap end