All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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