forked from vjoel/crown
regularfry/crown
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The *crown* program gathers gem lib and bin files under one directory for fast loading and predictable behavior. For example: [~/tmp] crown -v mygems json nokogiri sinatra sinatra-0.9.4 nokogiri-1.3.3 json-1.1.7 rack-1.0.0 PATH=/home/vjoel/tmp/mygems/bin RUBYLIB=/home/vjoel/tmp/mygems/ext:/home/vjoel/tmp/mygems/ext/json/ext: /home/vjoel/tmp/mygems/lib The gems are copied under mygems: [~/tmp] ls mygems bin ext lib [~/tmp] ls mygems/lib action-nokogiri.rb json.rb nokogiri.rb rack.rb sinatra.rb json nokogiri rack sinatra xsd The output of 'crown -v' shows you which gems (and versions) it is gathering, including all dependencies, and it shows you the PATH and RUBYLIB you need to use those files: [~/tmp] export RUBYOPT='' [~/tmp] export RUBYLIB=/home/vjoel/tmp/mygems/ext:/home/vjoel/tmp/mygems/ext/json/ext:/home/vjoel/tmp/mygems/lib [~/tmp] ruby -r json -e 'p JSON' JSON Why? * You can stop requiring 'rubygems' and you don't need RUBYOPT='rubygems'. There are no runtime dependencies on rubygems. * Lookups for required files should be faster. * No chance that "gem update" or "gem cleanup" might break your program. * You can distribute the "crown of gems" with your program. Features: * Either symlink files (-s switch) or copy files (the default). * Include other non-gem files using dest:file syntax. * Existing files in the target dir are not touched if they are not in the way. * Works correctly even with gems that have strange require_path lists, like json. * No dirs are ever deleted or replaced. * A file is written only if either it doesn't already exist in the target dir or you specify the force (-f) switch. * The verify (-V) mode checks whether the target dir looks like it has had the crown command run on it with the given arguments. * Dry-run (-n) and verbose (-v, -vv) options, as in FileUtils See the help (-h) for details, license, version, and contact information. This software is not fully tested on all gems; please test carefully before using in production environments.
About
Gather gem lib and bin files under one directory for fast loading and predictable behavior.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published