Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Ruby | Method | name

概要

Method#name -> Symbol

詳細

メソッド名を返却。

サンプルコード
require 'tbpgr_utils'

class Hoge
  %i{hoge1 hoge2 hoge3}.each do |m|
    define_method m do |m|
      puts "#{m} is called"
    end
  end
end

h = Hoge.new
h.public_methods(false).each do |m|
  bulk_puts_eval binding, <<-EOS
h.method(m)
h.method(m).name
  EOS
end

__END__
下記はTbpgrUtils gemの機能
bulk_puts_eval

https://rubygems.org/gems/tbpgr_utils
https://github.com/tbpgr/tbpgr_utils

出力

h.method(m)      # => #<Method: Hoge#hoge1>
h.method(m).name # => :hoge1
h.method(m)      # => #<Method: Hoge#hoge2>
h.method(m).name # => :hoge2
h.method(m)      # => #<Method: Hoge#hoge3>
h.method(m).name # => :hoge3