redcar-dev 0.12.9dev-java → 0.12.10dev-java

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -13,6 +13,8 @@ Version 0.12 (TBA)
13
13
  * Tweak to line numbers so highlighting isn't lost as doc passes 100 lines (Dan Lucraft)
14
14
  * Added next line, previous line bindings to Ctrl+N and Ctrl+P (Dan Lucraft)
15
15
  * Added open line, transpose characters commands (Dan Lucraft)
16
+ * OSX style unified toolbars (Dan Lucraft)
17
+ * Supports OS X Lion fullscreen mode (Dan Lucraft)
16
18
 
17
19
  Version 0.11 (23 March 2011)
18
20
  ============================
data/lib/redcar.rb CHANGED
@@ -57,7 +57,7 @@ end
57
57
  #
58
58
  # and so on.
59
59
  module Redcar
60
- VERSION = '0.12.9dev' # also change in the gemspec!
60
+ VERSION = '0.12.10dev' # also change in the gemspec!
61
61
  VERSION_MAJOR = 0
62
62
  VERSION_MINOR = 12
63
63
  VERSION_RELEASE = 0
@@ -54,7 +54,6 @@ module Redcar
54
54
  "http://redcar.s3.amazonaws.com/clojure-1.2beta1.jar" => "/clojure.jar",
55
55
  "http://redcar.s3.amazonaws.com/clojure-contrib-1.2beta1.jar" => "/clojure-contrib.jar",
56
56
  "http://redcar.s3.amazonaws.com/org-enclojure-repl-server.jar" => nil,
57
- "http://mirrors.ibiblio.org/pub/mirrors/maven2/org/codehaus/groovy/groovy-all/1.7.4/groovy-all-1.7.4.jar" => "/groovy-all.jar",
58
57
  "http://mirrors.ibiblio.org/pub/mirrors/maven2/org/tmatesoft/svnkit/svnkit/1.3.4/svnkit-1.3.4.jar" => "/svnkit.jar",
59
58
  # "http://mirrors.ibiblio.org/pub/mirrors/maven2/rhino/js/1.7R2/js-1.7R2.jar" => "/js.jar",
60
59
  "http://redcar.s3.amazonaws.com/deps/rhino-js-1.7R2.jar" => "/js.jar",
@@ -3,21 +3,19 @@ module Redcar
3
3
  class ApplicationSWT
4
4
  class ToolBar
5
5
 
6
- ICONS_DIR = File.join(Redcar.root, %w(share icons))
7
6
  DEFAULT_ICON = File.join(Redcar.root, %w(share icons document.png))
8
7
 
9
-
10
8
  def self.icons
11
9
  @icons = {
12
- :new => File.join(ICONS_DIR, "document-text.png"),
13
- :open => File.join(ICONS_DIR, "folder-open-document.png"),
14
- :open_dir => File.join(ICONS_DIR, "blue-folder-horizontal-open.png"),
15
- :save => File.join(ICONS_DIR, "disk.png"),
16
- :save_as => File.join(ICONS_DIR, "disk--plus.png"),
10
+ :new => File.join(Redcar.icons_directory, "document-text.png"),
11
+ :open => File.join(Redcar.icons_directory, "folder-open-document.png"),
12
+ :open_dir => File.join(Redcar.icons_directory, "blue-folder-horizontal-open.png"),
13
+ :save => File.join(Redcar.icons_directory, "disk.png"),
14
+ :save_as => File.join(Redcar.icons_directory, "disk--plus.png"),
17
15
  #:save_all => File.join(ICONS_DIR, "save_all.png"),
18
- :undo => File.join(ICONS_DIR, "arrow-circle-225-left.png"),
19
- :redo => File.join(ICONS_DIR, "arrow-circle-315.png"),
20
- :search => File.join(ICONS_DIR, "binocular.png")
16
+ :undo => File.join(Redcar.icons_directory, "arrow-circle-225-left.png"),
17
+ :redo => File.join(Redcar.icons_directory, "arrow-circle-315.png"),
18
+ :search => File.join(Redcar.icons_directory, "binocular.png")
21
19
  }
