diff options
| author | Jack Nagel | 2014-02-21 00:43:58 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-02-21 00:46:03 -0500 |
| commit | 3e5ae57a609ddd14a3458424d3bf9cccffe4790b (patch) | |
| tree | b503e10a633fbe7c8e0874432f6d6382262f08b6 /Library | |
| parent | cce2b12504dd75a5e3d2fab05cd9498c68f7ae9f (diff) | |
| download | homebrew-3e5ae57a609ddd14a3458424d3bf9cccffe4790b.tar.bz2 | |
Move Formula.class_s to Formulary
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cmd/create.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/formula.rb | 5 | ||||
| -rw-r--r-- | Library/Homebrew/formulary.rb | 15 | ||||
| -rw-r--r-- | Library/Homebrew/test/test_formula.rb | 12 |
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/' |
