aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorClinton R. Nixon2009-09-22 13:03:46 -0400
committerMax Howell2009-09-24 18:26:16 +0100
commit2668e2aeffb6c77cf29cec01b5c02a3077133227 (patch)
tree452b653cd98c54eb6639ee8c7c3185f3b12752af /Library
parent44a3d59630fddaa45767174c35ed410984eeb60b (diff)
downloadbrew-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.rb25
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'