From: Ken Bloom Date: 2008-03-10T09:43:19+09:00 Subject: Re: passing procs around in variables On Sun, 09 Mar 2008 17:48:36 -0500, Nathan wrote: > Hi, > This might be something really simple, but I'm trying to write a > console-based menu for my program. I've done this before in a procedural > language, but I decided to try and port what I've done to ruby, because > it'll make other parts of my program far easier. My program has a few > menus, so it'd be nice to have re-usable code (which the procedural > version didn't have much of). > > The best way I've come up with is to pass the method calls which are > executed by each menu item as procs, but this requires passing them > around between two objects internally. (I haven't completely decided how > I'm going to structure the code which passes the procs... I have an > idea, but I'll cross that when I come to it) > > Now, the Item class, which each menu item is an object of, doesn't work > as expected... take a look here: http://pastie.caboo.se/163781. When I > try to call myItem.execute!, it complains "no block given". If I call > myItem.execute! { 2 + 1}, then it works, but that's not what I want... > > I've also included the Menu class, just in case anybody has any advice > as to how to do the whole thing better. > > Thanks, > -Nathan In addition to what Stefan Lang said about @proc.call, I just wanted to point out that there's no need to keep different classes in different files. (This isn't Java.) --Ken -- Ken (Chanoch) Bloom. PhD candidate. Linguistic Cognition Laboratory. Department of Computer Science. Illinois Institute of Technology. http://www.iit.edu/~kbloom1/