diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-08-14 00:34:47 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-08-14 00:34:47 -0700 |
| commit | ab1c5c166c7271b39ba46e447ec655f8cd66bd3d (patch) | |
| tree | a028de3574c724f2c09e3b3d625e4a0faf8662b0 | |
| parent | 0dfda0c9704a0375705cf401ccda6b277bc68bed (diff) | |
| parent | d55eb947f93b066ee5d4dea95543241b24009f1f (diff) | |
| download | mruby-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.rb | 2 | ||||
| -rw-r--r-- | test/t/class.rb | 28 |
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 |
