Tinker is an open-source tool to help people collaborate on code. It can also be found at https://tinker.io/
Tinker requires:
- Ruby 1.9+ && gem
- Node.js && npm
$ git clone https://github.com/chielkunkels/tinker.git ~/projects/tinker
$ cd ~/projects/tinker
$ git submodule update --init --recursive
$ gem install bundler
$ bundler install
$ mysql -u user -p tinker < schema.sql
$ cp config-sample.yml config.yml
At this point, you'll want to crank open your editor of choice and modify config.yml
. A sample config could look something like this:
urls:
client: 'http://localhost:9393/'
sandbox: 'http://localhost:9394/'
db: 'mysql2://user:password@localhost/tinker'
ga_code: 'UA-29044087-1'
Tinker is written with Sinatra, which is written on top of Rack, so any kind of Rack-compatible server should work.
Locally, I run Tinker on Thin, so that's what I'll be using in this example.
$ thin -p 9393 -e development -P tmp/pids/tinker-client.pid -d -D start
$ thin -p 9394 -e development -P tmp/pids/tinker-sandbox.pid -d -D start
The client interface can now be found at http://localhost:9393/
and the sandbox at http://localhost:9394/
$ npm install -g less
$ cd ~/projects/tinker/
$ lessc ./src/less/client.less > ./public/tinker.client.css
$ lessc ./src/less/embed.css > ./public/tinker.embed.css
$ npm install -g wrapup
$ cd ~/projects/tinker/
$ wrup -r ./src/js/client.js --output ./public/tinker.client.js
$ wrup -r ./src/js/embed.js --output ./public/tinker.embed.js
Copyright (c) 2011 Chiel Kunkels
Tinker is licensed under the MIT license.