summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2013-08-14 00:34:47 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2013-08-14 00:34:47 -0700
commitab1c5c166c7271b39ba46e447ec655f8cd66bd3d (patch)
treea028de3574c724f2c09e3b3d625e4a0faf8662b0
parent0dfda0c9704a0375705cf401ccda6b277bc68bed (diff)
parentd55eb947f93b066ee5d4dea95543241b24009f1f (diff)
downloadmruby-ab1c5c166c7271b39ba46e447ec655f8cd66bd3d.tar.gz
mruby-ab1c5c166c7271b39ba46e447ec655f8cd66bd3d.zip
Merge pull request #1473 from carsonmcdonald/fixclassnew
Fix Class#new call to inherited and add a couple Class tests
-rw-r--r--mrblib/class.rb2
-rw-r--r--test/t/class.rb28
2 files changed, 29 insertions, 1 deletions
diff --git a/mrblib/class.rb b/mrblib/class.rb
index 57aac2f93..7f37b7bc3 100644
--- a/mrblib/class.rb
+++ b/mrblib/class.rb
@@ -6,7 +6,7 @@ class Class
end
def self.new(*args)
obj = super
- obj.inerited
+ obj.inherited
obj
end
end
diff --git a/test/t/class.rb b/test/t/class.rb
index 95dbafbb1..3dea2152f 100644
--- a/test/t/class.rb
+++ b/test/t/class.rb
@@ -217,3 +217,31 @@ assert('Class Dup 2') do
module M; end
assert_equal(Module, M.dup.class)
end
+
+assert('Class new') do
+ assert_equal(Class, Class.new.class)
+end
+
+assert('Class#inherited') do
+ class Foo
+ @@subclass_name = nil
+ def self.inherited(subclass)
+ @@subclass_name = subclass
+ end
+ def self.subclass_name
+ @@subclass_name
+ end
+ end
+
+ assert_equal(nil, Foo.subclass_name)
+
+ class Bar < Foo
+ end
+
+ assert_equal(Bar, Foo.subclass_name)
+
+ class Baz < Bar
+ end
+
+ assert_equal(Baz, Foo.subclass_name)
+end