{"id":13596011,"url":"https://github.com/koraktor/rubikon","last_synced_at":"2025-04-09T13:33:59.560Z","repository":{"id":56893120,"uuid":"312674","full_name":"koraktor/rubikon","owner":"koraktor","description":"A simple to use, yet powerful Ruby framework for building console-based applications.","archived":true,"fork":false,"pushed_at":"2011-09-21T10:58:41.000Z","size":3544,"stargazers_count":93,"open_issues_count":3,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-05T04:29:33.840Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://koraktor.github.com/rubikon","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/koraktor.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2009-09-20T21:11:32.000Z","updated_at":"2024-09-21T18:16:27.000Z","dependencies_parsed_at":"2022-08-20T16:10:36.676Z","dependency_job_id":null,"html_url":"https://github.com/koraktor/rubikon","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koraktor%2Frubikon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koraktor%2Frubikon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koraktor%2Frubikon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/koraktor%2Frubikon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/koraktor","download_url":"https://codeload.github.com/koraktor/rubikon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248049845,"owners_count":21039278,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T16:02:04.350Z","updated_at":"2025-04-09T13:33:59.066Z","avatar_url":"https://github.com/koraktor.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"Rubikon\n=======\n\nRubikon is a simple to use, yet powerful Ruby framework for building\nconsole-based applications.\nRubikon aims to provide an easy to write and easy to read domain-specific\nlanguage (DSL) to speed up development of command-line applications. With\nRubikon it's a breeze to implement applications with only few options as well\nas more complex programs like RubyGems, Homebrew or even Git.\n\n## Installation\n\nYou can install Rubikon using RubyGems. This is the easiest way of installing\nand recommended for most users.\n\n    $ gem install rubikon\n\nIf you want to use the development code you should clone the Git repository:\n\n    $ git clone git://github.com/koraktor/rubikon.git\n    $ cd rubikon\n    $ rake install\n\n## Usage\n\nCreating a Rubikon application is as simple as creating a Ruby class:\n\n    require 'rubygems'\n    require 'rubikon'\n\n    class MyApplication \u003c Rubikon::Application::Base\n    end\n\nIf you save this code in a file called `myapp.rb` you can run it using\n`ruby myapp.rb`. Or you could even add a *shebang* (`#!/usr/bin/env ruby`) to\nthe top of the file and make it executable. You would then be able to run it\neven more easily by typing `./myapp.rb`.\n\nNow go on and define what your application should do when the user runs it.\nThis is done using `default`:\n\n    class MyApplication \u003c Rubikon::Application::Base\n\n      default do\n        puts 'Hello World!'\n      end\n\n    end\n\nIf you run this application it will just print `Hello World!`.\n\nYou can also add command-line options to your application using `command`:\n\n    class MyApplication \u003c Rubikon::Application::Base\n\n      command :hello do\n        puts 'Hello World!'\n      end\n\n    end\n\nThis way your application would do nothing when called without options, but it\nwould print `Hello World!` when called using `ruby myapp.rb hello`. A command\nis code that is executed when the application is called with the command's name\nas the first argument - just like RubyGem's `install` or Git's `commit`.\n\nAnother part of Rubikon's DSL are flags and options. Both are parameter types\nthat change the behaviour of the application. While a flag is a parameter\nwithout arguments, an option may take one or more additional arguments. Typical\nexamples for flags are `--debug` or `--verbose` (or short `-d` and `-v`).\nRubyGem's `--version` is an example for an option that requires additional\narguments.\nFlags and options are easily added to your application's commands using\nRubikon's DSL:\n\n    flag :more, 'A flag'\n    option :name, 'An option', :who\n    command :hello, 'A command' do\n      puts \"Hello #{who}\"\n    end\n\nPlease see the [Wiki][5] for more information on the DSL or the `samples`\ndirectory for more in detail sample applications.\n\n**Warning**:\n\nRubikon is still in an early development stage. If you want to use it be aware\nthat you will might run into problems and or restrictions. See the Contribute\nsection if you want to help to make Rubikon better.\n\n## Features\n\n* A simple to use DSL\n* Automatic checks for option arguments\n* Built-in methods to capture user input\n* Built-in methods to display progress bars and throbbers\n* Built-in support for configuration files\n* Built-in support for colored output\n* Automatic generation of application and command help screens\n* User defined validation of option arguments\n\n## Future plans\n\n* Improved error handling\n* General optimizations\n* Improved tests\n\n## Requirements\n\n* Linux, MacOS X or Windows\n* Ruby 1.8.6 or newer (see the [compatibility page][4] in Rubikon's wiki)\n\n## Contribute\n\nRubikon is a open-source project. Therefore you are free to help improving it.\nThere are several ways of contributing to Rubikon's development:\n\n* Build apps using it and spread the word.\n* Report problems and request features using the [issue tracker][2].\n* Write patches yourself to fix bugs and implement new functionality.\n* Create a Rubikon fork on [GitHub][1] and start hacking. Extra points for\n  using GitHubs pull requests and feature branches.\n\n## About the name\n\nRubikon is the German name of the river Rubicone in Italy. It had a historical\nrelevance in ancient Rome when Julius Caesar crossed that river with his army\nand thereby declared war to the Roman senate. The phrase \"to cross the Rubicon\"\noriginates from this event.\n\nYou may also see Rubikon as a portmanteau word consisting of *\"Ruby\"* and\n*\"console\"*.\n\n## License\n\nThis code is free software; you can redistribute it and/or modify it under the\nterms of the new BSD License. A copy of this license can be found in the\nLICENSE file.\n\n## Credits\n\n* Sebastian Staudt -- koraktor(at)gmail.com\n* Dotan J. Nahum -- jondotan(at)gmail.com\n\n## See Also\n\n* [Rubikon's homepage][3]\n* [API documentation](http://www.rdoc.info/projects/koraktor/rubikon)\n* [GitHub project page][1]\n* [GitHub issue tracker][2]\n\nFollow Rubikon on Twitter [@rubikonrb](http://twitter.com/rubikonrb).\n\n [1]: https://github.com/koraktor/rubikon\n [2]: https://github.com/koraktor/rubikon/issues\n [3]: http://koraktor.github.com/rubikon\n [4]: https://github.com/koraktor/rubikon/wiki/Compatibility\n [5]: https://github.com/koraktor/rubikon/wiki\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoraktor%2Frubikon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkoraktor%2Frubikon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkoraktor%2Frubikon/lists"}