Rubyのキーワード引数名の制約が分からん
Ruby 2.7でキーワード引数でdef m(**options)とか定義していると警告が出るようになったので対応しようと思った。 丁度、classっていう名前のキーワード引数を設定してたのだけど、これ、どう移植したらいいんだろう。
code:kw.rb
def m(class: nil)
p class
end
code:shell
% ruby ./kw.rb
./kw.rb:3: syntax error, unexpected `end'
怒られる。メソッド引数に設定するまではできるんだけどね。アクセスできない。
Methodオブジェクトとかでできる?
これ僕もハマりましたが、たぶん binding.local_variable_get(:class) しないと取れないです。読みやすさのためにキーワード引数を使ったのに、こっちが読みづらい。。
- Toru KAWAMURA (@tkawa)
January 7, 2020
https://gyazo.com/ab16948d82cc2210d155c351fe77dd27