[ruby-core:121532] [Ruby Feature#14565] Simpler, one-liner, failsafe require in ruby? [Suggested names: require_failsafe, require_safe, require_try, require_add)
From:
"austin (Austin Ziegler) via ruby-core" <ruby-core@...>
Date:
2025-04-03 03:11:47 UTC
List:
ruby-core #121532
SXNzdWUgIzE0NTY1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgYXVzdGluIChBdXN0aW4gWmllZ2xlciku DQoNCg0KamVyb21lZGFsYmVydCAoSmVyb21lIERhbGJlcnQpIHdyb3RlIGluICNub3RlLTQ6DQo+ IEkgbGlrZSB0aGlzIGZlYXR1cmUgcmVxdWVzdCwgYSBub24tZmFpbGluZyByZXF1aXJlIHdvdWxk IGJlIGdyZWF0IGZvciBnZW1zIHRoYXQgb3B0aW9uYWxseSBkZXBlbmQgb24gYW5vdGhlciBnZW0u DQo+IA0KPiBGb3IgZXhhbXBsZToNCj4gDQo+IGBgYHJ1YnkNCj4gYmVnaW4NCj4gICByZXF1aXJl ICdydWJvY29wLXJzcGVjJw0KPiByZXNjdWUgTG9hZEVycm9yDQo+IGVuZA0KPiAgDQo+IGlmIGRl ZmluZWQ/KFJ1Ym9Db3A6OlJTcGVjKQ0KPiAgICMgLi4uDQo+IGVuZA0KPiBgYGANCj4gDQo+IGNv dWxkIGJlIHR1cm5lZCBpbnRvIHNvbWV0aGluZyBsaWtlIHRoaXMNCj4gDQo+IGBgYHJ1YnkNCj4g aWYgcmVxdWlyZSgncnVib2NvcC1yc3BlYycsIGV4Y2VwdGlvbjogZmFsc2UpDQo+ICAgIyAuLi4N Cj4gZW5kDQo+IGBgYA0KDQpVbmZvcnR1bmF0ZWx5LCB0aGF0IGBpZmAgd2lsbCBub3Qgd29yaywg YmVjYXVzZToNCg0KYGBgcnVieQ0KcCByZXF1aXJlKCd5YW1sJykgIyB0cnVlDQpwIHJlcXVpcmUo J3lhbWwnKSAjIGZhbHNlDQpgYGANCg0KSWYgYExvYWRFcnJvcmAgd2VyZSBhIGRlc2NlbmRhbnQg b2YgYFN0YW5kYXJkRXJyb3JgLCB0aGVuIGEgc3VmZml4IHJlc2N1ZSBjb3VsZCB3b3JrOg0KDQpg YGBydWJ5DQpyZXF1aXJlICdydWJvY29wLXNwZWMnIHJlc2N1ZSBuaWwNCmBgYA0KDQpJIHdvbmRl ciBpZiBzb21ldGhpbmcgY291bGQgYmUgZG9uZSB3aXRoIHBhdHRlcm4gbWF0Y2hpbmcgaGVyZSB0 byBleHRlbmQgc3VmZml4IHJlc2N1ZXM6DQoNCmBgYHJ1YnkNCnJlcXVpcmUgJ3J1Ym9jb3Atc3Bl YycgcmVzY3VlIExvYWRFcnJvciA9PiBuaWwNCmBgYA0KDQpZb3Ugd291bGQgc3RpbGwgbmVlZCB0 byBjaGVjayBmb3IgYGRlZmluZWQ/KFJ1Ym9Db3A6OlJzcGVjKWAgYmVjYXVzZSBvZiB0aGUgcmV0 dXJuIHZhbHVlLCBidXTigKYNCg0KSSBkbyB0aGluayB0aGF0IGByZXF1aXJlX3RyeWAgb3IgZXZl biBgcmVxdWlyZShyZXNvdXJjZSwgZXhjZXB0aW9uOiBmYWxzZSlgIHdvdWxkIHdvcmsgbmljZWx5 IHdpdGhvdXQgdGhhdC4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KRmVhdHVyZSAjMTQ1NjU6IFNpbXBsZXIsIG9uZS1saW5lciwgZmFpbHNhZmUgcmVxdWlyZSBp biBydWJ5PyBbU3VnZ2VzdGVkIG5hbWVzOiByZXF1aXJlX2ZhaWxzYWZlLCByZXF1aXJlX3NhZmUs IHJlcXVpcmVfdHJ5LCByZXF1aXJlX2FkZCkNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lz c3Vlcy8xNDU2NSNjaGFuZ2UtMTEyNTU4DQoNCiogQXV0aG9yOiBzaGV2ZWdlbiAoUm9iZXJ0IEEu IEhlaWxlcikNCiogU3RhdHVzOiBPcGVuDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQpJIGhhdmUgcXVpdGUgYSBiaXQgb2YgY29kZSBsaWtlIHRoaXM6DQoNCmBgYHJ1 YnkNCmJlZ2luDQogIHJlcXVpcmUgJ3gvdG9vbHMvY2Ryc2tpbi5yYicNCnJlc2N1ZSBMb2FkRXJy b3I7IGVuZA0KYGBgDQoNCkkgYWxzbyB1c2UgdGhlIGxvbmdlciB2YXJpYW50LCBlLmcuLA0KDQpg YGBydWJ5DQpiZWdpbg0KICByZXF1aXJlICdmb29iYXInDQpyZXNjdWUgTG9hZEVycm9yDQogIHB1 dHMgJ3Byb2plY3QgZm9vYmFyIGlzIG5vdCBhdmFpbGFibGUgLSBjb25zaWRlciAnXA0KICAgICdp bnN0YWxsaW5nIGl0IHZpYSBnZW0gaW5zdGFsbCBmb29iYXInDQplbmQNCmBgYA0KDQpPZnRlbiwg SSBkbyBub3QgbmVlZCB0byBpbmZvcm0gdGhlIHVzZXIgYWJvdXQgbWlzc2luZyBnZW1zL3Byb2pl Y3RzIHRoYXQgYXJlIHRpbnkgYW5kIG5vdCB2ZXJ5IGltcG9ydGFudC4gSW4gbXkgbGFyZ2VyIHJ1 YnkgcHJvamVjdHMsIEkgaGFuZGxlIGNhc2VzIHdoZXJlIGEgc21hbGxlciBwcm9qZWN0IGlzIG5v dCBhdmFpbGFibGUgb3IgYXZhaWxhYmxlLCBzbyBJIGNhbiBwcm9jZWVkIGVpdGhlciB3YXkuIEl0 IGlzIGEgYml0IHBvaW50bGVzcyB0byBub3RpZnkgdGhlIHVzZXIgd2hlbiB0aGF0IGlzIG1lOyB0 aGF0IGlzIHdoeSBJIHdvdWxkIGxpa2UgdG8gaGF2ZSBhIG9uZS1saW5lci4NCg0KSSBhbSB0aGlu a2luZyBvZiBhbiBBUEkgc3VjaCBhcyBhbnkgb2YgdGhlIGZvbGxvd2luZzoNCg0KICAgIHJlcXVp cmVfZmFpbHNhZmUNCiAgICByZXF1aXJlX3NhZmUNCiAgICByZXF1aXJlX3RyeQ0KICAgIHJlcXVp cmVfYWRkDQoNClRoaXMgaXMgZm9yIGxvYWRpbmcgd2l0aCBhIHJlc2N1ZSBMb2FkRXJyb3Igd2l0 aG91dCBub3RpZmljYXRpb24uIElmIEkgbmVlZCB0byBub3RpZnkgYSB1c2VyIHRoZW4gSSBhbSBm aW5lIHdpdGggdGhlIGxvbmdlciB2YXJpYW50Lg0KDQpJZiBhbnlvbmUgaGFzIGJldHRlciBuYW1l cywgZmVlbCBmcmVlIHRvIGFkZCB0aGVtISBJIHRoaW5rIHBlb3BsZSBhcmUgbW9yZSBsaWtlbHkg dG8gcmVtZW1iZXIgdGhlIHJlcXVpcmUtZmFtaWx5LCBlLiBnLiByZXF1aXJlICdmb28ucmInIG9y IHJlcXVpcmVfcmVsYXRpdmUgJ2Jhci5yYicgYW5kIHNvIGZvcnRoLg0KDQotLS0NCg0KSSBhbHNv IHdhbnRlZCB0byBwcm9wb3NlIGEgc3Ryb25nZXIgYHJlcXVpcmVgL2BpbXBvcnRgLCBpbmNsdWRp bmcgdGhlIHBvc3NpYmlsaXR5IHRvIHJlZmVyIHRvIGAucmJgIGZpbGVzIHdpdGhvdXQgYSBoYXJk Y29kZWQgcGF0aCAoaWYgdGhlIC5yYiBmaWxlIGlzIG1vdmVkLA0KYWxsIGV4cGxpY2l0IHJlcXVp cmVzIHRvIGl0LCBpbiBwYXJ0aWN1bGFyIGZyb20gZXh0ZXJuYWwgcHJvamVjdHMsIHdvdWxkIGhh dmUgdG8gY2hhbmdlOyBhbmQgbXkgdmFndWUgaWRlYSBpcyB0byByZXBsYWNlIHRoaXMgd2l0aCBz b21lIGtpbmQgb2YgcHJvamVjdC1zcGVjaWZpYyB3YXkgdG8NCiJsYWJlbCIgZmlsZXMgYW5kIGxv YWQgdGhlc2UgZmlsZXMgYmFzZWQgb24gdGhlc2UgImxhYmVscyIsIGJ1dCB0aGF0IGlzIGZvciBh bm90aGVyIHN1Z2dlc3Rpb247IEkgb25seSB3YW50IHRvIG1lbnRpb24gaXQgYmVjYXVzZSBIaXJv c2hpIFNoaWJhdGEgbWFkZSBzb21lIHN1Z2dlc3Rpb24gYXMgZXh0ZW5zaW9uIHRvIHJlcXVpcmUs IGFuZCBJIHRoaW5rIHRoZSB1c2UgY2FzZSBoZSBtZW50aW9uZWQgbWF5IGFsc28gYmUgdXNlZnVs IHRvIHNlZSB3aGV0aGVyIHJ1YnkgbWF5IGdldCBhIHN0cm9uZ2VyICJsb2FkIGNvZGUgaW4gZmls ZXMiIGZ1bmN0aW9uYWxpdHkgZm9yIHJ1YnkgMy54IGV2ZW50dWFsbHkpLg0KDQoNCg0KLS0gDQpo dHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCiBydWJ5LWNvcmUgbWFpbGluZyBsaXN0IC0tIHJ1YnktY29yZUBt bC5ydWJ5LWxhbmcub3JnCiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIHJ1YnktY29y ZS1sZWF2ZUBtbC5ydWJ5LWxhbmcub3JnCiBydWJ5LWNvcmUgaW5mbyAtLSBodHRwczovL21sLnJ1 YnktbGFuZy5vcmcvbWFpbG1hbjMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcv