[ruby-dev:50454] [Ruby trunk Feature#14417] String#sub / String#gsub に『キーが Symbol の Hash』を渡せるようにする提案
From:
duerst@...
Date:
2018-01-31 11:06:35 UTC
List:
ruby-dev #50454
SXNzdWUgIzE0NDE3IGhhcyBiZWVuIHVwZGF0ZWQgYnkgZHVlcnN0IChNYXJ0aW4gRMO8cnN0KS4K CgpgZ3N1YmAgd2l0aCBIYXNoIGlzIHVzZWQgaW4gc29tZSBjb250ZXh0cyB3aGVyZSBoaWdoIHBl cmZvcm1hbmNlIGlzIG9mIGludGVyZXN0LiBBbiBleGFtcGxlIGlzIGBsaWIvdW5pY29kZV9ub3Jt YWxpemUvbm9ybWFsaXplLnJiYC4gVGhpcyBwcm9wb3NhbCB3b3VsZCBtYWtlIHRoZXNlIGNhc2Vz IGxlc3MgZWZmaWNpZW50LCBmb3IgdGhlIGJlbmVmaXQgb2YgcGVvcGxlIHdobyBjYW4ndCBrZWVw IFN5bWJvbHMgYW5kIFN0cmluZ3MgYXBhcnQuCgpBcyBkaXNjdXNzZWQgaW4gYW5vdGhlciBpc3N1 ZSwgYGI6ICdCJywgYzogJ0MnYCBpcyBub3QgYSBzaG9ydGN1dCBmb3IgYCdiJz0+J0InLCAnYyc9 PidDJ2AuIFdlIGFscmVhZHkgaGF2ZSBtZXRob2RzIHRvIGNoYW5nZSBIYXNoIGtleXMgKG9yIHZh bHVlcyksIGFuZCB3ZSBwcm9iYWJseSBuZWVkIG1vcmUgb2YgdGhlbSwgYnV0IEkgdGhpbmsgd2Ug ZG9uJ3QgbmVlZCBtb3JlIG1ldGhvZHMgdGhhdCBhY2NlcHRzIHN0cmluZ3MgYW5kIHN5bWJvbHMg aW5kZXRlcm1pbmF0ZWx5LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpGZWF0dXJlICMxNDQxNzogU3RyaW5nI3N1YiAvIFN0cmluZyNnc3ViIOOBq+OAjuOCreODvOOB jCBTeW1ib2wg44GuIEhhc2jjgI/jgpLmuKHjgZvjgovjgojjgYbjgavjgZnjgovmj5DmoYgKaHR0 cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE0NDE3I2NoYW5nZS03MDA2OAoKKiBBdXRo b3I6IG9zeW8gKG1hbmdhIG9zeW8pCiogU3RhdHVzOiBGZWVkYmFjawoqIFByaW9yaXR5OiBOb3Jt YWwKKiBBc3NpZ25lZTogCiogVGFyZ2V0IHZlcnNpb246IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiMjIOamguimgQoKYFN0cmluZyNzdWJgIC8gYFN0cmluZyNnc3Vi YCDjgavjgI7jgq3jg7zjgYwgYFN5bWJvbGAg44GuIGBIYXNoYOOAj+OCkua4oeOBl+OBn+WgtOWQ iOOBp+OCgiBgU3RyaW5nYCDjga7loLTlkIjjgajlkIzmp5jjgavnva7jgY3mj5vjgYjjgovjgIIK CgojIyDnj77ooYzjga7li5XkvZwKCmBgYHJ1YnkKaGFzaCA9IHsnYic9PidCJywgJ2MnPT4nQyd9 CnAgImFiY2FiYyIuZ3N1YigvW2JjXS8sIGhhc2gpICAgICAjPT4gImFCQ2FCQyIKCiMg44Kt44O8 IOOBjCBTeW1ib2wg44GuIEhhc2gg44Gv572u44GN5o+b44GI44KJ44KM44Gq44GECmhhc2ggPSB7 IGI6ICdCJywgYzogJ0MnIH0KcCAiYWJjYWJjIi5nc3ViKC9bYmNdLywgaGFzaCkgICAgICM9PiAi YWEiCgojIOOCreODvCDjgYwgU3ltYm9sIOOBriBIYXNoIOOBryBTdHJpbmcg44Gr5aSJ5o+b44GZ 44KL5b+F6KaB44GM44GC44KLCnAgImFiY2FiYyIuZ3N1YigvW2JjXS8sIGhhc2gudHJhbnNmb3Jt X2tleXMoJjp0b19zKSkgICAgICM9PiAiYUJDYUJDIgpgYGAKCgojIyDmj5DmoYjjgZnjgovli5Xk vZwKCmBgYHJ1YnkKIyDjgq3jg7zjgYwgU3RyaW5nIOOBruWgtOWQiOOBr+ePvuihjOe2reaMgQpo YXNoID0geydiJz0+J0InLCAnYyc9PidDJ30KcCAiYWJjYWJjIi5nc3ViKC9bYmNdLywgaGFzaCkg ICAgICM9PiAiYUJDYUJDIgoKaGFzaCA9IHsgYjogJ0InLCBjOiAnQycgfQoKIyAkJiDjga/li5Xn moTjgafjgYLjgovjgbnjgY3jgarjga7jgacgU3RyaW5nIOOBruOBvuOBvgpwICJhYmNhYmMiLmdz dWIoL1tiY10vKXtoYXNoWyQmXX0gIz0+ICJhYSIKCiMg44OW44Ot44OD44Kv44Gu5byV5pWw44Gv 5YuV55qE44Gn44GC44KL44G544GN44Gq44Gu44GnIFN0cmluZyDjga7jgb7jgb4KcCAiYWJjYWJj Ii5nc3ViKC9bYmNdLyl7IHxzfCBoYXNoW3NdIH0gIz0+IGEiCgojIEhhc2gg44KS55u05o6l5rih 44GX44Gf5aC05ZCI44Gu44G/44Kt44O844GMIFN5bWJvbCDjgafjgoLoqLHlrrnjgZnjgosKcCAi YWJjYWJjIi5nc3ViKC9bYmNdLywgaGFzaCkgICAgICM9PiAiYUJDYUJDIgpgYGAKCgojIyDliKnn grkKCiog44Kt44O844KSIFN5bWJvbCDjgafmm7jjgY/jgZPjgajjgpLmjqjlpajjgZfjgabjgYTj govjgrPjg7zjg4fjgqPjg7PjgrDopo/ntITjgYzjgYLjgosKICAqIFtydWJ5LXN0eWxlLWd1aWRl L1JFQURNRS5qYS5tZCBhdCBqYXBhbmVzZSDCtyBmb3J0aXNzaW1vMTk5Ny9ydWJ5LXN0eWxlLWd1 aWRlIMK3IEdpdEh1Yl0oaHR0cHM6Ly9naXRodWIuY29tL2ZvcnRpc3NpbW8xOTk3L3J1Ynktc3R5 bGUtZ3VpZGUvYmxvYi9qYXBhbmVzZS9SRUFETUUuamEubWQjc3ltYm9scy1hcy1rZXlzKQoqIOOC reODvOOCkiBTeW1ib2wg44Gn5a6a576p44GZ44KL5pa544GMIEhhc2gg44KS5pu444GE44Gm44GE 44Gm5rCX5oyB44Gh44GM44GE44GECgoKIyMg6Kqy6aGMCgoqIGBTdHJpbmdgIOOBqCBgU3ltYm9s YCDjga7kuKHmlrnjga7jgq3jg7zjgYzjgYLjgaPjgZ/loLTlkIjjganjgYbjgZnjgovjgYsKICAq IGAiYWJjYWJjIi5zdWIoL1tiY10vLCB7ICJiIiA9PiAiQSIsIGI6ICJDIiB9KSAgIyA9PiA/Pz9g CiAgKiDnj77nirbjga8gYFN0cmluZ2Ag44KS5YSq5YWI44GX44Gm44GE44KLCiAgKiDjgZ3jgozk u6XliY3jgasgYFN0cmluZ2Ag44GoIGBTeW1ib2xgIOOBjOa3t+OBluOBo+OBpuOBhOOCiyBIYXNo IOOBr+OBiuOBi+OBl+OBhOOBruOBp+OBr+OBquOBhOOBoOOCjeOBhuOBiwogICog6K2m5ZGK44KS 5Ye644GZ44Go44GL77yfCgoKIyMgYFN0cmluZyNnc3ViYCDjga7jg6bjg7zjgrnjgrHjg7zjgrnj garjgakKCmBgYHJ1YnkKIyBodHRwOi8vYmF0c292LmNvbS9hcnRpY2xlcy8yMDEzLzEwLzAzL3Vz aW5nLXJ1YnlzLWdzdWItd2l0aC1hLWhhc2gvCmRlZiBnZWVraWZ5KHN0cmluZykKICBzdHJpbmcu Z3N1YigvW2xldG9dLywgbDogJzEnLCBlOiAnMycsIHQ6ICc3JywgbzogJzAnKQplbmQKCnAgZ2Vl a2lmeSgnbGVldCcpICMgPT4gJzEzMzcnCnAgZ2Vla2lmeSgnbm9vYicpICMgPT4gJ24wMGInCgoK ZGVmIGRvY3Rvcml6ZShzdHJpbmcpCiAgc3RyaW5nLmdzdWIoL00oaXN0ZSk/ci8sIE1pc3Rlcjog J0RvY3RvcicsIE1yOiAnRHInKQplbmQKCnAgZG9jdG9yaXplKCdNaXN0ZXIgRnJlZXplJykgIyA9 PiAnRG9jdG9yIEZyZWV6ZScKcCBkb2N0b3JpemUoJ01yIFNtaXRoJykgICAjID0+ICdEciBTbWl0 aCcKYGBgCgpgYGBydWJ5CiMgaHR0cHM6Ly9jb2RlcndhbGwuY29tL3AvdDR5N2N3L3J1YnktZ3N1 Yi13aXRoLWEtaGFzaC1vci1ibG9jawphbWlub19hY2lkX2hhc2ggPSB7IEE6ICdBbGEnLCBSOiAn QXJnJywgTjogJ0FzbicgfQoKcCAiUjIzMkEiLmdzdWIoL1tBLVpdLywgYW1pbm9fYWNpZF9oYXNo KQojID0+ICJBcmcyMzJBbGEiCmBgYAoKYGBgcnVieQojIGh0dHBzOi8vcWlpdGEuY29tL3NjaXZv bGEvaXRlbXMvNDE2MTU1YzMwN2VjMjlhMzdiOGYKaGFzaCA9IHsKICAnJic6ICImYW1wIiwKICAn PCc6ICImbHQiLAogICc+JzogIiZndCIsCn0KCnAgIjxRJkE+Ii5nc3ViKC9bJjw+XS8sIGhhc2gp CiMgPT4gIiZsdFEmYW1wQSZndCIKYGBgCgpgYGBydWJ5CiMgaHR0cHM6Ly9xaWl0YS5jb20vcG9j YXJpL2l0ZW1zLzM0ODU1YTliMDdlYTUwMDZmZTgwCmhhc2ggPSB7CiAgJyN0byMnOiAidGFybyIs CiAgJyNmcm9tIyc6ICJqaXJvIiwKfQoKdGVtcGxhdGUgPSA8PEVPUwpoZWxsbywgI3RvIy4KbWVz c2FnZSBmcm9tICNmcm9tIy4KRU9TCgpwdXRzIHRlbXBsYXRlLmdzdWIoLyMuKiMvLCBoYXNoKQoj ID0+IGhlbGxvLCB0YXJvLgojIG1lc3NhZ2UgZnJvbSBqaXJvLgpgYGAKCuOBneOBruS7luOAgeWF t+S9k+eahOOBquODpuODvOOCueOCseODvOOCueOCkuaAneOBhOOBpOOBhOOBn+aWueOBjOOBhOOC jOOBsOOCs+ODoeODs+ODiOOBhOOBn+OBoOOBkeOCi+OBqOWKqeOBi+OCiuOBvuOBmeOAggoKLS0t RmlsZXMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdHJpbmdfc3ViX3dpdGhfc3lt Ym9sX2tleS5wYXRjaCAoMi43MSBLQikKCgotLSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcv Cg==