From 3a9caad8ebe63dfe2b8583c72fc5e275f13e25c3 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 20 Sep 2018 12:06:53 +0900 Subject: Move `Symbol#to_proc` to the core from `mruby-symbol-ext` gem. Even though `Symbol#to_proc` is not included in ISO standard, the `some_method(&:method_name)` is used very widely and convenient. So we moved it to the core. --- mrbgems/mruby-symbol-ext/mrblib/symbol.rb | 6 ------ mrbgems/mruby-symbol-ext/test/symbol.rb | 4 ---- mrblib/symbol.rb | 7 +++++++ test/t/symbol.rb | 4 ++++ 4 files changed, 11 insertions(+), 10 deletions(-) create mode 100644 mrblib/symbol.rb diff --git a/mrbgems/mruby-symbol-ext/mrblib/symbol.rb b/mrbgems/mruby-symbol-ext/mrblib/symbol.rb index 28cce3156..99fa275d5 100644 --- a/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +++ b/mrbgems/mruby-symbol-ext/mrblib/symbol.rb @@ -3,12 +3,6 @@ class Symbol alias intern to_sym - def to_proc - ->(obj,*args,&block) do - obj.__send__(self, *args, &block) - end - end - ## # call-seq: # sym.capitalize -> symbol diff --git a/mrbgems/mruby-symbol-ext/test/symbol.rb b/mrbgems/mruby-symbol-ext/test/symbol.rb index 6070d1418..63c1bd826 100644 --- a/mrbgems/mruby-symbol-ext/test/symbol.rb +++ b/mrbgems/mruby-symbol-ext/test/symbol.rb @@ -1,10 +1,6 @@ ## # Symbol(Ext) Test -assert('Symbol#to_proc') do - assert_equal 5, :abs.to_proc[-5] -end - assert('Symbol.all_symbols') do foo = [:__symbol_test_1, :__symbol_test_2, :__symbol_test_3].sort symbols = Symbol.all_symbols.select{|sym|sym.to_s.include? '__symbol_test'}.sort diff --git a/mrblib/symbol.rb b/mrblib/symbol.rb new file mode 100644 index 000000000..9c981dd9e --- /dev/null +++ b/mrblib/symbol.rb @@ -0,0 +1,7 @@ +class Symbol + def to_proc + ->(obj,*args,&block) do + obj.__send__(self, *args, &block) + end + end +end diff --git a/test/t/symbol.rb b/test/t/symbol.rb index 9059f45c2..fdce0f378 100644 --- a/test/t/symbol.rb +++ b/test/t/symbol.rb @@ -28,3 +28,7 @@ end assert('Symbol#to_sym', '15.2.11.3.4') do assert_equal :abc, :abc.to_sym end + +assert('Symbol#to_proc') do + assert_equal 5, :abs.to_proc[-5] +end -- cgit v1.2.3