Pass the requested spec into the formula instance

This commit is contained in:
Jack Nagel 2014-06-19 21:35:46 -05:00
parent db9f16e2cd
commit 5beaa512e6
6 changed files with 15 additions and 14 deletions

View File

@ -26,7 +26,7 @@ class Formula
attr_accessor :local_bottle_path
def initialize(name, path)
def initialize(name, path, spec)
@name = name
@path = path
@homepage = self.class.homepage

View File

@ -46,8 +46,8 @@ class Formulary
end
# Gets the formula instance.
def get_formula
klass.new(name, path)
def get_formula(spec)
klass.new(name, path, spec)
end
# Return the Class for this formula, `require`-ing it if
@ -98,7 +98,7 @@ class Formulary
super name, Formula.path(name)
end
def get_formula
def get_formula(spec)
formula = super
formula.local_bottle_path = @bottle_filename
formula
@ -154,7 +154,7 @@ class Formulary
end
end
def get_formula
def get_formula(spec)
fetch
super
end
@ -181,7 +181,7 @@ class Formulary
super name, path
end
def get_formula
def get_formula(spec)
super
rescue FormulaUnavailableError
raise TapFormulaUnavailableError.new(tapped_name)
@ -194,8 +194,8 @@ class Formulary
# * a formula pathname
# * a formula URL
# * a local bottle reference
def self.factory ref
loader_for(ref).get_formula
def self.factory(ref, spec=:stable)
loader_for(ref).get_formula(spec)
end
def self.canonical_name(ref)

View File

@ -6,8 +6,9 @@ class FormulaTests < Homebrew::TestCase
klass = Class.new(Formula) { url "http://example.com/foo-1.0.tar.gz" }
name = "formula_name"
path = Formula.path(name)
spec = :stable
f = klass.new(name, path)
f = klass.new(name, path, spec)
assert_equal name, f.name
assert_equal path, f.path
assert_raises(ArgumentError) { klass.new }
@ -168,7 +169,7 @@ class FormulaTests < Homebrew::TestCase
bottle { sha1 TEST_SHA1 => bottle_tag }
def initialize
super "test", Pathname.new(__FILE__).expand_path
super "test", Pathname.new(__FILE__).expand_path, :stable
end
end.new

View File

@ -59,7 +59,7 @@ class InstallTests < Homebrew::TestCase
url "file://#{File.expand_path(__FILE__)}"
version "1"
def initialize
super "test_script_formula", Pathname.new(__FILE__).expand_path
super "test_script_formula", Pathname.new(__FILE__).expand_path, :stable
end
end.new

View File

@ -1,7 +1,7 @@
require 'formula'
class TestBall < Formula
def initialize(name="test_ball", path=Pathname.new(__FILE__).expand_path)
def initialize(name="test_ball", path=Pathname.new(__FILE__).expand_path, spec=:stable)
self.class.instance_eval do
stable.url "file://#{TEST_DIRECTORY}/tarballs/testball-0.1.tbz"
stable.sha1 "482e737739d946b7c8cbaf127d9ee9c148b999f5"

View File

@ -95,8 +95,8 @@ module Homebrew
TEST_SHA1 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze
TEST_SHA256 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze
def formula(name="formula_name", path=Formula.path(name), &block)
@_f = Class.new(Formula, &block).new(name, path)
def formula(name="formula_name", path=Formula.path(name), spec=:stable, &block)
@_f = Class.new(Formula, &block).new(name, path, spec)
end
def shutup