/ Published in: Java
Almost the same as my snippet for groovy, but for jruby
Expand |
Embed | Plain Text
buffer.setMode("ruby"); buffers = jEdit.getBuffers(); for(i = 0; i < buffers.length; i++) { jrc = buffers[i].getProperty("JRubyContainer"); if(jrc != null) { break; } } if(jrc == null) { return name.endsWith(".jar"); } }; for(i = 0; i < libfiles.length; i++) { } jrc = jrubycl.loadClass("org.jruby.embed.ScriptingContainer").newInstance(); //jrc.setCompatVersion(jrubycl.loadClass("org.jruby.CompatVersion").getEnumConstants()[2]); //JRUBY1_9 //jrc.setKCode(jrubycl.loadClass("org.jruby.util.KCode").getEnumConstants()[2]); //UTF8 jrc.setClassLoader(jrubycl); } for(i = 0; i < buffers.length; i++) { buffers[i].setProperty("JRubyContainer", jrc); } outbuffer = buffer.getProperty("outbuffer"); if((outbuffer == null) || outbuffer.isClosed()) { outbuffer = jEdit.newFile(view); buffer.setProperty("outbuffer", outbuffer); } jrc.setWriter(out); view.showBuffer(buffer); res = textArea.getSelectedText(); if(res == null || res.length() == 0) { res = buffer.getText(); } return res; } text = text(); jrc.remove("DATA"); ma = java.util.regex.Pattern.compile("(?sm)\\A(.+)^__END__$(.*)\\z").matcher(text); if(ma.matches()) { text = ma.group(1); jrc.put("DATA", ma.group(2)); } result = jrc.runScriptlet(new java.io.ByteArrayInputStream(("# -*- encoding : utf-8 -*-\n" + text).getBytes("UTF-8")), "script.rb"); outbuffer.remove(0, outbuffer.getLength()); outbuffer.insert(0, out.toString()); outbuffer.insert(outbuffer.getLength(),"\n\tResult: " + result); if(result != null) { view.showBuffer(outbuffer); }
You need to login to post a comment.
