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.
This commit is contained in:
parent
44a3d59630
commit
2668e2aeff
@ -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'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user