diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-05-25 20:08:09 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-09-04 16:17:06 +0900 |
| commit | 8a9f891fd3440e89b5ad7287769db8a9ffae9df5 (patch) | |
| tree | 11479ce9402d140d142ac5c1aa5470d04c4dd132 /mrbgems/mruby-kernel-ext/test | |
| parent | 2d8f4fa92fe14d5ec012533ade65eb013a8fc73a (diff) | |
| download | mruby-8a9f891fd3440e89b5ad7287769db8a9ffae9df5.tar.gz mruby-8a9f891fd3440e89b5ad7287769db8a9ffae9df5.zip | |
Rename `Kernel#__method__` to `Kernel#__callee__`
Because the current behavior of `__method__` is equivalent to `__callee__`.
Example:
# example.rb
def src
__send__(ARGV[0])
end
alias dst src
%w[src dst].each {|n| puts "call #{n} => #{__send__(n).inspect}"}
Ruby:
$ ruby example.rb __method__
call src => :src
call dst => :src
$ ruby example.rb __callee__
call src => :src
call dst => :dst
mruby:
$ mruby example.rb __method__
call src => :src
call dst => :dst
Diffstat (limited to 'mrbgems/mruby-kernel-ext/test')
| -rw-r--r-- | mrbgems/mruby-kernel-ext/test/kernel.rb | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/mrbgems/mruby-kernel-ext/test/kernel.rb b/mrbgems/mruby-kernel-ext/test/kernel.rb index fc4402b3d..1f682c42e 100644 --- a/mrbgems/mruby-kernel-ext/test/kernel.rb +++ b/mrbgems/mruby-kernel-ext/test/kernel.rb @@ -37,13 +37,22 @@ assert('Kernel.caller, Kernel#caller') do assert_raise(TypeError) { c.new.baz(nil) } end -assert('Kernel#__method__') do - assert_equal(:m, Class.new {def m; __method__; end}.new.m) - assert_equal(:m, Class.new {define_method(:m) {__method__}}.new.m) +assert('Kernel#__callee__') do + c = Class.new do + def m1; __callee__ end + define_method(:m2) {__callee__} + alias m3 m1 + alias_method :m4, :m2 + end + assert_equal(:m1, c.new.m1) + assert_equal(:m2, c.new.m2) + assert_equal(:m3, c.new.m3) + assert_equal(:m4, c.new.m4) + c = Class.new do [:m1, :m2].each do |m| define_method(m) do - __method__ + __callee__ end end end |
