[ruby-core:122785] [Ruby Feature#21386] Introduce `Enumerable#join_map`
From:
"Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>
Date:
2025-07-15 20:12:40 UTC
List:
ruby-core #122785
SXNzdWUgIzIxMzg2IGhhcyBiZWVuIHVwZGF0ZWQgYnkgRXJlZ29uIChCZW5vaXQgRGFsb3plKS4N Cg0KDQptYXR6IChZdWtpaGlybyBNYXRzdW1vdG8pIHdyb3RlIGluICNub3RlLTk6DQo+IEkgaG9w ZSBKSVQgaW5saW5pbmcgd2lsbCByZW1vdmUgaW50ZXJtZWRpYXRlIG9iamVjdHMgaW4gdGhlIGZ1 dHVyZS4NCg0KRldJVywgdGhhdCdzIG5vdCByZWFsbHkgZmVhc2libGUsIGF0IGxlYXN0IGZvciBj YXNlcyB3aGVyZSB0aGUgaW5wdXQgYXJyYXkgaGFzIHZhcmlhYmxlIHNpemUuDQpVbmxlc3MgYm90 aCBBcnJheSNtYXAgYW5kIEFycmF5I2pvaW4gYXJlIGludHJpbnNpZmllZCBhbmQgaGFuZGxlZCBh cyBhIGNvbXBvdW5kIG9wZXJhdGlvbiBvZiBzb3J0LCBidXQgdGhhdCdzIG5vdCByZWFsbHkgcmVh c29uYWJsZSBhcyBBcnJheSNqb2luIGlzIGZhciBmcm9tIHRyaXZpYWwuDQoNClRoYXQgc2FpZCwg SSB0aGluayB0aGUgY29zdCBvZiB0aGUgYG1hcGAgaXMgb25seSBhIHNtYWxsIGZyYWN0aW9uIG9m IHRoZSBjb3N0IG9mIHRoZSBgam9pbmAsIGFuZCBzbyBub3Qgd29ydGggaGF2aW5nIGEgbmV3IGNv cmUgbWV0aG9kIGZvciB0aGlzLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQpGZWF0dXJlICMyMTM4NjogSW50cm9kdWNlIGBFbnVtZXJhYmxlI2pvaW5fbWFwYA0K aHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIxMzg2I2NoYW5nZS0xMTQwNjQNCg0K KiBBdXRob3I6IG1hdGhldXNyaWNoIChNYXRoZXVzIFJpY2hhcmQpDQoqIFN0YXR1czogUmVqZWN0 ZWQNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMjIyBQcm9ibGVt DQoNClRoZSBwYXR0ZXJuIGAubWFwIHsgLi4uIH0uam9pbihzZXApYCBpcyBleHRyZW1lbHkgY29t bW9uIGluIFJ1YnkgY29kZWJhc2VzOg0KDQpgYGBydWJ5DQp1c2Vycy5tYXAoJjpuYW1lKS5qb2lu KCIsICIpDQpgYGANCg0KSXTigJlzIGV4cHJlc3NpdmUgYnV0IHJlcGV0aXRpdmUgKGJvdGggbG9n aWNhbGx5IGFuZCBjb21wdXRhdGlvbmFsbHkpLiBUaGlzIHBhdHRlcm4gYWxsb2NhdGVzIGFuIGlu dGVybWVkaWF0ZSBhcnJheSBhbmQgZG9lcyB0d28gcGFzc2VzIG92ZXIgdGhlIGNvbGxlY3Rpb24u DQoNClJlYWwtd29ybGQgdXNhZ2UgaXMgd2lkZXNwcmVhZDoNCg0KLSBbT3BlbiBzb3VyY2UgUnVi eSBwcm9qZWN0cyB1c2luZyB0aGlzIHBhdHRlcm5dKGh0dHBzOi8vZ2l0aHViLmNvbS9zZWFyY2g/ cT1sYW5nJTNBcnVieSslMkYlNUMubWFwJTVDcyolNUMlN0IlNUIlNUUlN0QlNUQqJTVDJTdEJTVD LmpvaW4lMkYmdHlwZT1jb2RlKQ0KLSBbV2l0aGluIFJhaWxzXShodHRwczovL2dpdGh1Yi5jb20v c2VhcmNoP3E9bGFuZyUzQXJ1YnkrJTJGJTVDLm1hcCU1Q3MqJTVDJTdCJTVCJTVFJTdEJTVEKiU1 QyU3RCU1Qy5qb2luJTJGK29yZyUzQXJhaWxzJnR5cGU9Y29kZSkNCi0gW1dpdGhpbiBSdWJ5IGl0 c2VsZl0oaHR0cHM6Ly9naXRodWIuY29tL3NlYXJjaD9xPWxhbmclM0FydWJ5KyUyRiU1Qy5tYXAl NUNzKiU1QyU3QiU1QiU1RSU3RCU1RColNUMlN0QlNUMuam9pbiUyRitvcmclM0FydWJ5JnR5cGU9 Y29kZSkNCg0KIyMjIFByb3Bvc2FsDQoNCkp1c3QgbGlrZSBgZmlsdGVyX21hcGAgZXhpc3RzIHRv IGNvbGxhcHNlIGEgY29tbW9uIGBtYXAgKyBjb21wYWN0YCwgdGhpcw0KcHJvcG9zYWwgaW50cm9k dWNlcyBgRW51bWVyYWJsZSNqb2luX21hcGAsIHdoaWNoIG1hcHMgYW5kIGpvaW5zIGluIGEgc2lu Z2xlDQpwYXNzLg0KDQpgYGBydWJ5DQp1c2Vycy5qb2luX21hcCgiLCAiLCAmOm5hbWUpDQpgYGAN Cg0KQSBSdWJ5IGltcGxlbWVudGF0aW9uIGNvdWxkIGxvb2sgbGlrZSB0aGlzOg0KDQpgYGBydWJ5 DQptb2R1bGUgRW51bWVyYWJsZQ0KICBkZWYgam9pbl9tYXAoc2VwID0gIiIpDQogICAgcmV0dXJu ICIiIHVubGVzcyBibG9ja19naXZlbj8NCg0KICAgIHN0ciA9ICsiIg0KICAgIGZpcnN0ID0gdHJ1 ZQ0KDQogICAgZWFjaCBkbyB8aXRlbXwNCiAgICAgIHN0ciA8PCBzZXAgdW5sZXNzIGZpcnN0DQog ICAgICBzdHIgPDwgeWllbGQoaXRlbSkudG9fcw0KICAgICAgZmlyc3QgPSBmYWxzZQ0KICAgIGVu ZA0KDQogICAgc3RyDQogIGVuZA0KZW5kDQpgYGANCg0KVGhlIG5hbWUgYGpvaW5fbWFwYCBmb2xs b3dzIHRoZSBwcmVjZWRlbnQgb2YgYGZpbHRlcl9tYXBgLCBlbXBoYXNpemluZyB0aGUgZmluYWwN Cm9wZXJhdGlvbiAoYGpvaW5gKSBvdmVyIHRoZSBpbnRlcm1lZGlhdGUgKGBtYXBgKS4NCg0KDQoj IyMgUHJpb3IgQXJ0DQoNClNvbWUgb3RoZXIgbGFuZ3VhZ2VzIGhhdmUgc2ltaWxhciBmdW5jdGlv bmFsaXR5LCBidXQgd2l0aCBkaWZmZXJlbnQgbmFtZXMgb3IgaW1wbGVtZW50YXRpb25zOg0KDQoj IyMjIEVsaXhpcg0KDQpFbGl4aXIgaGFzIHRoaXMgdmlhIFt0aGUgYEVudW0ubWFwX2pvaW4vM2Ag ZnVuY3Rpb25dKGh0dHBzOi8vaGV4ZG9jcy5wbS9lbGl4aXIvMS4xMi9FbnVtLmh0bWwjbWFwX2pv aW4vMyk6DQoNCmBgYGVsaXhpcg0KRW51bS5tYXBfam9pbihbMSwgMiwgM10sICYoJjEgKiAyKSkN CiIyNDYiDQoNCkVudW0ubWFwX2pvaW4oWzEsIDIsIDNdLCAiID0gIiwgJigmMSAqIDIpKQ0KIjIg PSA0ID0gNiINCmBgYA0KDQojIyMjIENyeXN0YWwNCg0KQ3J5c3RhbCwgb24gdGhlIG90aGVyIGhh bmQsIFt1c2VzIGBFbnVtZXJhYmxlI2pvaW5gIHdpdGggYSBibG9ja10oaHR0cHM6Ly9jcnlzdGFs LWxhbmcub3JnL2FwaS8xLjE2LjMvRW51bWVyYWJsZS5odG1sI2pvaW4lMjhzZXBhcmF0b3IlM0Ql MjIlMjIlMkMlMjYlM0FULSUzRSUyOS1pbnN0YW5jZS1tZXRob2QpOg0KDQpgYGBjcnlzdGFsDQpb MSwgMiwgM10uam9pbigiLCAiKSB7IHxpfCAtaSB9ICMgPT4gIi0xLCAtMiwgLTMiDQpgYGANCg0K IyMjIyBLb3RsaW4NCg0KS290bGluIGhhcyBhIHNpbWlsYXIgW2Z1bmN0aW9uIGNhbGxlZCBgam9p blRvU3RyaW5nYF0oaHR0cHM6Ly9rb3RsaW5sYW5nLm9yZy9hcGkvY29yZS9rb3RsaW4tc3RkbGli L2tvdGxpbi5jb2xsZWN0aW9ucy9qb2luLXRvLXN0cmluZy5odG1sKSB0aGF0IGNhbiB0YWtlIGEg dHJhbnNmb3JtYXRpb24gZnVuY3Rpb246DQoNCmBgYGtvdGxpbg0KdmFsIGNoYXJzID0gY2hhckFy cmF5T2YoJ2EnLCAnYicsICdjJykNCnByaW50bG4oY2hhcnMuam9pblRvU3RyaW5nKCkgeyBpdC51 cHBlcmNhc2VDaGFyKCkudG9TdHJpbmcoKSB9KSAvLyBBLCBCLCBDIA0KYGBgDQoNCg0KDQotLSAN Cmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLw0KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVA bWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNv cmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5y dWJ5LWxhbmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcub3JnLwo=