From: Ahmed Abdelsalam Date: 2009-04-23T01:35:03+09:00 Subject: Re: JRuby problem Ahmed Abdelsalam wrote: > James Herdman wrote: >> My guess is that the context fails to keep track of local variables. Try >> an >> experiment with something simpler: >> >> ScriptContext sct = jruby.getContext >> jruby.eval("name = 'Ahmed'") >> jruby.eval('puts "My name is #{name}"') >> >> If things explode, my theory is correct. >> >> James >> >> PS: Semi-colons aren't required, nor are empty parenthesis. It's >> considered >> out of the Ruby norm to use them. As such, I'd avoid them in your >> coding. >> See http://www.pathf.com/blogs/ruby-and-rails-style-guide/ > > Thanks for response. the code you sent is missing using sct, but I > updated it: > ScriptContext sct = jruby.getContext(); > jruby.eval("name = 'Ahmed'", sct); > jruby.eval("puts \"My name is #{name}\"", sct); > > also not working, the same error: undefined local variable or method > `name' for main:Object > > PS: Semi-colon is required by java code I found a solution for the problem, it's a discussed bug: Take a look: markmail.org/message/ze4vwkscc6w3cpc7 and http://jira.codehaus.org/browse/JRUBY-371 A temporary solution is to add $ before variable name so that it's seen in the same context with successive eval commands -- Posted via http://www.ruby-forum.com/.