diff options
| author | Clinton R. Nixon | 2009-09-22 13:03:46 -0400 |
|---|---|---|
| committer | Max Howell | 2009-09-24 18:26:16 +0100 |
| commit | 2668e2aeffb6c77cf29cec01b5c02a3077133227 (patch) | |
| tree | 452b653cd98c54eb6639ee8c7c3185f3b12752af /Library | |
| parent | 44a3d59630fddaa45767174c35ed410984eeb60b (diff) | |
| download | brew-2668e2aeffb6c77cf29cec01b5c02a3077133227.tar.bz2 | |
DRYed up "@foo=self.class.foo unless @foo" statements
Using the example from the existing code:
CHECKSUM_TYPES.each do |type|
if !instance_variable_defined?("@#{type}")
class_value = self.class.send(type)
instance_variable_set("@#{type}", class_value) if class_value
end
end
I extracted that block into a method 'set_instance_variable' which I
then used in all places where this behavior was being used.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/formula.rb | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 207cd615f..099f2e6bb 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -39,9 +39,9 @@ end class Formula # Homebrew determines the name def initialize name='__UNKNOWN__' - @url=self.class.url unless @url + set_instance_variable 'url' + set_instance_variable 'head' - @head=self.class.head unless @head if @head and (not @url or ARGV.flag? '--HEAD') @url=@head @version='HEAD' @@ -50,15 +50,15 @@ class Formula raise if @url.nil? @name=name validate_variable :name - @version=self.class.version unless @version - @version=Pathname.new(@url).version unless @version + + set_instance_variable 'version' + @version ||= Pathname.new(@url).version validate_variable :version if @version - @homepage=self.class.homepage unless @homepage + + set_instance_variable 'homepage' + CHECKSUM_TYPES.each do |type| - if !instance_variable_defined?("@#{type}") - class_value = self.class.send(type) - instance_variable_set("@#{type}", class_value) if class_value - end + set_instance_variable type end end @@ -324,6 +324,13 @@ private v=eval "@#{name}" raise "Invalid @#{name}" if v.to_s.empty? or v =~ /\s/ end + + def set_instance_variable(type) + if !instance_variable_defined?("@#{type}") + class_value = self.class.send(type) + instance_variable_set("@#{type}", class_value) if class_value + end + end def method_added method raise 'You cannot override Formula.brew' if method == 'brew' |
