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 java.util.logging.Logger;
import com.sun.grizzly.jruby.RailsAdapter;
/**
* @author Jacob Kesser
*/
public class SinatraApplicationFactory extends DefaultRackApplicationFactory {
String myAppFile = "app.rb";
public SinatraApplicationFactory(RailsAdapter adapter) {
super(adapter);
}
public SinatraApplicationFactory(RailsAdapter 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.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