P
Pedro Del Gallego
hi all,
in this (http://pastie.caboo.se/97662 ) code :
module Kernel
def expected_argument_list
2
end
def before (name)
puts :hola
define_method(name){
if expected_argument_list==1
yield
nly_one
else
yield
ne,:two
end
}
end
end
class A
before :foo do |*args|
puts second
end
before :foo do |first , second|
puts second
end
end
a = A.new
a.foo
Does anyone know of a way to determine what argument list was
specified when the block is created?
i mean i want to implement the function expected_argument_list, to
return the length of the argument list that the block expected.
Probably is not possible to do that
When are defined the variables of the block, in the class definition
time, or after the yield call?
Thanks
in this (http://pastie.caboo.se/97662 ) code :
module Kernel
def expected_argument_list
2
end
def before (name)
puts :hola
define_method(name){
if expected_argument_list==1
yield
else
yield
end
}
end
end
class A
before :foo do |*args|
puts second
end
before :foo do |first , second|
puts second
end
end
a = A.new
a.foo
Does anyone know of a way to determine what argument list was
specified when the block is created?
i mean i want to implement the function expected_argument_list, to
return the length of the argument list that the block expected.
Probably is not possible to do that
When are defined the variables of the block, in the class definition
time, or after the yield call?
Thanks