diff --git a/.gitignore b/.gitignore index 4761ed7..d913617 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ target -greeter.jar + diff --git a/Rakefile b/Rakefile index d239705..61c3f92 100644 --- a/Rakefile +++ b/Rakefile @@ -2,20 +2,22 @@ $LOAD_PATH.unshift "./lib" src_dir = 'src/main/java' build_dir = 'target' -directory build_dir +classes_dir = 'target/classes' +jar_file = "#{build_dir}/rake-ant.jar" +directory classes_dir # Plain, free-form command-line namespace :plain do desc "Compile the code" - task :compile => build_dir do - files = FileList["src/**/*.java"] + task :compile => classes_dir do + files = FileList["#{src_dir}/**/*.java"] cpath = FileList["lib/*.jar"].join(':') - sh "javac -d #{build_dir} -classpath #{cpath} #{files}" + sh "javac -d #{classes_dir} -classpath #{cpath} #{files}" end desc "Create a jar file of the compiled code" task :jar => :compile do - sh "jar cf greeter.jar -C #{build_dir} ." + sh "jar cf #{jar_file} -C #{classes_dir} ." end end @@ -23,9 +25,9 @@ end require 'ant' namespace :ant do desc "Compile the code using Ant" - ant_task :compile => build_dir do - puts "Compiling java from #{src_dir} to #{build_dir}" - javac :srcdir => src_dir, :destdir => build_dir do + ant_task :compile => classes_dir do + puts "Compiling java from #{src_dir} to #{classes_dir}" + javac :srcdir => src_dir, :destdir => classes_dir do classpath do FileList["lib/*.jar"].each do |jar| pathelement :path => jar @@ -36,11 +38,14 @@ namespace :ant do desc "Create a jar file of the compiled code using Ant" ant_task :jar => "ant:compile" do - puts "Creating greeter.jar" - jar :destfile => "greeter.jar", :basedir => build_dir + puts "Creating #{jar_file}" + jar :destfile => jar_file, :basedir => classes_dir end end +$CLASSPATH << classes_dir +ENV['CLASSPATH'] = classes_dir + # RSpec require 'spec/rake/spectask' spec_dir = 'src/spec/ruby' @@ -51,7 +56,6 @@ end # Cucumber require 'cucumber/rake/task' -$CLASSPATH << build_dir desc "Run Cucumber on the project" Cucumber::Rake::Task.new(:features => "ant:compile") @@ -60,4 +64,4 @@ task :default => :features # Clean require 'rake/clean' -CLEAN << build_dir << "greeter.jar" +CLEAN << build_dir diff --git a/src/main/java/ruby/StackOverflowError.java b/src/main/java/ruby/StackOverflowError.java new file mode 100644 index 0000000..cedbd91 --- /dev/null +++ b/src/main/java/ruby/StackOverflowError.java @@ -0,0 +1,9 @@ +package ruby; + +public class StackOverflowError extends Exception { + public StackOverflowError() { + } + public StackOverflowError(String message) { + super(message); + } +} diff --git a/src/main/java/ruby/StackUnderflowError.java b/src/main/java/ruby/StackUnderflowError.java new file mode 100644 index 0000000..d31ba87 --- /dev/null +++ b/src/main/java/ruby/StackUnderflowError.java @@ -0,0 +1,9 @@ +package ruby; + +public class StackUnderflowError extends Exception { + public StackUnderflowError() { + } + public StackUnderflowError(String message) { + super(message); + } +} diff --git a/src/spec/ruby/stack_spec.rb b/src/spec/ruby/stack_spec.rb index 2a05349..e8dd396 100644 --- a/src/spec/ruby/stack_spec.rb +++ b/src/spec/ruby/stack_spec.rb @@ -1,4 +1,7 @@ +require 'java' import "ruby.Stack" +import "ruby.StackOverflowError" +import "ruby.StackUnderflowError" require File.dirname(__FILE__) + '/shared_stack_examples' describe Stack, " (empty)" do