On Thu, Feb 24, 2011 at 2:59 PM, 7stud -- <bbxx789_05ss / yahoo.com> wrote: > class DataSource > ¨Âåæ çåôßãðõßéîæï > cpu8001" > ¨Âîä > ¨Âåæ çåôßãðõßðòéã> 01 > ¨Âîä > > ¨Âåæ çåôßíïõóåßéîæï > mouse241" > ¨Âîä > ¨Âåæ çåôßíïõóåßðòéã> 0 > ¨Âîä > end > > DataSource.new.methods.grep(/^get_(.*?)_info$/) do |meth| > ¨Âõô¢£ûíåôèý> end > > --output:-- > ---get_cpu_info--- > ---get_mouse_info--- > > > class Computer > ¨Âåæ éîéôéáìéúå¨áîßéääáôáßóïõòãå© > ¨Âéä áîßé> ¨Âäó äáôáßóïõòã> > ¨Âäó®íåôèïäó®çòåð¨¯Þçåôߨ®«¿©ßéîæï¤¯äï > > ¨Âõô¢¾£û¤±ý¼¢ > > ¨Âïíðõôåò®óåî䨺äåæéîåßíåôèïä¬ ¤±®ôïßóùí© äï > ¨Âõô¢ªªªª¢ ¤± ¢ªªªª¢ £ªªªÎÉÎÉÎÉÎÉ> > ¨ÂîæÀäó®óåî䨢çåôߣû¤±ýßéîæï¢®ôïßóùí> ¨Âòéãå Àäó®óåî䨢çåôߣû¤±ýßðòéã墮ôïßóùí© > > ¨Âìåòô ¢¢ > ¨Âðòéã±°> ¨Âìåòô ¢ª> ¨Âîä > > ¨Âõô¢£ûáìåòô£ûéîæï£ûðòéãåý> end > ¨Âîä > ¨Âîä > > end > > > > comp1 = Computer.new(1, DataSource.new) > puts comp1.mouse > > > --output:-- > Line 32:in `+': can't convert nil into String (TypeError) > ¨Âòïô®ò⺳²ºéî àíïõóå> ¨Âòïô®ò⺵ I'm not sure of the specifics, but $1 doesn't persist outside of the block created in the grep statement. When you call comp1.mouse, that's no longer within that block -- the method was defined in it, but once it was made a method it took on an existence of its own.