com.sun.grizzly.jruby.rack.SinatraApplicationFactory Maven / Gradle / Ivy
package com.sun.grizzly.jruby.rack;
import org.jruby.Ruby;
import org.jruby.javasupport.JavaEmbedUtils;
import org.jruby.runtime.builtin.IRubyObject;
import com.sun.grizzly.jruby.RackGrizzlyAdapter;
/**
* @author Jacob Kesser
*/
public class SinatraApplicationFactory extends DefaultRackApplicationFactory {
String myAppFile = "app.rb";
public SinatraApplicationFactory(RackGrizzlyAdapter adapter) {
super(adapter);
}
public SinatraApplicationFactory(RackGrizzlyAdapter adapter, String appFile) {
super(adapter);
myAppFile = appFile;
}
public IRubyObject createApplicationObject(Ruby runtime) {
runtime.defineReadonlyVariable("$glassfish_appRoot", JavaEmbedUtils.javaToRuby(runtime,appRoot));
runtime.defineReadonlyVariable("$glassfish_appFile", JavaEmbedUtils.javaToRuby(runtime,myAppFile));
runtime.defineReadonlyVariable("$rackEnv", JavaEmbedUtils.javaToRuby(runtime, adapter.config.environment()));
runtime.evalScriptlet("require 'jruby/rack/sinatra'");
System.out.println("Running sinatra");
//runtime.evalScriptlet("Sinatra.run");
return runtime.evalScriptlet(
"Rack::Handler::Grizzly.new(Sinatra::Application)");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy