aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
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'