This repository has been archived by the owner on Apr 27, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Ruby Architecture for Building Applications and Libraries
License
Unknown, GPL-2.0 licenses found
Licenses found
Unknown
LICENSE
GPL-2.0
COPYING
copiousfreetime/rabal
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
== Rabal * Homepage[http://copiousfreetime.rubyforge.org/rabal/] * {Rubyforge Project}[http://rubyforge.org/projects/copiousfreetime] * email jeremy at hinegardner dot org == DESCRIPTION Rabal is the Ruby Architecture for Building Applications and Libraries. Taking ideas from Haskell's Cabal, the Hoe and Rubyforge projects, rabal is a generalised project generation tool for initial creation of the files and directories considered necessary in any ruby project. == INSTALL gem install rabal == FEATURES Rabal uses the concept of a +plugin+. A rabal +plugin+ defines a file and directory template along with the necessary parameters used to generate a final project directory tree. All files are run through ERB and portions of the file hierarchy are replaced based upon the project name. For example, the +core+ plugin that is the base main required plugin of rabal is defined by the parameters +author+ and +email+ and the following directory/file template: ./core/CHANGES.erb ./core/lib/rabal.project ./core/lib/rabal.project/gemspec.rb.erb ./core/lib/rabal.project/specification.rb.erb ./core/lib/rabal.project/version.rb.erb ./core/lib/rabal.project.rb.erb ./core/Rakefile.erb ./core/README.erb ./core/tasks/announce.rake.erb ./core/tasks/distribution.rake.erb ./core/tasks/documentation.rake.erb ./core/tasks/setup.rb.erb From this template with 'example' as the project the following structure was created: ./example/CHANGES ./example/lib/example/gemspec.rb ./example/lib/example/specification.rb ./example/lib/example/version.rb ./example/lib/example.rb ./example/LICENSE ./example/Rakefile ./example/README ./example/tasks/announce.rake ./example/tasks/distribution.rake ./example/tasks/documentation.rake ./example/tasks/setup.rb Rabal currently ships with plugins for: * bin - command line application * core - core functionality and baseline information need by every project * ext - ruby C extensions * license - indicate under what license your project is released. Has templates for BSD, GPL, LGPL, MIT and Ruby License * spec - an RSpec starting point * test - a Test::Unit starting point * website - a website starting point (using webby framework) You are highly encouraged to write your own plugins and distribute them. See the README.PLUGIN for information on how to develop your own. == EXAMPLE % rabal --use-all myproj Author of the project (full name) ? Ruby Programmer Email address of the author ? rp@example.com Name of the resulting .so file (e.g. myext) ? myprojext Check for the existence of this method in the library ? main Library to link against (e.g. libsomething) ? libmyproj Flavor of License for your project: BSD, GPL, LGPL, MIT, RUBY ? RUBY [...] % find ./myproj ./myproj ./myproj/bin ./myproj/bin/myproj ./myproj/CHANGES ./myproj/COPYING ./myproj/ext ./myproj/ext/myproj ./myproj/ext/myproj/ext ./myproj/ext/myproj/ext/mkrf_conf.rb ./myproj/lib ./myproj/lib/myproj ./myproj/lib/myproj/gemspec.rb ./myproj/lib/myproj/specification.rb ./myproj/lib/myproj/version.rb ./myproj/lib/myproj.rb ./myproj/LICENSE ./myproj/Rakefile ./myproj/README ./myproj/spec ./myproj/spec/myproj_spec.rb ./myproj/spec/spec_helper.rb ./myproj/tasks ./myproj/tasks/announce.rake ./myproj/tasks/distribution.rake ./myproj/tasks/documentation.rake ./myproj/tasks/extension.rake ./myproj/tasks/rspec.rake ./myproj/tasks/rubyforge.rake ./myproj/tasks/setup.rb ./myproj/tasks/site.rake ./myproj/tasks/testunit.rake ./myproj/test ./myproj/test/myproj_test.rb ./myproj/test/test_helper.rb == SYNOPSIS NAME rabal v0.2.3 SYNOPSIS rabal project [options]+ DESCRIPTION Ruby Architecture for Building Applications and Libraries. Rabal is a commandline application for bootstrapping, packaging and distributing ruby projects. GLOBAL OPTIONS --directory=directory, -d - The directory in which to create the project directory. --help, -h --logfile=logfile, -l - The location of the logfile --use-all, -a - Use all available plugins. --verbosity=verbosity, -v - One of : DEBUG, INFO, WARN, ERROR, FATAL, ANY AVAILABLE MODULES Force any module to be used by giving the --use-[modulename] option. Modules with a '*' next to them are always used. bin (/rabal/bin) - Add a commandline application. *core (/rabal/core) - The core functionality and baseline information needed by every project. ext (/rabal/ext) - Add a ruby extension *license (/rabal/license) - Indicate under what license your project is released. rubyforge (/rabal/rubyforge) - Add rubyforge support spec (/rabal/spec) - Add an RSpec framework. test (/rabal/test) - Add a Test::Unit framework. website (/rabal/website) - Add a website for your application. MODULE OPTIONS - CORE --core-author=[core-author] - Author of the project (full name) --core-email=[core-email] - Email address of the author MODULE OPTIONS - LICENSE --license-flavor=[license-flavor] - Flavor of License for your project: BSD, GPL, LGPL, MIT, RUBY AUTHOR Jeremy Hinegardner == REQUIREMENTS === For running * main * gem_plugin * rake === For development * rspec * rcov * mktemp == BUGS Please report all bugs in the {rubyforge bug tracker}[http://rubyforge.org/tracker/?atid=14326&group_id=3707&func=browse] == CREDITS rabal is inspired by: * Cabal - http://www.haskell.org/cabal/ * Hoe - http://seattlerb.rubyforge.org/hoe/ * Conversations with Bruce Williams - http://codefluency.com/ == LICENSE: Released under the same conditions as Ruby. See LICENSE and COPYING Code Generated by Rabal is licensed under the conditions of your project
About
Ruby Architecture for Building Applications and Libraries
Resources
License
Unknown, GPL-2.0 licenses found
Licenses found
Unknown
LICENSE
GPL-2.0
COPYING