Overriding Object.class was not my intention

Renamed to Formula::class_s.
This commit is contained in:
Max Howell 2009-09-11 14:22:46 +01:00
parent d62fd87436
commit f0f59659dd
3 changed files with 10 additions and 4 deletions

View File

@ -35,7 +35,7 @@ def make url
template=<<-EOS template=<<-EOS
require 'brewkit' require 'brewkit'
class #{Formula.class $1} <Formula class #{Formula.class_s $1} <Formula
@url='#{url}' @url='#{url}'
@homepage='' @homepage=''
@md5='' @md5=''

View File

@ -151,14 +151,14 @@ class Formula
"-DCMAKE_INSTALL_PREFIX='#{prefix}' -DCMAKE_BUILD_TYPE=None" "-DCMAKE_INSTALL_PREFIX='#{prefix}' -DCMAKE_BUILD_TYPE=None"
end end
def self.class name def self.class_s name
#remove invalid characters and camelcase #remove invalid characters and camelcase
name.capitalize.gsub(/[-_\s]([a-zA-Z0-9])/) { $1.upcase } name.capitalize.gsub(/[-_\s]([a-zA-Z0-9])/) { $1.upcase }
end end
def self.factory name def self.factory name
require self.path(name) require self.path(name)
return eval(self.class(name)).new(name) return eval(self.class_s(name)).new(name)
rescue LoadError rescue LoadError
raise FormulaUnavailableError.new(name) raise FormulaUnavailableError.new(name)
end end

View File

@ -318,7 +318,7 @@ class BeerTasting <Test::Unit::TestCase
FOOBAR='foo-bar' FOOBAR='foo-bar'
def test_formula_funcs def test_formula_funcs
classname=Formula.class(FOOBAR) classname=Formula.class_s(FOOBAR)
path=Formula.path(FOOBAR) path=Formula.path(FOOBAR)
assert_equal "FooBar", classname assert_equal "FooBar", classname
@ -471,4 +471,10 @@ class BeerTasting <Test::Unit::TestCase
assert_raises(RuntimeError) {Pathname.getwd.install 'non_existant_file'} assert_raises(RuntimeError) {Pathname.getwd.install 'non_existant_file'}
end end
def test_formula_class_func
assert_equal Formula.class_s('s-lang'), 'SLang'
assert_equal Formula.class_s('pkg-config'), 'PkgConfig'
assert_equal Formula.class_s('foo_bar'), 'FooBar'
end
end end