Skip to content

Rails plugin allowing use of an online Rails app without Internet access

License

Notifications You must be signed in to change notification settings

DavidMikeSimon/offroad

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NOTE: This gem is a work in progress. It does work, but it’s not especially convenient, yet. Better documentation and scripts will follow in time.

NOTE: Currently the gem is only compatible with Rails 2.

Overview

This gem allows users without Internet access to still use your app. It requires that your application can be thought of in the following way:

Your site is broken down into a set of “groups” or “organizations”. Each group has their own distinct set of records, which are editable by only a distinct set of a users. Besides that, there are global records that can only be edited by overall site administrators, though they can possibly be viewed by regular users.

In order to make offline use of your app possible, Offroad will generate an installer bundle, which is an OS-specific executable that can install Ruby, Rails, and also a launcher which controls a local instance of WEBrick and manages imports and exports. The installer and launcher will be visually labelled everywhere with the name of the Rails app itself, making its function obvious to users. This launcher can generate up-mirror files, which are transported on a USB thumbdrive or some other medium to an online system, where they can be uploaded to the main app site. After having done an upload, the user is prompted to download a down-mirror file which contains any changes to the global records, and bring this back to the offline system, which completes the sneakernet round-trip.

Rather than sending all data, only globally accessible records and updates to the app itself are transferred in the down-mirror (except for the first down-mirror, which also contains the initial set of records for the group). Furthermore, the offline version of the app is considered be the absolutely canonical source of that group’s records; really, this is not a “sync”, it’s a “mirror”. This means that no-one on the online site can make changes to an offline group’s records, not even the administrator; this is enforced by Offroad at a low level.

About

Rails plugin allowing use of an online Rails app without Internet access

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages