Sha256: 006c3e5cfa271f6ac8c1e57e89cd24ee5ccac4d34dde0a81d66fcf0ca6a77d94

Contents?: true

Size: 1.83 KB

Versions: 6

Compression:

Stored size: 1.83 KB

Contents

#!/usr/bin/env jruby
#
# IRB in swing
#
# Damian Steer (pldms@mac.com)

require "rubygems"
require "rubeus"
Rubeus::Swing.irb

require 'jruby'
require 'irb'
require 'irb/completion'

# import java.awt.Color
# import java.awt.Font
# import javax.swing.JFrame
# import java.awt.EventQueue

# Try to find preferred font family, use otherwise -- err --  otherwise
def find_font(otherwise, style, size, *families)
  avail_families = java.awt.GraphicsEnvironment.local_graphics_environment.available_font_family_names
  fontname = families.find(proc {otherwise}) { |name| avail_families.include? name }
  Font.new(fontname, style, size)
end

text = javax.swing.JTextPane.new
text.font = find_font('Monospaced', Font::PLAIN, 14, 'Monaco', 'Andale Mono')
text.margin = java.awt.Insets.new(8,8,8,8)
text.caret_color = Color.new(0xa4, 0x00, 0x00)
text.background = Color.new(0xf2, 0xf2, 0xf2)
text.foreground = Color.new(0xa4, 0x00, 0x00)

pane = javax.swing.JScrollPane.new
pane.viewport_view = text
frame = JFrame.new('JRuby IRB Console (tab will autocomplete)')
frame.default_close_operation = JFrame::EXIT_ON_CLOSE
frame.set_size(700, 600)
frame.content_pane.add(pane)
tar = org.jruby.demo.TextAreaReadline.new(text,
      " Welcome to the JRuby IRB Console [#{JRUBY_VERSION}] \n\n")
JRuby.objectspace = true # useful for code completion
tar.hook_into_runtime_with_streams(JRuby.runtime)

# We need to show the frame on EDT,
# to avoid deadlocks.

# Once JRUBY-2449 is fixed,
# the code will me simplifed.
class FrameBringer
  include java.lang.Runnable
  def initialize(frame)
    @frame = frame
  end
  def run
    @frame.visible = true
  end
end

EventQueue.invoke_later(FrameBringer.new(frame))

# From vanilla IRB
if __FILE__ == $0
  IRB.start(__FILE__)
else
  # check -e option
  if /^-e$/ =~ $0
    IRB.start(__FILE__)
  else
    IRB.setup(__FILE__)
  end
end
frame.dispose

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rubeus-0.1.0-java bin/jirb_rubeus
rubeus-0.0.9-java bin/jirb_rubeus
rubeus-0.0.8-java bin/jirb_rubeus
rubeus-0.0.5-java bin/jirb_rubeus
rubeus-0.0.7-java bin/jirb_rubeus
rubeus-0.0.6-java bin/jirb_rubeus