aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2014-02-21 00:43:58 -0500
committerJack Nagel2014-02-21 00:46:03 -0500
commit3e5ae57a609ddd14a3458424d3bf9cccffe4790b (patch)
treeb503e10a633fbe7c8e0874432f6d6382262f08b6 /Library
parentcce2b12504dd75a5e3d2fab05cd9498c68f7ae9f (diff)
downloadhomebrew-3e5ae57a609ddd14a3458424d3bf9cccffe4790b.tar.bz2
Move Formula.class_s to Formulary
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/create.rb2
-rw-r--r--Library/Homebrew/formula.rb5
-rw-r--r--Library/Homebrew/formulary.rb15
-rw-r--r--Library/Homebrew/test/test_formula.rb12
4 files changed, 19 insertions, 15 deletions
diff --git a/Library/Homebrew/cmd/create.rb b/Library/Homebrew/cmd/create.rb
index 8d767ceaa..b8d8b5520 100644
--- a/Library/Homebrew/cmd/create.rb
+++ b/Library/Homebrew/cmd/create.rb
@@ -121,7 +121,7 @@ class FormulaCreator
# #{HOMEBREW_CONTRIB}/example-formula.rb
# PLEASE REMOVE ALL GENERATED COMMENTS BEFORE SUBMITTING YOUR PULL REQUEST!
- class #{Formula.class_s name} < Formula
+ class #{Formulary.class_s name} < Formula
homepage ""
url "#{url}"
<% unless version.nil? or version.detected_from_url? %>
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 732899fa5..38e8d8f1f 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -348,11 +348,8 @@ class Formula
alias_method :python2, :python
alias_method :python3, :python
- # Generates a formula's ruby class name from a formula's name
def self.class_s name
- # remove invalid characters and then camelcase it
- name.capitalize.gsub(/[-_.\s]([a-zA-Z0-9])/) { $1.upcase } \
- .gsub('+', 'x')
+ Formulary.class_s(name)
end
# an array of all Formula names
diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb
index 7fb7191a5..e99dc0815 100644
--- a/Library/Homebrew/formulary.rb
+++ b/Library/Homebrew/formulary.rb
@@ -2,24 +2,31 @@
class Formulary
def self.unload_formula formula_name
- Object.send(:remove_const, Formula.class_s(formula_name))
+ Object.send(:remove_const, class_s(formula_name))
end
def self.formula_class_defined? formula_name
- Object.const_defined?(Formula.class_s(formula_name))
+ Object.const_defined?(class_s(formula_name))
end
def self.get_formula_class formula_name
- Object.const_get(Formula.class_s(formula_name))
+ Object.const_get(class_s(formula_name))
end
def self.restore_formula formula_name, value
old_verbose, $VERBOSE = $VERBOSE, nil
- Object.const_set(Formula.class_s(formula_name), value)
+ Object.const_set(class_s(formula_name), value)
ensure
$VERBOSE = old_verbose
end
+ def self.class_s name
+ name = name.capitalize
+ name.gsub!(/[-_.\s]([a-zA-Z0-9])/) { $1.upcase }
+ name.gsub!('+', 'x')
+ name
+ end
+
# A FormulaLoader returns instances of formulae.
# Subclasses implement loaders for particular sources of formulae.
class FormulaLoader
diff --git a/Library/Homebrew/test/test_formula.rb b/Library/Homebrew/test/test_formula.rb
index ed2cbf338..51b6d8813 100644
--- a/Library/Homebrew/test/test_formula.rb
+++ b/Library/Homebrew/test/test_formula.rb
@@ -129,11 +129,11 @@ class FormulaTests < Test::Unit::TestCase
end
def test_class_naming
- assert_equal 'ShellFm', Formula.class_s('shell.fm')
- assert_equal 'Fooxx', Formula.class_s('foo++')
- assert_equal 'SLang', Formula.class_s('s-lang')
- assert_equal 'PkgConfig', Formula.class_s('pkg-config')
- assert_equal 'FooBar', Formula.class_s('foo_bar')
+ assert_equal 'ShellFm', Formulary.class_s('shell.fm')
+ assert_equal 'Fooxx', Formulary.class_s('foo++')
+ assert_equal 'SLang', Formulary.class_s('s-lang')
+ assert_equal 'PkgConfig', Formulary.class_s('pkg-config')
+ assert_equal 'FooBar', Formulary.class_s('foo_bar')
end
def test_formula_spec_integration
@@ -180,7 +180,7 @@ class FormulaTests < Test::Unit::TestCase
File.open(path, 'w') do |f|
f << %{
require 'formula'
- class #{Formula.class_s(name)} < Formula
+ class #{Formulary.class_s(name)} < Formula
url 'foo-1.0'
def initialize(*args)
@homepage = 'http://example.com/'