22
20
  end
23
21
 
@@ -32,64 +30,65 @@ module Redcar
32
30
  attr_reader :coolbar, :toolbar, :coolitem, :toolbars, :coolitems
33
31
 
34
32
  def initialize(window, toolbar_model, options={})
35
- s = Time.now
36
- @toolbars = {}
37
- @coolitems = {}
38
- @entries = Hash.new{|hash, key| hash[key] = Array.new}
39
- @coolbar = Swt::Widgets::CoolBar.new(window.shell, Swt::SWT::FLAT | Swt::SWT::HORIZONTAL)
33
+ # @toolbars = {}
34
+ # @coolitems = {}
35
+ @entries = Hash.new {|h,k| h[k] = [] }
36
+ @toolbar = window.shell.getToolBar
37
+ p @toolbar
38
+ # @coolbar = Swt::Widgets::CoolBar.new(window.shell, Swt::SWT::FLAT | Swt::SWT::HORIZONTAL)
40
39
  return unless toolbar_model
41
40
  toolbar_model.each do |entry|
42
- @name = entry.barname || :new
43
- if not @toolbars[@name]
44
- if @name == :core
45
- @coolitem = Swt::Widgets::CoolItem.new(@coolbar, Swt::SWT::FLAT, 0)
46
- else
47
- @coolitem = Swt::Widgets::CoolItem.new(@coolbar, Swt::SWT::FLAT)
48
- end
49
-
50
- @toolbars[@name] = create_toolbar(@coolbar)
51
- @coolitems[@name] = @coolitem
52
- else
53
- @toolbar = @toolbars[@name]
54
- @coolitem = @coolitems[@name]
55
- end
56
- @entries[@name] << entry
41
+ name = entry.barname || :new
42
+ @entries[name] << entry
43
+ # name = entry.barname || :new
44
+ # if not @toolbars[name]
45
+ # if name == :core
46
+ # coolitem = Swt::Widgets::CoolItem.new(@coolbar, Swt::SWT::FLAT, 0)
47
+ # else
48
+ # coolitem = Swt::Widgets::CoolItem.new(@coolbar, Swt::SWT::FLAT)
49
+ # end
50
+ #
51
+ # @toolbars[name] = create_toolbar(@coolbar)
52
+ # @coolitems[name] = coolitem
53
+ # else
54
+ # @toolbar = @toolbars[name]
55
+ # coolitem = @coolitems[name]
56
+ # end
57
57
  end
58
-
59
- @toolbars.each_key do |key|
60
-
61
- @toolbar = @toolbars[key]
62
- @coolitem = @coolitems[key]
63
- @toolbar_data = @entries[key]
64
- @coolitem.setControl(@toolbar)
65
-
66
- add_entries_to_toolbar(@toolbar, @toolbar_data)
67
- @p = @toolbar.computeSize(Swt::SWT::DEFAULT, Swt::SWT::DEFAULT)
68
- @point = @coolitem.computeSize(@p.x, @p.y)
69
- #@coolitem.setPreferredSize(@point)
70
- #@coolitem.setMinimumSize(@point)
71
- @coolitem.setSize(@point.x, @point.y)
58
+ add_entries_to_toolbar(@toolbar, @entries[:core])
59
+ @entries.each do |name, es|
60
+ next if name == :core
61
+ add_entries_to_toolbar(@toolbar, es)
62
+ sep = Swt::Widgets::ToolItem.new(@toolbar, Swt::SWT::DEFAULT)
72
63
  end
