Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Javascript packager & dependency resolver, and G-d knows what's more
Ruby JavaScript

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
autotest
bin
features
lib
markup
spec
.document
.gitignore
.rspec
.travis.yml
.yardopts
CHANGELOG
Gemfile
Manifest
README.md
Rakefile
TODO
UNLICENSE
VERSION
cucumber.yml
jsus.gemspec

README.md

What is it?

Ruby implementation of javascript packager / dependency resolver.

Why?

As a javascript programmer, you often need to split your code into multiple files. When you have 50+ different modules / libraries, you need some way to resolve complex dependencies and package all you need and nil you don't. Jsus is an utility that allows you to do just that: package your libraries into one piece with all dependencies included.

Features

  • Jsus works with mootools-style packages. That means you specify a package.yml / package.json file with package structure for every library/bigger module you have. Source files should also have special headers denoting their requirements and what they provide.
  • Jsus automatically resolves dependencies, so you don't have to worry about order issues or anything else.
  • Jsus allows you to make "extensions". Extension is a monkey-patch you can apply to any other library. Because sometimes you want to make project-specific change to a library you don't have control over and you want to be able to update this library without applying manual patches from their source.
  • Jsus uses murdoc for doccu style docs generation.
  • Jsus generates special json files denoting source and resulting project structure which can be useful for later introspection.
  • Jsus can also generate a special js file with loader for your dependencies, so that you don't need to repackage everything during development cycle.

Examples

Using with Rails / Sinatra / Whatever

Jsus comes with a middleware in its backpack. See rails example and sinatra example.

Plans

These are rather long-term, for when I get to have time and mood to do those:

  • Rails integration
  • npm packages support

NB:

  • I don't have any particular roadmap or plans for more features
  • However, I am open for any suggestions
    • Bonus points for suggestions with pull-requests

License

Public Domain, details in UNLICENSE file.

Something went wrong with that request. Please try again.