[ruby-core:122656] [Ruby Feature#21386] Introduce `Enumerable#join_map`
From:
"matheusrich (Matheus Richard) via ruby-core" <ruby-core@...>
Date:
2025-07-05 14:27:07 UTC
List:
ruby-core #122656
SXNzdWUgIzIxMzg2IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWF0aGV1c3JpY2ggKE1hdGhldXMgUmlj aGFyZCkuDQoNCg0KTXkgZXhwZWN0YXRpb24gaXMgdGhhdCBqb2luX21hcCB3b3VsZCBiZWhhdmUg bGlrZSBtYXAgKyBqb2luDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCkZlYXR1cmUgIzIxMzg2OiBJbnRyb2R1Y2UgYEVudW1lcmFibGUjam9pbl9tYXBgDQpodHRw czovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMjEzODYjY2hhbmdlLTExMzkzNg0KDQoqIEF1 dGhvcjogbWF0aGV1c3JpY2ggKE1hdGhldXMgUmljaGFyZCkNCiogU3RhdHVzOiBPcGVuDQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIyMgUHJvYmxlbQ0KDQpUaGUg cGF0dGVybiBgLm1hcCB7IC4uLiB9LmpvaW4oc2VwKWAgaXMgZXh0cmVtZWx5IGNvbW1vbiBpbiBS dWJ5IGNvZGViYXNlczoNCg0KYGBgcnVieQ0KdXNlcnMubWFwKCY6bmFtZSkuam9pbigiLCAiKQ0K YGBgDQoNCkl04oCZcyBleHByZXNzaXZlIGJ1dCByZXBldGl0aXZlIChib3RoIGxvZ2ljYWxseSBh bmQgY29tcHV0YXRpb25hbGx5KS4gVGhpcyBwYXR0ZXJuIGFsbG9jYXRlcyBhbiBpbnRlcm1lZGlh dGUgYXJyYXkgYW5kIGRvZXMgdHdvIHBhc3NlcyBvdmVyIHRoZSBjb2xsZWN0aW9uLg0KDQpSZWFs LXdvcmxkIHVzYWdlIGlzIHdpZGVzcHJlYWQ6DQoNCi0gW09wZW4gc291cmNlIFJ1YnkgcHJvamVj dHMgdXNpbmcgdGhpcyBwYXR0ZXJuXShodHRwczovL2dpdGh1Yi5jb20vc2VhcmNoP3E9bGFuZyUz QXJ1YnkrJTJGJTVDLm1hcCU1Q3MqJTVDJTdCJTVCJTVFJTdEJTVEKiU1QyU3RCU1Qy5qb2luJTJG JnR5cGU9Y29kZSkNCi0gW1dpdGhpbiBSYWlsc10oaHR0cHM6Ly9naXRodWIuY29tL3NlYXJjaD9x PWxhbmclM0FydWJ5KyUyRiU1Qy5tYXAlNUNzKiU1QyU3QiU1QiU1RSU3RCU1RColNUMlN0QlNUMu am9pbiUyRitvcmclM0FyYWlscyZ0eXBlPWNvZGUpDQotIFtXaXRoaW4gUnVieSBpdHNlbGZdKGh0 dHBzOi8vZ2l0aHViLmNvbS9zZWFyY2g/cT1sYW5nJTNBcnVieSslMkYlNUMubWFwJTVDcyolNUMl N0IlNUIlNUUlN0QlNUQqJTVDJTdEJTVDLmpvaW4lMkYrb3JnJTNBcnVieSZ0eXBlPWNvZGUpDQoN CiMjIyBQcm9wb3NhbA0KDQpKdXN0IGxpa2UgYGZpbHRlcl9tYXBgIGV4aXN0cyB0byBjb2xsYXBz ZSBhIGNvbW1vbiBgbWFwICsgY29tcGFjdGAsIHRoaXMNCnByb3Bvc2FsIGludHJvZHVjZXMgYEVu dW1lcmFibGUjam9pbl9tYXBgLCB3aGljaCBtYXBzIGFuZCBqb2lucyBpbiBhIHNpbmdsZQ0KcGFz cy4NCg0KYGBgcnVieQ0KdXNlcnMuam9pbl9tYXAoIiwgIiwgJjpuYW1lKQ0KYGBgDQoNCkEgUnVi eSBpbXBsZW1lbnRhdGlvbiBjb3VsZCBsb29rIGxpa2UgdGhpczoNCg0KYGBgcnVieQ0KbW9kdWxl IEVudW1lcmFibGUNCiAgZGVmIGpvaW5fbWFwKHNlcCA9ICIiKQ0KICAgIHJldHVybiAiIiB1bmxl c3MgYmxvY2tfZ2l2ZW4/DQoNCiAgICBzdHIgPSArIiINCiAgICBmaXJzdCA9IHRydWUNCg0KICAg IGVhY2ggZG8gfGl0ZW18DQogICAgICBzdHIgPDwgc2VwIHVubGVzcyBmaXJzdA0KICAgICAgc3Ry IDw8IHlpZWxkKGl0ZW0pLnRvX3MNCiAgICAgIGZpcnN0ID0gZmFsc2UNCiAgICBlbmQNCg0KICAg IHN0cg0KICBlbmQNCmVuZA0KYGBgDQoNClRoZSBuYW1lIGBqb2luX21hcGAgZm9sbG93cyB0aGUg cHJlY2VkZW50IG9mIGBmaWx0ZXJfbWFwYCwgZW1waGFzaXppbmcgdGhlIGZpbmFsDQpvcGVyYXRp b24gKGBqb2luYCkgb3ZlciB0aGUgaW50ZXJtZWRpYXRlIChgbWFwYCkuDQoNCg0KIyMjIFByaW9y IEFydA0KDQpTb21lIG90aGVyIGxhbmd1YWdlcyBoYXZlIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSwg YnV0IHdpdGggZGlmZmVyZW50IG5hbWVzIG9yIGltcGxlbWVudGF0aW9uczoNCg0KIyMjIyBFbGl4 aXINCg0KRWxpeGlyIGhhcyB0aGlzIHZpYSBbdGhlIGBFbnVtLm1hcF9qb2luLzNgIGZ1bmN0aW9u XShodHRwczovL2hleGRvY3MucG0vZWxpeGlyLzEuMTIvRW51bS5odG1sI21hcF9qb2luLzMpOg0K DQpgYGBlbGl4aXINCkVudW0ubWFwX2pvaW4oWzEsIDIsIDNdLCAmKCYxICogMikpDQoiMjQ2Ig0K DQpFbnVtLm1hcF9qb2luKFsxLCAyLCAzXSwgIiA9ICIsICYoJjEgKiAyKSkNCiIyID0gNCA9IDYi DQpgYGANCg0KIyMjIyBDcnlzdGFsDQoNCkNyeXN0YWwsIG9uIHRoZSBvdGhlciBoYW5kLCBbdXNl cyBgRW51bWVyYWJsZSNqb2luYCB3aXRoIGEgYmxvY2tdKGh0dHBzOi8vY3J5c3RhbC1sYW5nLm9y Zy9hcGkvMS4xNi4zL0VudW1lcmFibGUuaHRtbCNqb2luJTI4c2VwYXJhdG9yJTNEJTIyJTIyJTJD JTI2JTNBVC0lM0UlMjktaW5zdGFuY2UtbWV0aG9kKToNCg0KYGBgY3J5c3RhbA0KWzEsIDIsIDNd LmpvaW4oIiwgIikgeyB8aXwgLWkgfSAjID0+ICItMSwgLTIsIC0zIg0KYGBgDQoNCiMjIyMgS290 bGluDQoNCktvdGxpbiBoYXMgYSBzaW1pbGFyIFtmdW5jdGlvbiBjYWxsZWQgYGpvaW5Ub1N0cmlu Z2BdKGh0dHBzOi8va290bGlubGFuZy5vcmcvYXBpL2NvcmUva290bGluLXN0ZGxpYi9rb3RsaW4u Y29sbGVjdGlvbnMvam9pbi10by1zdHJpbmcuaHRtbCkgdGhhdCBjYW4gdGFrZSBhIHRyYW5zZm9y bWF0aW9uIGZ1bmN0aW9uOg0KDQpgYGBrb3RsaW4NCnZhbCBjaGFycyA9IGNoYXJBcnJheU9mKCdh JywgJ2InLCAnYycpDQpwcmludGxuKGNoYXJzLmpvaW5Ub1N0cmluZygpIHsgaXQudXBwZXJjYXNl Q2hhcigpLnRvU3RyaW5nKCkgfSkgLy8gQSwgQiwgQyANCmBgYA0KDQoNCg0KLS0gDQpodHRwczov L2J1Z3MucnVieS1sYW5nLm9yZy8NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1jb3JlQG1sLnJ1Ynkt bGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcnVieS1jb3JlLWxlYXZl QG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0dHBzOi8vbWwucnVieS1sYW5n Lm9yZy9tYWlsbWFuMy9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9yZy8K