Paweł Świątkowski
bdcd496bc2
Fix calling extended callback
...
The callback of extending module should be called, not of a singleton
class of an extended object.
2025-05-27 23:03:10 +02:00
Yukihiro "Matz" Matsumoto
ecd2d8c11e
wrap method arguments by parentheses as convention
2023-02-01 14:33:46 +09:00
Yukihiro "Matz" Matsumoto
01a21085f6
add a few regressions test from #2313
...
The code was contributed from Carson McDonald (@carsonmcdonald)
2021-06-03 16:47:04 +09:00
KOBAYASHI Shuji
8fa3995a1a
Singleton class of frozen object should be frozen
...
Before this patch:
p (class << Object.new.freeze; self end).frozen? #=> false
sc = class << (o=Object.new); self end; o.freeze; p sc.frozen? #=> false
After this patch / Ruby:
p (class << Object.new.freeze; self end).frozen? #=> true
sc = class << (o=Object.new); self end; o.freeze; p sc.frozen? #=> true
2019-04-25 19:48:40 +09:00
KOBAYASHI Shuji
4720648137
Fix modiying class variable to frozen class/module
2019-04-24 21:05:44 +09:00
KOBAYASHI Shuji
729ab86d49
Fix missing assertion in test/t/class.rb
2019-03-02 18:55:02 +09:00
KOBAYASHI Shuji
abbc501433
class/module expression with empty body should return nil
...
Before:
p(class A end) #=> A
p(class << self; end) #=> #<Class:#<Object:0x7fdc3880e420>>
p(module B end) #=> B
After/Ruby:
p(class A end) #=> nil
p(class << self; end) #=> nil
p(module B end) #=> nil
2019-01-28 21:29:55 +09:00
Yukihiro "Matz" Matsumoto
cca19532c5
Remove Kernel#class_defined? which is not available in CRuby; #3829
2019-01-03 11:34:35 +09:00
Yukihiro "Matz" Matsumoto
e471d37ca5
Separate meta-programming features to mruby-metaprog gem.
...
We assume meta-programming is less used in embedded environments.
We have moved following methods:
* Kernel module
global_variables, local_variables, singleton_class,
instance_variables, instance_variables_defined?, instance_variable_get,
instance_variable_set, methods, private_methods, public_methods,
protected_methods, singleton_methods, define_singleton_methods
* Module class
class_variables, class_variables_defined?, class_variable_get,
class_variable_set, remove_class_variable, included_modules,
instance_methods, remove_method, method_removed, constants
* Module class methods
constants, nesting
Note:
Following meta-programming methods are kept in the core:
* Module class
alias_method, undef_method, ancestors, const_defined?, const_get,
const_set, remove_const, method_defined?, define_method
* Toplevel object
define_method
`mruby-metaprog` gem is linked by default (specified in default.gembox).
When it is removed, it will save 40KB (stripped:8KB) on x86-64
environment last time I measured.
2018-08-30 22:30:36 +09:00
YAMAMOTO Masaya
dcd5d0ffec
Test for MRB_WITHOUT_FLOAT
2017-10-11 17:58:11 +09:00
Kouichi Nakanishi
fd0f79ca67
Get constant of parent class even if child class is defined in signleton class; fix #3575
2017-04-06 23:31:34 +09:00
Kouichi Nakanishi
5efe77fede
Modify class variable definition in singleton class; fix #3539
2017-03-30 16:29:47 +09:00
Yutaka HARA
3f83ec64a8
Add test for recently fixed bugs
2016-12-01 14:55:26 +09:00
Bouke van der Bijl
22f5504054
Fix segfault on remove_method with invalid argument
...
Reported by https://hackerone.com/jpenalbae
2016-11-24 10:13:47 -05:00
Kouhei Sutou
ad492eb9f3
Fix class variable reference in module
...
Fix #3079
2016-01-11 00:34:15 +09:00
cremno
59ea323976
check if outer is a class or module
...
For modules this check didn't exist yet. Also call #inspect.
2015-05-29 14:58:53 +02:00
Kouhei Sutou
e75e2083fd
Fix a bug that class variable can't be referenced from class method
...
Class method defined in singleton class should be evaluated in class
context not singleton class context.
fix #2515
2014-08-09 15:06:17 +09:00
take_cheeze
ec5b055694
Move direct superclass checking to test/t/superclass.rb.
2014-06-15 15:02:21 +09:00
ksss
1f3d7e939f
Class.new add test case
2014-05-22 00:11:40 +09:00
h2so5
25045345c9
clone Class/Module rightly
2014-01-25 07:47:15 +09:00
Carson McDonald
0b8e342d59
When superclass isn't a class tests
2013-12-27 18:33:25 -05:00
Carson McDonald
9f212b9e81
More singleton tests
2013-12-27 18:32:11 -05:00
Carson McDonald
66747603d5
Add more testing for singletons
2013-12-25 12:16:53 -05:00
h2so5
12e00f9238
implement Class.new with block
2013-10-30 12:52:26 +09:00
Yukihiro "Matz" Matsumoto
3a6391c485
update test code to ensure return value from class statement
2013-10-25 13:24:50 +09:00
fleuria
ba4a19dbe9
add a regression for #1544
2013-10-25 02:53:27 +08:00
Carson McDonald
d55eb947f9
Test for Class#inherited
2013-08-13 22:27:25 -04:00
Carson McDonald
e34bc72b89
Add test for Class.new(*args)
2013-08-13 22:11:14 -04:00
Jun Hiroe
ff7e599491
I fix order of actual and expect test value in class.rb.
2013-08-02 20:54:08 +09:00
Yukihiro "Matz" Matsumoto
34cd70b1c5
Merge pull request #1279 from Bovi-Li/improve-tests
...
Improve Test Infrastructure (Part 1)
2013-06-14 04:30:52 -07:00
Daniel Bovensiepen
c9caea64c8
Singleton raises TypeError on #new
2013-06-09 11:21:51 +08:00
Daniel Bovensiepen
968fc7a91c
Improve Class tests
2013-06-09 05:04:04 +08:00
Daniel Bovensiepen
39b6d087c7
Improve alias tests
2013-06-09 04:04:19 +08:00
Daniel Bovensiepen
83d04a539e
Improve undef tests
2013-06-09 03:51:44 +08:00
Carson McDonald
01c0373fac
Add undef var test
2013-06-08 11:10:41 -04:00
Masaki Muranaka
e129a4c8ef
Add test cases.
2013-04-02 11:43:30 +09:00
Masamitsu MURASE
d16659c7a5
Add test for undef and alias.
2013-01-20 17:44:28 +09:00
Masamitsu MURASE
b71063b239
Modify test for Class.
...
* Rename some classes in test/t/class.rb to avoid name conflict.
* Add tests for mismatch fo superclass.
2012-07-29 14:21:12 +09:00
Daniel Bovensiepen
5612d195ec
Improve Class#superclass to ISO
2012-06-03 23:29:40 +08:00
Yukihiro Matsumoto
7f243a9b53
resolve conflict in test/t/class.rb
2012-06-03 08:23:40 +09:00
Yukihiro Matsumoto
df80b7835a
Add Class#superclass; a patch made by @bovi; close #234
2012-06-03 08:20:48 +09:00
Daniel Bovensiepen
57bd8d49ec
Add first test case for Class#new and prepare further feature tests for it
2012-06-03 01:50:10 +08:00
Daniel Bovensiepen
150b235fb6
Add Tests for all Exception classes, for false, true, Proc, Module, nil and Object
2012-05-25 14:01:14 +08:00