Skip to content
This repository

A Ruby library for live programming and code reloading.

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 .idea
Octocat-spinner-32 lib
Octocat-spinner-32 spec
Octocat-spinner-32 .gemtest
Octocat-spinner-32 .gitignore
Octocat-spinner-32 .rspec
Octocat-spinner-32 .yardopts
Octocat-spinner-32 COPYING.txt
Octocat-spinner-32 ChangeLog.md
Octocat-spinner-32 README.md
Octocat-spinner-32 Rakefile
Octocat-spinner-32 gemspec.yml
Octocat-spinner-32 sketches.gemspec
README.md

Sketches

Description

Sketches allows you to create and edit Ruby code from the comfort of your editor, while having it safely reloaded in IRB whenever changes to the code are saved.

Features

  • Spawn an editor of your choosing from IRB.
  • Automatically reload your code when it changes.
  • Run the editor in the background.
  • Run the editor in a new terminal.
  • Use a custom editor command.
  • Use a custom terminal command.
  • Use a custom temp directory to store sketches in.

Problems

  • Local variables cannot be loaded. Ruby defines local variables as local to the file which they were originally defined in.
  • No support for Inotify or FSevent yet. It would be nice to attempt to use Inotify or FSevent bindings, if available, for efficient polling of sketch files.

Install

$ sudo gem install sketches

Then require sketches in your .irbrc file:

require 'sketches'

Sketches can be configured to use a custom editor command:

Sketches.config :editor => 'gvim'

Sketches can also be configured to run in a new terminal:

Sketches.config :editor => 'vim',
                :background => true,
                :terminal => lambda { |cmd|
                  "xterm -fg gray -bg black -e #{cmd.dump}"
                }

Examples

Open a new sketch:

sketch

Open a new named sketch:

sketch :foo

Open a sketch from an existing file:

sketch_from 'path/to/bar.rb'

Reopen an existing sketch:

sketch 2

sketch :foo

List all sketches:

sketches

Name a sketch:

name_sketch 2, :foo

Save a sketch to an alternant location:

save_sketch :foo, 'path/to/foo.rb'

License

Sketches - A Ruby library for live programming and code reloading.

Copyright (c) 2009 Hal Brodigan (postmodern.mod3 at gmail.com)

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

Something went wrong with that request. Please try again.