BTW, its works perfectly, with that i can decide what parameter return
in advances, (but, yet, I dont know is a good idea or not)
Thanks
module Kernel
def before (name, &block)
define_method(name) do
if block.arity == 1
yield

nly_one
elsif block.arity == 2
yield

ne,:two
elsif block.arity == -2
yield

ne, :a , :splater, :argument
end
end
end
end
class A
before :foo do |first|
puts first
end
end
a = A.new
a.foo
class A
before :foo do |first , second|
puts second
end
end
a2 = A.new
a2.foo
class A
before :foo do |first , *splat_arg|
puts splat_arg
end
end
a3 = A.new
a3.foo
2007/9/16, Pedro Del Gallego <pedro.delgallego@gmail.com>:
> >
> > On Sep 16, 8:10 am, "Pedro Del Gallego" <pedro.delgall...@gmail.com>
> > wrote:
> > > hi all,
> > >
> > > in this (http://pastie.caboo.se/97662) code :
> > >
> > > module Kernel
> > > def expected_argument_list
> > > 2
> > > end
> > >
> > def before (name, &blk)
> > puts :hola
> > define_method(name){
> > if blk.arity==1
> > yield
nly_one
> > else
> > yield
ne,:two
> > end
> > }
> > end
> > end
> >
> > It's not quite as simple as that but that should be enough to move you
> > forward.
>
> Yes thats enough for me. I didnt now that the block was a Proc class.
>
> Thanks.
>
>
> --
> -------------------------------------
> Pedro Del Gallego
>
> Email : pedro.delgallego@gmail.com
>
>
--
-------------------------------------
Pedro Del Gallego
Email :
pedro.delgallego@gmail.com