Sha256: 742f050c25df38940eda769df842e748264d0ba69774e2645f28e7ca6c2395cb

Contents?: true

Size: 1.45 KB

Versions: 12

Compression:

Stored size: 1.45 KB

Contents

class Skynet
  class Console    
    def self.start(libs=[])
      require 'rubygems'
      require 'optparse'
      require 'skynet'
      require "skynet/console_helper"
      require "irb/completion"
      require "irb"

      irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'

      options = { 
        :irb           => irb, 
        :required_libs => [] 
      }
      
      OptionParser.new do |opt|
        opt.banner = "Usage: skynet console [options]"
        opt.on("--irb=[#{irb}]", 'Invoke a different irb.') { |v| options[:irb] = v }
        opt.on('-r', '--required LIBRARY', 'Require the specified libraries. To include multiple libraries, include multiple -r options. ie. -r skynet -r fileutils') do |v|
          options[:required_libs] << File.expand_path(v)
        end
        opt.parse!(ARGV)
      end
                         
      options[:required_libs] + libs
      options[:required_libs].uniq.each do |lib|
        require lib
      end
      
      IRB.setup(Skynet::CONFIG[:LAUNCHER_PATH])
      IRB.conf[:PROMPT][:SKYNET]  = IRB.conf[:PROMPT][:SIMPLE].dup
      IRB.conf[:PROMPT][:SKYNET][:PROMPT_I] = "skynet>>"
      
      IRB.conf[:PROMPT_MODE]  = :SKYNET
      irb = IRB::Irb.new()
      IRB.conf[:MAIN_CONTEXT] = irb.context      
      irb.context.workspace.main.extend Skynet::ConsoleHelper

      trap("SIGINT") do
        irb.signal_handle
      end

      catch(:IRB_EXIT) do
        irb.eval_input
      end      
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
brendan-skynet-0.9.303 lib/skynet/console.rb
brendan-skynet-0.9.304 lib/skynet/console.rb
brendan-skynet-0.9.305 lib/skynet/console.rb
brendan-skynet-0.9.310 lib/skynet/console.rb
brendan-skynet-0.9.311 lib/skynet/console.rb
brendan-skynet-0.9.312 lib/skynet/console.rb
brendan-skynet-0.9.313 lib/skynet/console.rb
brendan-skynet-0.9.314 lib/skynet/console.rb
brendan-skynet-0.9.315 lib/skynet/console.rb
brendan-skynet-0.9.316 lib/skynet/console.rb
brendan-skynet-0.9.317 lib/skynet/console.rb
brendan-skynet-0.9.318 lib/skynet/console.rb