diff --git a/Rakefile b/Rakefile index 19b3bc1..d60dfd2 100644 --- a/Rakefile +++ b/Rakefile @@ -75,7 +75,7 @@ module RubyImpls # List of expected ruby implementations. def self.expected - %w(ruby-1.8.6 ruby-1.8.7 ruby-1.9.2 jruby ree) + %w(ruby-1.8.6 ruby-1.8.7 ruby-1.9.2 jruby ree rbx) end end diff --git a/src/about_methods.rb b/src/about_methods.rb index 1497f9b..0bdb399 100644 --- a/src/about_methods.rb +++ b/src/about_methods.rb @@ -44,7 +44,7 @@ class AboutMethods < EdgeCase::Koan my_global_method end #-- - pattern = "wrong (number|#) of arguments" + pattern = "wrong (number|#) of arguments|given \\d+, expected \\d+" #++ assert_match(/#{__(pattern)}/, exception.message) diff --git a/src/about_objects.rb b/src/about_objects.rb index 1faf0a0..64f39ee 100644 --- a/src/about_objects.rb +++ b/src/about_objects.rb @@ -30,20 +30,22 @@ class AboutObjects < EdgeCase::Koan assert_equal __(true), obj.object_id != another_obj.object_id end - def test_some_system_objects_always_have_the_same_id - assert_equal __(0), false.object_id - assert_equal __(2), true.object_id - assert_equal __(4), nil.object_id - end + not_in_ruby_version('rbx') do + def test_some_system_objects_always_have_the_same_id + assert_equal __(0), false.object_id + assert_equal __(2), true.object_id + assert_equal __(4), nil.object_id + end - def test_small_integers_have_fixed_ids - assert_equal __(1), 0.object_id - assert_equal __(3), 1.object_id - assert_equal __(5), 2.object_id - assert_equal __(201), 100.object_id + def test_small_integers_have_fixed_ids + assert_equal __(1), 0.object_id + assert_equal __(3), 1.object_id + assert_equal __(5), 2.object_id + assert_equal __(201), 100.object_id - # THINK ABOUT IT: - # What pattern do the object IDs for small integers follow? + # THINK ABOUT IT: + # What pattern do the object IDs for small integers follow? + end end def test_clone_creates_a_different_object diff --git a/src/edgecase.rb b/src/edgecase.rb index c024438..37dc4a9 100644 --- a/src/edgecase.rb +++ b/src/edgecase.rb @@ -13,13 +13,18 @@ end def ruby_version?(version) RUBY_VERSION =~ /^#{version}/ || (version == 'jruby' && defined?(JRUBY_VERSION)) || - (version == 'mri' && ! defined?(JRUBY_VERSION)) + (version == 'mri' && (! defined?(JRUBY_VERSION) && ! defined?(Rubinius))) || + (version == 'rbx' && defined?(Rubinius)) end def in_ruby_version(*versions) yield if versions.any? { |v| ruby_version?(v) } end +def not_in_ruby_version(*versions) + yield unless versions.any? { |v| ruby_version?(v) } +end + # Standard, generic replacement value. # If value19 is given, it is used inplace of value for Ruby 1.9. def __(value="FILL ME IN", value19=:mu) @@ -52,7 +57,7 @@ class Object end end - in_ruby_version("1.9") do + in_ruby_version("1.9", "rbx") do public :method_missing end end