= Kit
A framework for making simple management tools called kits.
Write your shell scripts in beautiful Ruby, put them in a kit, and keep them DRY.
== What is Kit?
Kit is written using Active Record, so if you have worked with Rails, then Kit should feel familiar.
Each kit keeps track of a set of objects (the bits) and info about them.
Bits know how to preform actions you create for them,
and can be put into groups so each type of bit can have its own set of actions.
Users and permissions can be set to control access to bits and actions.
Kit supports a robust action queue though {Delayed_job}[https://github.com/tobi/delayed_job].
One process can be responsible for queuing tasks and another for running them.
=== Example use scenario
What can you use kit for? Here is an example a web server admin might be familiar with.
Say you are running Apache with multiple virtual hosts (vhosts).
You are constantly adding new domain names, updating their configurations, etc.
Here is how a Kit could manage the vhosts.
* Each vhost is a bit.
* Actions might look like
vhost.create #=> set up directory structure
vhost.generate_apache_config #=> generate new apache config files from ERB template
vhost.online #=> make website accessible
vhost.offline #=> set a static 'site is down' page
vhost.destroy #=> remove all trace of the vhost
* By grouping the vhosts, each action can depend on the type of web application the vhost will be running.
* Kit can store metadata about the vhosts which you can use when defining actions.
== Installation
Add this line to your application's Gemfile:
gem 'kit'
And then execute:
$ bundle
Or install it yourself as:
$ gem install kit
== Getting started with kit
=== Documentation
* {Full source documentation}[rubydoc.info/gems/kit/frames] is hosted on the {gem page}[https://rubygems.org/gems/kit].
* A {comprehensive wiki}[https://github.com/razor-x/kit/wiki] is available on github.
=== Kit basics
To use Kit, you will need a kit. You can either
* Download a {community built kit}[https://github.com/razor-x/kit/wiki/Community-built-kits].
* {Build your own kit}[https://github.com/razor-x/kit/wiki/Building-your-own-kit].
If you skipped the above links and just want to get started, run
$ mkdir my_kit && cd my_kit && git init && git pull git://github.com/razor-x/skeleton-kit.git
Once you have a kit, navigate to the root directory and run
$ rake db:migrate
This will set up the database.
Create an action by adding a method to the +KitActionsDefault+ module located in +actions/default.rb+.
Open the kit
require 'kit'
Kit.open 'config.yml'
and make a new bit.
Kit::Bit.create :name => 'lilac'
Now you can call the action with
Kit::Bit.find_by_name('lilac').plant_seeds
If you got this far, refer to the documentation listed above for more examples of what kit can do.
== Development
=== Source Repository
The {Kit source}[https://github.com/razor-x/kit] is currently hosted at github.
To clone the project run
$ git clone git://github.com/razor-x/kit.git
After cloning, you can run +yard+ to generate documentation for the source
$ cd kit
$ yard
You will also need to set up the test_kit to run specs. Do this with
$ rake develop:prepare
== License
Kit is licensed under the MIT license.
== Warranty
This software is provided "as is" and without any express or
implied warranties, including, without limitation, the implied
warranties of merchantibility and fitness for a particular
purpose.