From: Robert Klemme Date: 2004-01-06T21:41:43+09:00 Subject: Re: proc question and instance_methods "Rasputin" schrieb im Newsbeitrag news:3FFAA3AE.9000602@hellooperator.net... > Jamis Buck wrote: > > > GGarramuno wrote: > > > >> 1) I assume the question will be no, but is it possible to evaluate a > >> piece of proc code for syntax errors? That is, I have a construct of > >> the form: > >> > >> text = "some text coming from somewhere" > >> code = proc { text } > >> > >> I'd like to know whether text is valid ruby code (syntactically), > >> without having to run the proc. In perl, this would be done by > >> running eval on the code, as perl compiles to bytecode the proc even > >> if not running it. > >> But in ruby, it seems the proc is not "compiled" until run. Is there > >> any work-around for this? > > > > If you pass the code to eval, you can then test for a SyntaxError > > exception, like so: > > > > text = "some text coming from somewhere" > > begin > > eval "text" > > rescue SyntaxError => e > > # do something when it has a syntax error > > end > > > > But that would execute the code, wouldn't it? Yes. How about: text = "some text coming from somewhere" begin eval "def foo; #{text} ; end" rescue SyntaxError => e # do something when it has a syntax error end robert