73
-
74
- #puts "ApplicationSWT::ToolBar initialize took #{Time.now - s}s"
75
- @coolbar.setLocked(true)
76
- @coolbar.pack()
64
+ # @toolbars.each do |name, toolbar|
65
+ # coolitem = @coolitems[name]
66
+ # toolbar_data = @entries[name]
67
+ # coolitem.setControl(toolbar)
68
+ #
69
+ # p = toolbar.computeSize(Swt::SWT::DEFAULT, Swt::SWT::DEFAULT)
70
+ # point = coolitem.computeSize(p.x, p.y)
71
+ # coolitem.setSize(point.x, point.y)
72
+ # end
73
+ #
74
+ # @coolbar.setLocked(true)
75
+ # @coolbar.pack()
77
76
  end
78
77
 
79
- def create_toolbar(composite)
80
- @toolbar = Swt::Widgets::ToolBar.new(composite, Swt::SWT::FLAT)
81
- @toolbar.set_visible(false)
82
- @toolbar
83
- end
78
+ # def create_toolbar
79
+ # @toolbar = Swt::Widgets::ToolBar.new(composite, Swt::SWT::FLAT)
80
+ # @toolbar.set_visible(false)
81
+ # @toolbar
82
+ # end
84
83
 
85
84
  def show
86
- @toolbars.each_value { |toolbar| toolbar.set_visible(true) }
87
- @coolbar.set_visible(true)
85
+ # @toolbars.each_value { |toolbar| toolbar.set_visible(true) }
86
+ @toolbar.set_visible(true)
88
87
  end
89
88
 
90
89
  def hide
91
- @toolbars.each_value { |toolbar| toolbar.dispose() }
92
- @coolbar.dispose()
90
+ # @toolbars.each_value { |toolbar| toolbar.dispose() }
91
+ @toolbar.dispose()
93
92
  end
94
93
 
95
94
  def close
@@ -98,11 +97,12 @@ module Redcar
98
97
  end
99
98
 
100
99
  def height
101
- @h = 0
102
- @coolbar.getItems.each do |i|
103
- @h = ( @h > i.getSize.y ) ? @h : i.getSize.y
100
+ return 0
101
+ h = 0
102
+ @toolbar.getItems.each do |i|
103
+ h = ( h > i.getSize.y ) ? h : i.getSize.y
104
104
  end
105
- @h
105
+ h
106
106
  end
107
107
 
108
108
  private
@@ -116,10 +116,10 @@ module Redcar
116
116
  #new_toolbar = Swt::Widgets::ToolBar.new(@window.shell, Swt::SWT::DROP_DOWN)
117
117
  new_toolbar = Swt::Widgets::ToolBar.new(toolbar)
118
118
  toolbar_header.toolbar = new_toolbar
119
- toolbar_header.add_arm_listener do
120
- new_toolbar.get_items.each {|i| i.dispose }
121
- add_entries_to_toolbar(new_toolbar, entry)
122
- end
119
+ # toolbar_header.add_arm_listener do
120
+ # new_toolbar.get_items.each {|i| i.dispose }
121
+ # add_entries_to_toolbar(new_toolbar, entry)
122
+ # end
123
123
  elsif entry.is_a?(Redcar::ToolBar)
124
124
  new_toolbar = Swt::Widgets::ToolBar.new(toolbar)
125
125
  add_entries_to_toolbar(new_toolbar, entry)
@@ -262,9 +262,18 @@ module Redcar
262
262
  @sash.layout_data.left = Swt::Layout::FormAttachment.new(0, client_area.width - SASH_WIDTH)
263
263
  end
264
264
  end
265
+ activate_osx_fullscreen_option
265
266
  ApplicationSWT.register_shell(@shell)
266
267
  end
267
-
268
+
269
+ FULL_SCREEN_SHELL_ICON = 1 << 7
270
+
271
+ def activate_osx_fullscreen_option
272
+ if Redcar.platform == :osx
273
+ @shell.view.window.set_collection_behavior(FULL_SCREEN_SHELL_ICON)
274
+ end
275
+ end
276
+
268
277
  def create_sashes(window_model)
269
278
  orientation = horizontal_vertical(window_model.notebook_orientation)
