Description

Run EventMachine code in a ripl shell - asynchronously of course

Install

Install the gem with:

gem install ripl-em

Usage

$ ripl em
>> require 'em-http-request'
=> true

>> def get(url); req = EM::HttpRequest.new(url).get; req.callback {|h| puts h.response }; end
=> nil

# Make two requests and watch them return in reverse order
>> get 'http://robolot.herokuapp.com/sleep/10'
=> [#\<Proc:0x00000101a76848@(ripl):4>]
>> get 'http://robolot.herokuapp.com/sleep/1'
=> [#\<Proc:0x00000101a76848@(ripl):4>]
Sir, I slept for 1 second(s). Anything else I can zzz...
Sir, I slept for 10 second(s). Anything else I can zzz...

Todo

  • Autocompletion - Requires an Em::Connection that responds to both newlines and tabs. Any takers? :)

  • Basic Readline behavior - Up/Down Arrow -> Previous/Next history

  • Retry EM loop if callback raises error