Need opinions on a Rails app as a framework

I have an interesting use case for Rails and I would greatly appreciate
this community’s opinion on the matter.
I’m curious if it’s possible to build a Rails app that can accomplish
the
following:

Environment stipulations

  • Must run on the JVM so JRuby.
  • The app will not have internet access in production. (We still have
    build
    servers that can package gems)

Ideal functionality

  • The main Rails app should be able to support a variable amount of
    engines.
    • I have played with this and it can be done by tweaking the Gemfile
      to
      load the engines.
    • Downside is we now have to disregard the Gemfile.lock to
      accommodate
      additional engines being added at any time.
  • Engines should be drop-in ready.
    • The engines should come packaged with all the gems they need to
      run.
  • There should be no additional installing steps after dropping in an
    engine.
    • That means no ‘bundle install’ or anything else.

So my major concern at the moment is with the gems. When I drop in an
engine and restart the server is there a way bundler can pick up the
packaged gems within the engine without any install step? Maybe playing
with the GEM_PATH or something? Anyway I would like to hear your
opinions
and see if we can figure something out. Thanks for checking this out!

Look into Bundler, especially the ‘bundle install --deployment’ option.
I
package my app into a binary artifact (using .deb, as we run on Ubuntu),
and then no internet access is required to bundle install and start the
app
server.

The caveat is, I don’t know what differences there are (if any) with
JRuby.
Would you package as a .WAR file? How does Bundler work? These are the
things you should figure out. I would be quite interested if you could
post
back here with your solution!

On 16 January 2015 at 16:01, Chason Choate <

On Friday, 16 January 2015 00:01:26 UTC-5, Chason Choate wrote:

  • The app will not have internet access in production. (We still have
    additional engines being added at any time.
    and see if we can figure something out. Thanks for checking this out!

I think you’re going to wind up fighting pretty hard against Bundler to
do
this. One good place to start is likely the Warbler community, as
they’ve
got experience deploying applications in a self-contained method as
you’ve
described.

I’d also recommend pushing back on the “absolutely no install”
requirement;
what’s the motivation? It seems to me like there’s not much space
between
users can “write files on the web server and restart it” and users who
can
run a command…

–Matt J.