Skip to content

Commit

Permalink
Updated with Rubinius Support
Browse files Browse the repository at this point in the history
  • Loading branch information
jimweirich committed Dec 25, 2010
1 parent db3bbdc commit 3ce23a8
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 18 deletions.
2 changes: 1 addition & 1 deletion Rakefile
Expand Up @@ -75,7 +75,7 @@ module RubyImpls


# List of expected ruby implementations. # List of expected ruby implementations.
def self.expected 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
end end


Expand Down
2 changes: 1 addition & 1 deletion src/about_methods.rb
Expand Up @@ -44,7 +44,7 @@ def test_calling_global_methods_with_wrong_number_of_arguments
my_global_method my_global_method
end end
#-- #--
pattern = "wrong (number|#) of arguments" pattern = "wrong (number|#) of arguments|given \\d+, expected \\d+"
#++ #++
assert_match(/#{__(pattern)}/, exception.message) assert_match(/#{__(pattern)}/, exception.message)


Expand Down
30 changes: 16 additions & 14 deletions src/about_objects.rb
Expand Up @@ -30,20 +30,22 @@ def test_every_object_has_different_id
assert_equal __(true), obj.object_id != another_obj.object_id assert_equal __(true), obj.object_id != another_obj.object_id
end end


def test_some_system_objects_always_have_the_same_id not_in_ruby_version('rbx') do
assert_equal __(0), false.object_id def test_some_system_objects_always_have_the_same_id
assert_equal __(2), true.object_id assert_equal __(0), false.object_id
assert_equal __(4), nil.object_id assert_equal __(2), true.object_id
end assert_equal __(4), nil.object_id

end
def test_small_integers_have_fixed_ids
assert_equal __(1), 0.object_id def test_small_integers_have_fixed_ids
assert_equal __(3), 1.object_id assert_equal __(1), 0.object_id
assert_equal __(5), 2.object_id assert_equal __(3), 1.object_id
assert_equal __(201), 100.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 end


def test_clone_creates_a_different_object def test_clone_creates_a_different_object
Expand Down
9 changes: 7 additions & 2 deletions src/edgecase.rb
Expand Up @@ -13,13 +13,18 @@ class FillMeInError < StandardError
def ruby_version?(version) def ruby_version?(version)
RUBY_VERSION =~ /^#{version}/ || RUBY_VERSION =~ /^#{version}/ ||
(version == 'jruby' && defined?(JRUBY_VERSION)) || (version == 'jruby' && defined?(JRUBY_VERSION)) ||
(version == 'mri' && ! defined?(JRUBY_VERSION)) (version == 'mri' && (! defined?(JRUBY_VERSION) && ! defined?(Rubinius))) ||
(version == 'rbx' && defined?(Rubinius))
end end


def in_ruby_version(*versions) def in_ruby_version(*versions)
yield if versions.any? { |v| ruby_version?(v) } yield if versions.any? { |v| ruby_version?(v) }
end end


def not_in_ruby_version(*versions)
yield unless versions.any? { |v| ruby_version?(v) }
end

# Standard, generic replacement value. # Standard, generic replacement value.
# If value19 is given, it is used inplace of value for Ruby 1.9. # If value19 is given, it is used inplace of value for Ruby 1.9.
def __(value="FILL ME IN", value19=:mu) def __(value="FILL ME IN", value19=:mu)
Expand Down Expand Up @@ -52,7 +57,7 @@ def ____(method=nil)
end end
end end


in_ruby_version("1.9") do in_ruby_version("1.9", "rbx") do
public :method_missing public :method_missing
end end
end end
Expand Down

0 comments on commit 3ce23a8

Please sign in to comment.