README.md in rubikon-0.2.1 vs README.md in rubikon-0.3.0
- old
+ new
@@ -1,14 +1,18 @@
Rubikon
=======
Rubikon is a simple to use, yet powerful Ruby framework for building
console-based applications.
+Rubikon aims to provide an easy to write and easy to read domain-specific
+language (DSL) to speed up development of command-line applications. With
+Rubikon it's a breeze to implement applications with only few options as well
+as more complex programs like RubyGems, Homebrew or even Git.
## Installation
-You can install Rubikon using RubyGem. This is the easiest way of installing
+You can install Rubikon using RubyGems. This is the easiest way of installing
and recommended for most users.
$ gem install rubikon
If you want to use the development code you should clone the Git repository:
@@ -43,73 +47,89 @@
end
If you run this application it will just print `Hello World!`.
-You can also add command-line options to your appication using `action`:
+You can also add command-line options to your appication using `command`:
class MyApplication < Rubikon::Application
- action 'hello' do
+ command :hello do
puts 'Hello World!'
end
end
This way your application would do nothing when called without options, but it
-would print `Hello World!` when called using `ruby myapp.rb --hello`.
-Please note that Rubikon will add dashes to options by default. If you don't
-like this behaviour and want options like RubyGem's `install` or `update` just
-use the following inside your application class:
+would print `Hello World!` when called using `ruby myapp.rb hello`. A command
+is code that is executed when the application is called with the command's name
+as the first argument - just like RubyGem's `install` or Git's `commit`.
- set :dashed_options, false
+Another part of Rubikon's DSL are flags and options. Both are parameter types
+that change the behaviour of the application. While a flag is a parameter
+without arguments, an option may take one or more additional arguments. Typical
+examples for flags are `--debug` or `--verbose` (or short `-d` and `-v`).
+RubyGem's `--version` is an example for an option that requires additional
+arguments.
+Flags and options are easily added to your application's commands using
+Rubikon's DSL:
-Please see the `samples` directory for more in detail sample applications.
+ flag :more
+ option :name, 2
+ command :hello do
+ ...
+ end
+Please see the `samples` directory for more in detail sample applications.
+
**Warning**:
Rubikon is still in an early development stage. If you want to use it be aware
that you will probably run into problems and or restrictions. See the
Contribute section if you want to help making Rubikon better.
## Features
* A simple to use DSL
* Automatic checks for option arguments
-* User defined type safety of option arguments
-* Built-in methods to capture user input and display throbbers
+* Built-in methods to capture user input
+* Built-in methods to display progress bars and throbbers
## Future plans
+* User defined type safety of option arguments
* Automatic generation of help screens
* Improved error handling
* Built-in support for configuration files
-* Built-in support for colored output and progress bars
+* Built-in support for colored output
## Requirements
* Linux, MacOS X or Windows
-* Ruby 1.8.6 or newer
+* Ruby 1.8.6 or newer (see the [compatibility page][4] in Rubikon's wiki)
## Contribute
+Rubikon is a open-source project. Therefore you are free to help improving it.
There are several ways of contributing to Rubikon's development:
-* Build apps using it and spread the word.<br />
+* Build apps using it and spread the word.
* Report problems and request features using the [issue tracker][2].
* Write patches yourself to fix bugs and implement new functionality.
-* Create a Rubikon fork on [GitHub][1] and start hacking.
+* Create a Rubikon fork on [GitHub][1] and start hacking. Extra points for
+ using GitHubs pull requests and feature branches.
## About the name
Rubikon is the German name of the river Rubicone in Italy. It had a historical
relevance in ancient Rome when Julius Caesar crossed that river with his army
and thereby declared war to the Roman senate. The phrase "to cross the Rubicon"
originates from this event.
-You may also see Rubikon as a morphed composition of *"Ruby"* and *"console"*.
+You may also see Rubikon as a portmanteau word consisting of *"Ruby"* and
+*"console"*.
## License
This code is free software; you can redistribute it and/or modify it under the
terms of the new BSD License. A copy of this license can be found in the LICENSE
@@ -119,11 +139,14 @@
* Sebastian Staudt -- koraktor(at)gmail.com
## See Also
+* [Rubikon's homepage][3]
* [API documentation](http://www.rdoc.info/projects/koraktor/rubikon)
* [GitHub project page][1]
* [GitHub issue tracker][2]
[1]: http://github.com/koraktor/rubikon
[2]: http://github.com/koraktor/rubikon/issues
+ [3]: http://koraktor.github.com/rubikon
+ [4]: http://github.com/koraktor/rubikon/wiki/Compatibility