270
279
 
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redcar-dev
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: 6
5
- version: 0.12.9dev
4
+ prerelease: 7
5
+ version: 0.12.10dev
6
6
  platform: java
7
7
  authors:
8
8
  - Daniel Lucraft
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-24 00:00:00 +01:00
13
+ date: 2011-08-03 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -525,18 +525,6 @@ files:
525
525
  - plugins/encryption/plugin.rb
526
526
  - plugins/execute_current_tab/plugin.rb
527
527
  - plugins/execute_current_tab/lib/execute_current_tab.rb
528
- - plugins/groovy/plugin.rb
529
- - plugins/groovy/features/syntax_check_groovy.feature
530
- - plugins/groovy/features/fixtures/test.groovy
531
- - plugins/groovy/features/fixtures/lib/classes.jar
532
- - plugins/groovy/features/step_definitions/groovy_steps.rb
533
- - plugins/groovy/features/support/env.rb
534
- - plugins/groovy/lib/groovy.rb
535
- - plugins/groovy/lib/groovy/commands.rb
536
- - plugins/groovy/lib/groovy/repl_mirror.rb
537
- - plugins/groovy/lib/groovy/syntax_checker.rb
538
- - plugins/groovy/spec/spec_helper.rb
539
- - plugins/groovy/spec/groovy/repl_mirror_spec.rb
540
528
  - plugins/help/plugin.rb
541
529
  - plugins/help/lib/help.rb
542
530
  - plugins/help/lib/help/help_tab.rb
