Kudu
=====
Kudu is buildware that understands transitive dependency management and is optimized for multi-gem, multi-api developer workflows. In its current state Kudu supports the development of Sinatra Web APIs and ruby gems. The build-ware is extensible, adding support for other language types is WIP.
Your system must have ruby >1.93 installed.
OSX
Download and install VirtualBox for OSX. Double click the dmg file and follow the instructions
Ubuntu
Virtual box can be installed via apt by following the instructions here
Download the Vagrant package appropriate to your system
OSX
Double click the dmg file and follow the instructions
Ubuntu
sudo dpkg -i vagrant_i686.deb
Add /opt/vagrant/bin to your path
This takes some of the pain out of VirutalBox guest additions between guest and host
vagrant gem install vagrant-vbguest
cd kudu/vagrant
vagrant up
The first time this command is run the the Vagrant vbox image will be pulled down from the source URI contained in the VagrantFile (this can take some time). Upon boot up the unadorned image is is provisioned via chef-solo. The default setup is RVM, ruby and the gemset necessary to run the Kudu build system as well as some common shell & editor setup. Upon completion of the up command the newly provision VM can be accessed via the below.
vagrant ssh -- -X
You can read about other useful vagrant commands via the below.
vagrant -h
vagrant ssh -- -X
vagrant-> cd Kudu/example
vagrant-> kudu create-project -n kudu_example_sinatra -t sinatra
vagrant-> cd kutu_test_sinatra
vagrant-> kudu build
vagrant-> kudu service-start
Kudu generated and built a simple sinatra based web api. The source is located in 'kudu_example_sinatra/lib/kudu_example_sinatra.rb'. Test your new api by hitting URIs below in a web browser on your host OS.
http://localhost:9393
http://localhost:9393/hello