2022/06/17 今回の気になった bugs.ruby のチケット
[Bug #18826] Symbol#to_proc inconsistent, sometimes calls private methods
#tapに&渡しでメソッドを呼び出す場合にprivateやprotectedメソッドを呼び出す事ができるバグ報告
class Test protected def referenced_columns puts "hello" end end # protected メソッドを呼び出す事ができる Test.new.tap(&:referenced_columns) # => hello # Symbol#to_proc 経由でも呼び出せる :referenced_columns.to_proc.call Test.new # => hello
:foo.to_procはlambda{|t| t.foo}と等価であるべきという理由から修正される流れになっている
[Bug #18827] __ENCODING__ is not set to the source encoding when saving script lines
p __ENCODING__ # => #<Encoding:UTF-8>
# encoding: euc-jp p __ENCODING__ # => #<Encoding:EUC-JP>
SCRIPT_LINES__が設定されていた時にこれが無視されるというバグ報告
# -Ke を渡すと #<Encoding:EUC-JP> になる
$ ruby -Ke -e 'p __ENCODING__'
#<Encoding:EUC-JP>
$ cat script_lines.rb
SCRIPT_LINES__ = {}
# -Ke を渡すと #<Encoding:EUC-JP> になるがそうでない
$ ruby -r./script_lines.rb -Ke -e 'p __ENCODING__'
#<Encoding:UTF-8>