Pass filename and lineno arguments to class_eval

This commit is contained in:
Jack Nagel 2013-03-12 00:38:52 -05:00
parent 6197eae3d4
commit 79a67fd097
2 changed files with 8 additions and 8 deletions

View File

@ -667,11 +667,11 @@ private
def self.attr_rw(*attrs)
attrs.each do |attr|
class_eval %Q{
class_eval <<-EOS, __FILE__, __LINE__ + 1
def #{attr}(val=nil)
val.nil? ? @#{attr} : @#{attr} = val
end
}
EOS
end
end
@ -679,7 +679,7 @@ private
attr_rw :plist_startup, :plist_manual
Checksum::TYPES.each do |cksum|
class_eval %Q{
class_eval <<-EOS, __FILE__, __LINE__ + 1
def #{cksum}(val=nil)
unless val.nil?
@stable ||= SoftwareSpec.new
@ -687,7 +687,7 @@ private
end
return @stable ? @stable.#{cksum} : @#{cksum}
end
}
EOS
end
def build

View File

@ -32,7 +32,7 @@ class SoftwareSpec
# The methods that follow are used in the block-form DSL spec methods
Checksum::TYPES.each do |cksum|
class_eval %Q{
class_eval <<-EOS, __FILE__, __LINE__ + 1
def #{cksum}(val=nil)
if val.nil?
@checksum if @checksum.nil? or @checksum.hash_type == :#{cksum}
@ -40,7 +40,7 @@ class SoftwareSpec
@checksum = Checksum.new(:#{cksum}, val)
end
end
}
EOS
end
def url val=nil, specs={}
@ -93,7 +93,7 @@ class Bottle < SoftwareSpec
# Checksum methods in the DSL's bottle block optionally take
# a Hash, which indicates the platform the checksum applies on.
Checksum::TYPES.each do |cksum|
class_eval %Q{
class_eval <<-EOS, __FILE__, __LINE__ + 1
def #{cksum}(val=nil)
@#{cksum} ||= Hash.new
case val
@ -111,7 +111,7 @@ class Bottle < SoftwareSpec
@cat_without_underscores = true
end
end
}
EOS
end
def root_url val=nil