File without changes
@@ -1,27 +0,0 @@
1
- When /^I add "([^"]*)" to the "([^"]*)" classpath$/ do |dir,plugin|
2
- File.open(File.expand_path("plugins/#{plugin}/features/fixtures/.redcar/classpath.groovy"), "a") do |f|
3
- f.puts <<-CONFIG
4
- def redcar_config = new File(getClass().protectionDomain.codeSource.location.path).parentFile
5
- def project = redcar_config.parentFile
6
- def classpath = []
7
-
8
- //installed libraries
9
- def lib = new File(project.path + File.separator + "lib")
10
- lib.list().each {name -> classpath << lib.path+File.separator+name}
11
-
12
- //compiled classes
13
- def target_classes = new File(
14
- project.path + File.separator +
15
- "target" + File.separator +
16
- "classes"
17
- )
18
-
19
- classpath << target_classes.path
20
-
21
- //other classes
22
- classpath << project.path + File.separator + "#{dir}"
23
-
24
- return classpath.toArray()
25
- CONFIG
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- After do
2
- # Truncate the test file
3
- File.open(File.expand_path("../../fixtures/test.groovy", __FILE__), "w")
4
-
5
- #recreate the classpath file
6
- File.open(File.expand_path("../../fixtures/.redcar/classpath.groovy", __FILE__), "w") do |f|
7
- f.puts <<-CONFIG
8
- def redcar_config = new File(getClass().protectionDomain.codeSource.location.path).parentFile
9
- def project = redcar_config.parentFile
10
- def classpath = []
11
-
12
- //installed libraries
13
- def lib = new File(project.path + File.separator + "lib")
14
- lib.list().each {name -> classpath << lib.path+File.separator+name}
15
-
16
- //compiled classes
17
- def target_classes = new File(
18
- project.path + File.separator +
19
- "target" + File.separator +
20
- "classes"
21
- )
22
- classpath << target_classes.path
23
-
24
- return classpath.toArray()
25
- CONFIG
26
- end
27
- end
@@ -1,72 +0,0 @@
1
- Feature: Syntax Checking for Groovy
2
- As a user
3
- I want to get annotations on syntax errors in Groovy files
4
-
5
- Background:
6
- When I have opened "plugins/groovy/features/fixtures/test.groovy"
7
-
8
- Scenario: A syntax-clean Groovy file has no syntax error annotations
9
- When I replace the contents with "class Foo {\n\n}"
10
- And I save the tab
11
- Then the tab should not have annotations
12
-
13
- Scenario: A syntax-error in a Groovy file should cause syntax error annotations
14
- When I replace the contents with "class Foo {\n sdef\n}"
15
- And I save the tab
16
- Then the tab should have annotations
17
- And the tab should have an annotation on line 2
18
-
19
- Scenario: Fixing a syntax-error in a Groovy file should cause syntax error annotations to vanish
20
- When I replace the contents with "class Foo {\n sdef\n}"
21
- And I save the tab
22
- Then the tab should have annotations
23
- When I replace the contents with "class Foo {\n\n}"
24
- And I save the tab
25
- Then the tab should not have annotations
26
-
27
- Scenario: A file which references unknown groovy classes should cause syntax error annotations
28
- And I replace the contents with "class Foo {\n def x = new Bar(10)\n def y = new FooBar()\n}"
29
- And I save the tab
30
- Then the tab should have annotations
31
- And the tab should have an annotation on line 2
32
-
33
- Scenario: A project can add libraries and compiled class directories to the groovy classpath
34
- When I will choose "plugins/groovy/features/fixtures" from the "open_directory" dialog
35
- And I open a directory
36
- And I replace the contents with "class Foo {\n def x = new Bar(10)\n def y = new FooBar()\n}"
37
- And I save the tab
38
- Then the tab should not have annotations
39
-
40
- Scenario: If a project classpath.groovy file has syntax errors, there should be an error message and annotations
41
- And I close the focussed tab
42
- Given I have not suppressed syntax checking message dialogs
43
- When I will choose "plugins/groovy/features/fixtures" from the "open_directory" dialog
44
- And I open a directory
45
- And I have opened "plugins/groovy/features/fixtures/.redcar/classpath.groovy"
46
- And I replace the contents with "def x = 4\nsdef"
47
- And I save the tab
48
- Then I should see a message box containing "An error occurred while loading groovy classpath file"
49
-
50
- Scenario: If an error occurs while parsing a groovy file, there should be an error message
51
- Given I have not suppressed syntax checking message dialogs
52
- When I will choose "plugins/groovy/features/fixtures" from the "open_directory" dialog
53
- And I open a directory
54
- And I add "lib2" to the "groovy" classpath
55
- And I replace the contents with "class Foo {\n def x = new Bar(10)\n def y = new FooBaz()\n}"
56
- And I save the tab
57
- Then I should see a message box containing "An error occurred while parsing"
58
- And the tab should have an annotation on line 2
59
-
60
- Scenario: If syntax message dialogs are suppressed, I should see no message boxes
61
- Given I have suppressed syntax checking message dialogs
62
- When I will choose "plugins/groovy/features/fixtures" from the "open_directory" dialog
63
- And I open a directory
64
- And I have opened "plugins/groovy/features/fixtures/.redcar/classpath.groovy"
65
- And I replace the contents with "sdef"
66
- And I save the tab
67
- Then the tab should not have annotations
68
- When I close the focussed tab
69
- And I add "lib2" to the "groovy" classpath
70
- And I replace the contents with "class Foo {\n def x = new Bar(10)\n def y = new FooBaz()\n}"
71
- And I save the tab
72
- Then the tab should have an annotation on line 2
@@ -1,38 +0,0 @@
1
-
2
- require 'groovy/commands'
3
- require 'groovy/repl_mirror'
4
- require 'groovy/syntax_checker'
5
-
6
- module Redcar
7
- class Groovy
8
-
9
- def self.load_dependencies
10
- unless @loaded
11
- require File.join(Redcar.asset_dir,"groovy-all")
12
- @loaded = true
13
- end
14
- end
15
-
16
- def self.menus
17
- Redcar::Menu::Builder.build do
18
- sub_menu "Plugins" do
19
- sub_menu "REPL" do
20
- item "Open Groovy REPL", OpenGroovyREPL
21
- end
22
- end
23
- end
24
- end
25
-
26
- def self.keymaps
27
- osx = Keymap.build("main", :osx) do
28
- link "Cmd+Alt+G", OpenGroovyREPL
29
- end
30
-
31
- linwin = Keymap.build("main", [:linux, :windows]) do
32
- link "Ctrl+Alt+G", OpenGroovyREPL
33
- end
34
-
35
- [linwin, osx]
36
- end
37
- end
38
- end
@@ -1,10 +0,0 @@
1
-
2
- module Redcar
3
- class Groovy
4
- class OpenGroovyREPL < Redcar::REPL::OpenREPL
5
- def execute
6
- open_repl(ReplMirror.new)
7
- end
8
- end
9
- end
10
- end
@@ -1,85 +0,0 @@
1
-
2
- require 'java'
3
-
4
- module Redcar
5
- class Groovy
6
- class ReplMirror < Redcar::REPL::ReplMirror
7
- def title
8
- "Groovy REPL"
9
- end
10
-
11
- def grammar_name
12
- "Groovy REPL"
13
- end
14
-
15
- def prompt
16
- "groovy>"
17
- end
18
-
19
- def evaluator
20
- @instance ||= ReplMirror::Evaluator.new
21
- end
22
-
23
- def format_error(e)
24
- backtrace = e.backtrace
25
- "ERROR #{e.class}:\n #{e.message}\n #{backtrace.join("\n ")}"
26
- end
27
-
28
- def help
29
- h = super
30
- h << """
31
- Note on Groovy Script Scoping:
32
- Classes, undefined variables, and undefined closures are saved in the script
33
- binding between statements.
34
- Defined methods, closures, and variables are not added to the binding,
35
- because they are considered local variables and thus are not available after
36
- the defining statement.
37
-
38
- Example:
39
-
40
- def foo = 'hello! I am a local variable'
41
- foo = 'hi! I am a binding variable'
42
-
43
- See 'http://groovy.codehaus.org/Scoping+and+the+Semantics+of+%22def%22'
44
- for more information.
45
- """
46
- end
47
-
48
- class Evaluator
49
- def self.load_dependencies
50
- unless @loaded
51
- Groovy.load_dependencies
52
- import 'groovy.lang.GroovyShell'
53
- import 'java.io.PrintWriter'
54
- import 'java.io.StringWriter'
55
- @loaded = true
56
- end
57
- end
58
-
59
- def initialize
60
- Evaluator.load_dependencies
61
- @out = StringWriter.new
62
- @shell = GroovyShell.new
63
- @shell.setProperty('out',@out)
64
- end
65
-
66
- def inspect
67
- "groovyREPL main"
68
- end
69
-
70
- def execute(cmd)
71
- output = @shell.evaluate(cmd,"GroovyREPL").to_s
72
- output = "null" unless output and not output.empty?
73
- if @out and not @out.toString().empty?
74
- console = @out.toString() + "\n"
75
- else
76
- console = ""
77
- end
78
- buf = @out.getBuffer()
79
- buf.delete(0,buf.length()) if buf.length() > 0
80
- console + "===> #{output}"
81
- end
82
- end
83
- end
84
- end
85
- end
@@ -1,81 +0,0 @@
1
-
2
- require 'java'
3
-
4
- module Redcar
5
- class Groovy
6
- class SyntaxChecker < Redcar::SyntaxCheck::Checker
7
- supported_grammars "Groovy", "Easyb"
8
-
9
- def self.load_dependencies
10
- unless @loaded
11
- Groovy.load_dependencies
12
- import 'groovy.lang.GroovyShell'
13
- import 'org.codehaus.groovy.control.CompilationFailedException'
14
- import 'org.codehaus.groovy.control.CompilerConfiguration'
15
- @loaded = true
16
- end
17
- end
18
-
19
- def initialize(document)
20
- super
21
- SyntaxChecker.load_dependencies
22
- end
23
-
24
- def check(*args)
25
- path = manifest_path(doc)
26
- name = File.basename(path)
27
- shell = create_shell
28
- text = doc.get_all_text
29
- io = java.io.File.new(path)
30
- begin
31
- shell.parse(io)
32
- rescue CompilationFailedException => e
33
- create_syntax_error(doc, e.message, name).annotate
34
- rescue Object => e
35
- Redcar::SyntaxCheck.message(
36
- "An error occurred while parsing #{name}: #{e.message}",:error)
37
- end
38
- end
39
-
40
- def create_syntax_error(doc, message, name)
41
- message =~ /#{Regexp.escape(name)}: (\d+):(.*)/
42
- line = $1.to_i - 1
43
- message = $2
44
- Redcar::SyntaxCheck::Error.new(doc, line, message)
45
- end
46
-
47
- def classpath_files(project)
48
- project.config_files("classpath.groovy")
49
- end
50
-
51
- def classpath(project)
52
- parts = []
53
- shell = GroovyShell.new
54
- files = classpath_files(project)
55
- return unless files.any?
56
- files.each do |path|
57
- begin
58
- file = java.io.File.new(path)
59
- part = shell.run(file, [])
60
- parts += part if part
61
- rescue Object => e
62
- Redcar::SyntaxCheck.message(
63
- "An error occurred while loading groovy classpath file #{path}: #{e.message}",:error)
64
- end
65
- end
66
- parts
67
- end
68
-
69
- def create_shell
70
- config = CompilerConfiguration.new
71
- if project = Redcar::Project::Manager.focussed_project
72
- classpath = classpath(project)
73
- config.setClasspathList(classpath) if classpath and classpath.any?
74
- end
75
- shell = GroovyShell.new(config)
76
- shell.setProperty("out",nil)
77
- shell
78
- end
79
- end
80
- end
81
- end
@@ -1,8 +0,0 @@
1
- Plugin.define do
2
- name "groovy"
3
- version "1.0"
4
- file "lib", "groovy"
5
- object "Redcar::Groovy"
6
- dependencies "syntax_check", ">0",
7
- "repl", ">0"
8
- end
@@ -1,56 +0,0 @@
1
- require File.join(File.dirname(__FILE__),'..', 'spec_helper')
2
-
3
- class Redcar::Groovy
4
- describe ReplMirror do
5
- before(:all) do
6
- @mirror = ReplMirror.new
7
- @changed_event = false
8
- @mirror.add_listener(:change) { @changed_event = true }
9
- end
10
-
11
- def wait_for_prompt
12
- while @mirror.read.nil? || @mirror.read[-8,8] != "groovy> "
13
- end
14
- end
15
-
16
- describe "before executing" do
17
- it "should exist" do
18
- @mirror.should be_exist
19
- end
20
-
21
- it "should have a title" do
22
- @mirror.title.should == "Groovy REPL"
23
- end
24
-
25
- it "should not be changed" do
26
- @mirror.should_not be_changed
27
- end
28
- end
29
-
30
- describe "after executing" do
31
- it "should exist" do
32
- @mirror.should be_exist
33
- end
34
-
35
- it "should have a title" do
36
- @mirror.title.should == "Groovy REPL"
37
- end
38
-
39
- it "should not be changed" do
40
- @mirror.should_not be_changed
41
- end
42
-
43
- it "should have a prompt" do
44
- wait_for_prompt
45
- @mirror.read.should == (<<-Groovy).chomp
46
- # Groovy REPL
47
- # type 'help' for help
48
-
49
- groovy>
50
- Groovy
51
- end
52
-
53
- end
54
-
55
- end
56
- end
@@ -1,5 +0,0 @@
1
- $:.push File.join(File.dirname(__FILE__), '..', '..', '..', 'lib')
2
-
3
- require 'redcar'
4
- Redcar.environment = :test
5
- Redcar.load_unthreaded