Skip to content

Instantly share code, notes, and snippets.

@ahoward
Created September 6, 2011 20:55
Show Gist options
  • Save ahoward/1198933 to your computer and use it in GitHub Desktop.
Save ahoward/1198933 to your computer and use it in GitHub Desktop.
# monkey-patch irb. see: http://jameskilton.com/2009/04/02/embedding-irb-into-your-ruby-application/
#
require 'irb'
module IRB # :nodoc:
def self.start_session(binding)
unless @__initialized
args = ARGV
ARGV.replace(ARGV.dup)
IRB.setup(nil)
ARGV.replace(args)
@__initialized = true
end
workspace = WorkSpace.new(binding)
irb = Irb.new(workspace)
@CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC]
@CONF[:MAIN_CONTEXT] = irb.context
catch(:IRB_EXIT) do
irb.eval_input
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment