jruby-1.6.2 :003 > raise ArgumentError.new
ArgumentError: ArgumentError
from (irb):3:in `evaluate'
from org/jruby/RubyKernel.java:1088:in `e
from /Users/david/.rvm/rubies/jruby-1.6.2
irb.rb:158:in `eval_input'
from /Users/david/.rvm/rubies/jruby-1.6.2
irb.rb:271:in `signal_status'
from /Users/david/.rvm/rubies/jruby-1.6.2
irb.rb:155:in `eval_input'
from org/jruby/RubyKernel.java:1419:in `l
from org/jruby/RubyKernel.java:1191:in `c
from /Users/david/.rvm/rubies/jruby-1.6.2
irb.rb:154:in `eval_input'
from /Users/david/.rvm/rubies/jruby-1.6.2
Slide 9
Slide 9 text
do not
freak out
Slide 10
Slide 10 text
ruby-1.8.7 :001 > raise ArgumentError.new
ArgumentError: ArgumentError
from (irb):1
Slide 11
Slide 11 text
jruby-1.6.2 :001 > raise ArgumentError.new
ArgumentError: ArgumentError
from (irb):1:in `evaluate'
from org/jruby/RubyKernel.java:1088:in `e
from /Users/david/.rvm/rubies/jruby-1.6.2
irb.rb:158:in `eval_input'
from /Users/david/.rvm/rubies/jruby-1.6.2
irb.rb:271:in `signal_status'
from /Users/david/.rvm/rubies/jruby-1.6.2
irb.rb:155:in `eval_input'
from org/jruby/RubyKernel.java:1419:in `l
from org/jruby/RubyKernel.java:1191:in `c
from /Users/david/.rvm/rubies/jruby-1.6.2
irb.rb:154:in `eval_input'
from /Users/david/.rvm/rubies/jruby-1.6.2
Slide 12
Slide 12 text
jruby-1.6.2 :001 > raise ArgumentError.new
ArgumentError: ArgumentError
from (irb):1:in `evaluate'
from org/jruby/RubyKernel.java:1088:in `e
from /Users/david/.rvm/rubies/jruby-1.6.2
irb.rb:158:in `eval_input'
from /Users/david/.rvm/rubies/jruby-1.6.2
irb.rb:271:in `signal_status'
from /Users/david/.rvm/rubies/jruby-1.6.2
irb.rb:155:in `eval_input'
from org/jruby/RubyKernel.java:1419:in `l
from org/jruby/RubyKernel.java:1191:in `c
from /Users/david/.rvm/rubies/jruby-1.6.2
irb.rb:154:in `eval_input'
from /Users/david/.rvm/rubies/jruby-1.6.2
Slide 13
Slide 13 text
your ruby
code is our
test case
Slide 14
Slide 14 text
Test::Unit
def test_dir_enumerable
Dir.mkdir("./testDir_1")
d = Dir.new("./testDir_1")
assert(d.kind_of?(Enumerable))
end
Slide 15
Slide 15 text
Rspec
describe "glob file path" do
it "lists contents of a file" do
dir = Dir.new(@local_file_path)
dir.entries.should include("junit.jar")
end
end
Slide 16
Slide 16 text
follow
the
specification
Slide 17
Slide 17 text
RubySpec
describe "Dir.entries" do
...
it "returns an Array of filenames in an
existing directory including dotfiles" do
...
Slide 18
Slide 18 text
RubySpec
describe "Dir.entries" do
...
ruby_version_is "1.9" do
it "calls #to_path on ..." do
...
ruby code
static VALUE
dir_entries(int argc, VALUE *argv, VALUE io)
{
VALUE dir;
dir = dir_open_dir(argc, argv);
return rb_ensure(rb_Array, dir, dir_close, dir);
}
Slide 22
Slide 22 text
taming
the beast
Slide 23
Slide 23 text
Test::Unit
def test_dir_enumerable
Dir.mkdir("./testDir_1")
d = Dir.new("./testDir_1")
assert(d.kind_of?(Enumerable))
end
Slide 24
Slide 24 text
Test::Unit
def test_dir_enumerable
Dir.mkdir("./testDir_1")
d = Dir.new("./testDir_1")
assert(d.kind_of?(Enumerable))
end
Slide 25
Slide 25 text
Ruby class
$ vi src/org/jruby/RubyDir.java
@JRubyClass(name = "Dir",
include = "Enumerable")
public class RubyDir extends RubyObject {
Slide 26
Slide 26 text
Ruby class
$ vi src/org/jruby/RubyDir.java
@JRubyClass(name = "Dir",
include = "Enumerable")
public class RubyDir extends RubyObject {
Slide 27
Slide 27 text
Ruby class
$ vi src/org/jruby/RubyDir.java
@JRubyClass(name = "Dir",
include = "Enumerable")
public class RubyDir extends RubyObject {
Slide 28
Slide 28 text
Ruby class
$ vi src/org/jruby/RubyDir.java
@JRubyClass(name = "Dir",
include = "Enumerable")
public class RubyDir extends RubyObject {
Slide 29
Slide 29 text
Ruby class
$ vi src/org/jruby/RubyDir.java
@JRubyClass(name = "Dir",
include = "Enumerable")
public class RubyDir extends RubyObject {
Slide 30
Slide 30 text
Test::Unit
def test_dir_enumerable
Dir.mkdir("./testDir_1")
d = Dir.new("./testDir_1")
assert(d.kind_of?(Enumerable))
end
Slide 31
Slide 31 text
Test::Unit
def test_dir_enumerable
Dir.mkdir("./testDir_1")
d = Dir.new("./testDir_1")
assert(d.kind_of?(Enumerable))
end