[ruby-core:119793] [Ruby master Feature#20786] Flow chaining with "then" keyword
From:
"matz (Yukihiro Matsumoto) via ruby-core" <ruby-core@...>
Date:
2024-11-07 08:42:15 UTC
List:
ruby-core #119793
SXNzdWUgIzIwNzg2IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWF0eiAoWXVraWhpcm8gTWF0c3Vtb3Rv KS4NCg0KU3RhdHVzIGNoYW5nZWQgZnJvbSBPcGVuIHRvIFJlamVjdGVkDQoNCldlIGFyZSBkaXNj dXNzaW5nIHBpcGVsaW5lIG9wZXJhdG9yIGluICMyMDc3MC4gSU1PLCB0aGlzIHByb3Bvc2FsIGRv ZXMgbm90IG1ha2UgdGhlIGNvZGUgY2xlYXJlciBub3IgbW9yZSBjb25jaXNlLg0KDQpNYXR6Lg0K DQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzIw Nzg2OiBGbG93IGNoYWluaW5nIHdpdGggInRoZW4iIGtleXdvcmQNCmh0dHBzOi8vYnVncy5ydWJ5 LWxhbmcub3JnL2lzc3Vlcy8yMDc4NiNjaGFuZ2UtMTEwNDc4DQoNCiogQXV0aG9yOiBscG9naWMg KMWBdWthc3ogUG9taWV0xYJvKQ0KKiBTdGF0dXM6IFJlamVjdGVkDQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpIaSwNCkkgd291bGQgbGlrZSB0byBwcm9wb3NlIHVz aW5nIHRoZSAqInRoZW4iKiBrZXl3b3JkIHRvIGNyZWF0ZSBjaGFpbmVkIGZsb3dzLg0KDQojIyMg QmFja2dyb3VuZDoNCk9yaWdpbmFsIGlkZWE6IGh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lz c3Vlcy8yMDc3MCNjaGFuZ2UtMTEwMDU2DQpIb3dldmVyLCB0aGUgY29uY2VwdCBoYXMgY2hhbmdl ZCBzbGlnaHRseSBzaW5jZSB0aGVuLiBJIG5vdyBhc3N1bWUgdGhhdCByaHMgaXMgb25seSBjYWxj dWxhdGVkIHdoZW4gbGhzIGlzIHRydWUsIHdoaWNoIHNlZW1zIG1vcmUgY29tcGF0aWJsZSB3aXRo IHRoZSBjdXJyZW50IHVzYWdlIG9mICoidGhlbiIqIGtleXdvcmQuDQpJIHdvdWxkIGFsc28gbGlr ZSB0byBtb3ZlIHRoZSBkaXNjdXNzaW9uIGhlcmUgYXMgaXQgbWF5IGNhdXNlIHVubmVjZXNzYXJ5 IGNoYW9zIHRoZXJlLg0KDQojIyMgQmFzaWNzOg0KSW4gdGhlIGNhbm9uaWNhbCB2ZXJzaW9uLCAq InRoZW4iKiBpcyB1c2VkIGluIGEgKiJiZWdpbi4uZW5kIiogYmxvY2sgdG8gc3BsaXQgaXQgaW50 byBzdGVwcy4NCldoZW4gdGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBleHByZXNzaW9uIGJlZm9yZSAq InRoZW4iKiBpcyBub3QgKiJmYWxzZSIqIG9yICoibmlsIiosIGl0IGlzIHBhc3NlZCBhcyBhbiBh cmd1bWVudCB0byB0aGUgbmV4dCBzdGVwLiBPdGhlcndpc2UsIGFsbCBzdWJzZXF1ZW50IHN0ZXBz IGFyZSBza2lwcGVkLg0KVGhlIHJlc3VsdCBvZiB0aGUgKiJiZWdpbi4uZW5kIiogYmxvY2sgaXMg dGhlIHJlc3VsdCBvZiB0aGUgbGFzdCBleHByZXNzaW9uLCBvciAqImZhbHNlIiovKiJuaWwiKiBp ZiBhbnkgc3RlcCB3YXMgc2tpcHBlZC4NCg0KIyMjIEV4YW1wbGU6DQpgYGAgcnVieQ0KIyBvcmln aW5hbCBjb2RlIHNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9ibG9iL2E2Mzgz ZmJlMTYyOGJkYWE5ZWM2YTMwYjNiYWE2MGRkNzQzMGI0NjEvbGliL2lwYWRkci5yYiNMMTgxQzEt TDE4NUM2DQpkZWYgaW5jbHVkZT8ob3RoZXIpDQogIG90aGVyID0gY29lcmNlX290aGVyKG90aGVy KQ0KICByZXR1cm4gZmFsc2UgdW5sZXNzIG90aGVyLmZhbWlseSA9PSBmYW1pbHkNCiAgYmVnaW5f YWRkciA8PSBvdGhlci5iZWdpbl9hZGRyICYmIGVuZF9hZGRyID49IG90aGVyLmVuZF9hZGRyDQpl bmQNCg0KIyB3aXRoIGNoYWluZWQgZmxvdw0KZGVmIGluY2x1ZGU/KG90aGVyKQ0KICBiZWdpbg0K ICAgIGNvZXJjZV9vdGhlcihvdGhlcikNCiAgdGhlbiA9PiBjb2VyY2VkICAjIHRoZW4gPT4gbmFt ZSAgIGlzIG15IHByb3Bvc2l0aW9uIG9mIGFyZ3VtZW50IG5hbWluZyBzeW50YXgNCiAgICByZXR1 cm4gZmFsc2UgdW5sZXNzIGNvZXJjZWQuZmFtaWx5ID09IGZhbWlseQ0KICAgIGNvZXJjZWQNCiAg dGhlbiA9PiBpdA0KICAgIGJlZ2luX2FkZHIgPD0gaXQuYmVnaW5fYWRkciAmJiBlbmRfYWRkciA+ PSBpdC5lbmRfYWRkcg0KICBlbmQNCmVuZA0KYGBgDQoNClBsZWFzZSB0cmVhdCB0aGUgY2Fub25p Y2FsIGZvcm0gYXMgYSBzdGFydGluZyBwb2ludC4gQXMgZnVydGhlciBpbXByb3ZlbWVudHMgSSB3 b3VsZCBzZWU6DQotIGltcGxpY2l0IGJsb2NrIGFyZ3VtZW50IG5hbWUNCi0gaW1wbGljaXQgYmVn aW4NCi0gYmVnaW5sZXNzICoidGhlbiIqLCB3aGVuIGxocyBpcyBqdXN0IGV4cHJlc3Npb24NCg0K IyMjIEV4YW1wbGUgd2l0aCBmdXRoZXIgaW1wcm92ZW1lbnRzOg0KYGBgIHJ1YnkNCmRlZiBpbmNs dWRlPyhvdGhlcikNCiAgY29lcmNlX290aGVyKG90aGVyKQ0KdGhlbiANCiAgaXQuZmFtaWx5ID09 IGZhbWlseSA/IGl0IDogZmFsc2UNCnRoZW4NCiAgYmVnaW5fYWRkciA8PSBpdC5iZWdpbl9hZGRy ICYmIGVuZF9hZGRyID49IGl0LmVuZF9hZGRyDQplbmQNCg0KIyBvcg0KZGVmIGluY2x1ZGU/KG90 aGVyKQ0KICBjb2VyY2Vfb3RoZXIgb3RoZXIgdGhlbg0KICAgIHJldHVybiBmYWxzZSB1bmxlc3Mg aXQuZmFtaWx5ID09IGZhbWlseQ0KICAgIGJlZ2luX2FkZHIgPD0gaXQuYmVnaW5fYWRkciAmJiBl bmRfYWRkciA+PSBpdC5lbmRfYWRkcg0KICBlbmQNCmVuZA0KYGBgDQoNCiMjIyAqInRoZW4iKiBr ZXl3b3JkIGFzIHRoZSBwaXBlbGluZSBvcGVyYXRvcjoNClVuZGVyIGNlcnRhaW4gY29uZGl0aW9u cywgInRoZW4iIGNvdWxkIG9mZmVyIHNpbWlsYXIgY2FwYWJpbGl0aWVzIHRvIHRoZSBwaXBlbGlu ZSBvcGVyYXRvciBvZiBmdW5jdGlvbmFsIGxhbmd1YWdlczoNCmBgYCBydWJ5DQojIGFzc3VtaW5n IHRoYXQgImZvbyIgYW5kICJiYXIiIG5ldmVyIHJldHVybiAiZmFsc2UiIG9yICJuaWwiDQojIGlu c3RlYWQgb2Ygd3JpdGluZyB0aGlzOg0KYmF6KCJzdHJpbmciLCBiYXIoZm9vKCksIDIpLCA1KQ0K IyB5b3UgY291bGQgd3JpdGUgdGhpczoNCmJlZ2luIGZvbygpIA0KdGhlbiBiYXIoaXQsIDIpIA0K dGhlbiBiYXooInN0cmluZyIsIGl0LCA1KSANCmVuZA0KYGBgDQoNCg0KDQoNCg0KLS0gDQpodHRw czovL2J1Z3MucnVieS1sYW5nLm9yZy8NCiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCiBydWJ5LWNvcmUgbWFpbGluZyBsaXN0IC0tIHJ1YnktY29yZUBtbC5y dWJ5LWxhbmcub3JnCiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIHJ1YnktY29yZS1s ZWF2ZUBtbC5ydWJ5LWxhbmcub3JnCiBydWJ5LWNvcmUgaW5mbyAtLSBodHRwczovL21sLnJ1Ynkt bGFuZy5vcmcvbWFpbG1hbjMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcv