[ruby-core:122699] [Ruby Feature#21386] Introduce `Enumerable#join_map`
From:
"Dan0042 (Daniel DeLorme) via ruby-core" <ruby-core@...>
Date:
2025-07-09 18:41:02 UTC
List:
ruby-core #122699
SXNzdWUgIzIxMzg2IGhhcyBiZWVuIHVwZGF0ZWQgYnkgRGFuMDA0MiAoRGFuaWVsIERlTG9ybWUp Lg0KDQoNCkkgYW0gYWdhaW5zdCB0aGlzLg0KDQplcmdvbm9taWNzOiBBZGRpbmcgYSBzcGVjaWFs ICJYX1kiIG1ldGhvZCBmb3IgZXZlcnkgY29tbW9uIHBhdHRlcm4gb2YgIlggZm9sbG93ZWQgYnkg WSIgaXMgdHJ1bHkgaG9ycmlibGUgZm9yIHRoZSBlcmdvbm9taWNzIG9mIHRoZSBsYW5ndWFnZS4g SXQgb25seSBtdWx0aXBsaWVzIHRoZSBudW1iZXIgb2YgdXNlbGVzcyBkZXRhaWxzIHRoZSBwcm9n cmFtbWVyIHNob3VsZCByZW1lbWJlciwgd2l0aG91dCBhZGRpbmcgYW55IGV4cHJlc3NpdmVuZXNz LiBKdXN0IGJlY2F1c2UgIm1hcCArIGpvaW4iIGlzIGEgY29tbW9uIHBhdHRlcm4gZG9lc24ndCBt ZWFuIGl0IGJlbmVmaXRzIGZyb20gYmVpbmcgZXhwcmVzc2VkIGFzIGEgc2luZ2xlIG1ldGhvZC4N Cg0KcGVyZm9ybWFuY2U6IFRoaXMgYXBwZWFycyBpbnRlbmRlZCB0byBpbXByb3ZlIHBlcmZvcm1h bmNlLCBidXQgaXMgdGhlcmUgYW55IGJlbmNobWFyaz8gSXMgdGhpcyByZWFsbHkgYSBtZWFzdXJh YmxlIGNvc3QgaW4gYW55IHByb2dyYW0sIGFueXdoZXJlPyBJdCBzZWVtcyB0byBtZSBsaWtlIGEg Z29vZCBKSVQgd2l0aCBlc2NhcGUgYW5hbHlzaXMgbWlnaHQgYWxyZWFkeSBoYW5kbGUgdGhpcyBm b3IgeW91LCB3aXRob3V0IGhhdmluZyB0byByZW1lbWJlciB0aGUgInNwZWNpYWwgbWV0aG9kIGZv ciBwZXJmb3JtYW5jZSIuIFNvcnJ5IGJ1dCBpdCBsb29rcyBlbnRpcmVseSBsaWtlIHByZW1hdHVy ZSBtaWNyby1vcHRpbWl6YXRpb24gdG8gbWUuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzIxMzg2OiBJbnRyb2R1Y2UgYEVudW1lcmFibGUjam9p bl9tYXBgDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMjEzODYjY2hhbmdlLTEx Mzk3Ng0KDQoqIEF1dGhvcjogbWF0aGV1c3JpY2ggKE1hdGhldXMgUmljaGFyZCkNCiogU3RhdHVz OiBPcGVuDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIyMgUHJv YmxlbQ0KDQpUaGUgcGF0dGVybiBgLm1hcCB7IC4uLiB9LmpvaW4oc2VwKWAgaXMgZXh0cmVtZWx5 IGNvbW1vbiBpbiBSdWJ5IGNvZGViYXNlczoNCg0KYGBgcnVieQ0KdXNlcnMubWFwKCY6bmFtZSku am9pbigiLCAiKQ0KYGBgDQoNCkl04oCZcyBleHByZXNzaXZlIGJ1dCByZXBldGl0aXZlIChib3Ro IGxvZ2ljYWxseSBhbmQgY29tcHV0YXRpb25hbGx5KS4gVGhpcyBwYXR0ZXJuIGFsbG9jYXRlcyBh biBpbnRlcm1lZGlhdGUgYXJyYXkgYW5kIGRvZXMgdHdvIHBhc3NlcyBvdmVyIHRoZSBjb2xsZWN0 aW9uLg0KDQpSZWFsLXdvcmxkIHVzYWdlIGlzIHdpZGVzcHJlYWQ6DQoNCi0gW09wZW4gc291cmNl IFJ1YnkgcHJvamVjdHMgdXNpbmcgdGhpcyBwYXR0ZXJuXShodHRwczovL2dpdGh1Yi5jb20vc2Vh cmNoP3E9bGFuZyUzQXJ1YnkrJTJGJTVDLm1hcCU1Q3MqJTVDJTdCJTVCJTVFJTdEJTVEKiU1QyU3 RCU1Qy5qb2luJTJGJnR5cGU9Y29kZSkNCi0gW1dpdGhpbiBSYWlsc10oaHR0cHM6Ly9naXRodWIu Y29tL3NlYXJjaD9xPWxhbmclM0FydWJ5KyUyRiU1Qy5tYXAlNUNzKiU1QyU3QiU1QiU1RSU3RCU1 RColNUMlN0QlNUMuam9pbiUyRitvcmclM0FyYWlscyZ0eXBlPWNvZGUpDQotIFtXaXRoaW4gUnVi eSBpdHNlbGZdKGh0dHBzOi8vZ2l0aHViLmNvbS9zZWFyY2g/cT1sYW5nJTNBcnVieSslMkYlNUMu bWFwJTVDcyolNUMlN0IlNUIlNUUlN0QlNUQqJTVDJTdEJTVDLmpvaW4lMkYrb3JnJTNBcnVieSZ0 eXBlPWNvZGUpDQoNCiMjIyBQcm9wb3NhbA0KDQpKdXN0IGxpa2UgYGZpbHRlcl9tYXBgIGV4aXN0 cyB0byBjb2xsYXBzZSBhIGNvbW1vbiBgbWFwICsgY29tcGFjdGAsIHRoaXMNCnByb3Bvc2FsIGlu dHJvZHVjZXMgYEVudW1lcmFibGUjam9pbl9tYXBgLCB3aGljaCBtYXBzIGFuZCBqb2lucyBpbiBh IHNpbmdsZQ0KcGFzcy4NCg0KYGBgcnVieQ0KdXNlcnMuam9pbl9tYXAoIiwgIiwgJjpuYW1lKQ0K YGBgDQoNCkEgUnVieSBpbXBsZW1lbnRhdGlvbiBjb3VsZCBsb29rIGxpa2UgdGhpczoNCg0KYGBg cnVieQ0KbW9kdWxlIEVudW1lcmFibGUNCiAgZGVmIGpvaW5fbWFwKHNlcCA9ICIiKQ0KICAgIHJl dHVybiAiIiB1bmxlc3MgYmxvY2tfZ2l2ZW4/DQoNCiAgICBzdHIgPSArIiINCiAgICBmaXJzdCA9 IHRydWUNCg0KICAgIGVhY2ggZG8gfGl0ZW18DQogICAgICBzdHIgPDwgc2VwIHVubGVzcyBmaXJz dA0KICAgICAgc3RyIDw8IHlpZWxkKGl0ZW0pLnRvX3MNCiAgICAgIGZpcnN0ID0gZmFsc2UNCiAg ICBlbmQNCg0KICAgIHN0cg0KICBlbmQNCmVuZA0KYGBgDQoNClRoZSBuYW1lIGBqb2luX21hcGAg Zm9sbG93cyB0aGUgcHJlY2VkZW50IG9mIGBmaWx0ZXJfbWFwYCwgZW1waGFzaXppbmcgdGhlIGZp bmFsDQpvcGVyYXRpb24gKGBqb2luYCkgb3ZlciB0aGUgaW50ZXJtZWRpYXRlIChgbWFwYCkuDQoN Cg0KIyMjIFByaW9yIEFydA0KDQpTb21lIG90aGVyIGxhbmd1YWdlcyBoYXZlIHNpbWlsYXIgZnVu Y3Rpb25hbGl0eSwgYnV0IHdpdGggZGlmZmVyZW50IG5hbWVzIG9yIGltcGxlbWVudGF0aW9uczoN Cg0KIyMjIyBFbGl4aXINCg0KRWxpeGlyIGhhcyB0aGlzIHZpYSBbdGhlIGBFbnVtLm1hcF9qb2lu LzNgIGZ1bmN0aW9uXShodHRwczovL2hleGRvY3MucG0vZWxpeGlyLzEuMTIvRW51bS5odG1sI21h cF9qb2luLzMpOg0KDQpgYGBlbGl4aXINCkVudW0ubWFwX2pvaW4oWzEsIDIsIDNdLCAmKCYxICog MikpDQoiMjQ2Ig0KDQpFbnVtLm1hcF9qb2luKFsxLCAyLCAzXSwgIiA9ICIsICYoJjEgKiAyKSkN CiIyID0gNCA9IDYiDQpgYGANCg0KIyMjIyBDcnlzdGFsDQoNCkNyeXN0YWwsIG9uIHRoZSBvdGhl ciBoYW5kLCBbdXNlcyBgRW51bWVyYWJsZSNqb2luYCB3aXRoIGEgYmxvY2tdKGh0dHBzOi8vY3J5 c3RhbC1sYW5nLm9yZy9hcGkvMS4xNi4zL0VudW1lcmFibGUuaHRtbCNqb2luJTI4c2VwYXJhdG9y JTNEJTIyJTIyJTJDJTI2JTNBVC0lM0UlMjktaW5zdGFuY2UtbWV0aG9kKToNCg0KYGBgY3J5c3Rh bA0KWzEsIDIsIDNdLmpvaW4oIiwgIikgeyB8aXwgLWkgfSAjID0+ICItMSwgLTIsIC0zIg0KYGBg DQoNCiMjIyMgS290bGluDQoNCktvdGxpbiBoYXMgYSBzaW1pbGFyIFtmdW5jdGlvbiBjYWxsZWQg YGpvaW5Ub1N0cmluZ2BdKGh0dHBzOi8va290bGlubGFuZy5vcmcvYXBpL2NvcmUva290bGluLXN0 ZGxpYi9rb3RsaW4uY29sbGVjdGlvbnMvam9pbi10by1zdHJpbmcuaHRtbCkgdGhhdCBjYW4gdGFr ZSBhIHRyYW5zZm9ybWF0aW9uIGZ1bmN0aW9uOg0KDQpgYGBrb3RsaW4NCnZhbCBjaGFycyA9IGNo YXJBcnJheU9mKCdhJywgJ2InLCAnYycpDQpwcmludGxuKGNoYXJzLmpvaW5Ub1N0cmluZygpIHsg aXQudXBwZXJjYXNlQ2hhcigpLnRvU3RyaW5nKCkgfSkgLy8gQSwgQiwgQyANCmBgYA0KDQoNCg0K LS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1j b3JlQG1sLnJ1YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcnVi eS1jb3JlLWxlYXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0dHBzOi8v bWwucnVieS1sYW5nLm9yZy9tYWlsbWFuMy9saXN0cy9ydWJ5LWNvcmUubWwucnVieS1sYW5nLm9y Zy8K