[ruby-core:118785] [Ruby master Feature#20664] Add `before` and `until` options to Enumerator.produce
From:
"zverok (Victor Shepelev) via ruby-core" <ruby-core@...>
Date:
2024-08-03 17:31:47 UTC
List:
ruby-core #118785
SXNzdWUgIzIwNjY0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgenZlcm9rIChWaWN0b3IgU2hlcGVsZXYp Lg0KDQoNCkkgYW0gbm90IHN1cmUgYWJvdXQgdGhpcyBBUEkuIA0KDQpJIHRoaW5rIGluIGxhbmd1 YWdlIGNvcmUgdGhlcmUgYXJlbuKAmXQgbWFueSBBUElzIHRoYXQgYWNjZXB0IGp1c3QgYSBzeW1i b2wgb2YgYSBuZWNlc3NhcnkgbWV0aG9kIChvbmx5IGByZWR1Y2UoOispYCBjb21lcyB0byBtaW5k LCBhbmQgSSBhbSBzdGlsbCBub3Qgc3VyZSB3aHkgdGhpcyBmb3JtIGV4aXN0cywgYmVjYXVzZSBp dCBzZWVtcyB0byBoYXZlIGJlZW4gaW50cm9kdWNlZCBhdCB0aGUgc2FtZSB0aW1lIHdoZW4gYFN5 bWJvbCN0b19wcm9jYCB3YXMsIHNvIGByZWR1Y2UoOispYCBhbmQgYHJlZHVjZSgmOispYCB3ZXJl IGFsd2F5cyBjby1leGlzdGluZykuIA0KDQpNb3N0bHkgY2FsbGFibGVzIGFyZSBwYXNzZWQgYXMg YSBibG9jayAoYW5kIHRoZXJlZm9yZSB0aGVyZSBjYW4gYmUgb25seSBvbmUpOyBidXQgc29tZSBB UElzIGFjY2VwdCBhbm90aGVyIGNhbGxhYmxlIChhbnkgb2JqZWN0IHdpdGggYCNjYWxsYCBtZXRo b2QsIGxpa2UgRW51bWVyYXRvci5uZXcpLg0KDQpTbywgd2hhdCBpZiBjb25kaXRpb24gaXMgX25v dF8gYW4gbWV0aG9kIG9mIHRoZSBzZXF1ZW5jZT8uLiBTaG91bGQgd2UgYWNjZXB0IGNhbGxhYmxl cywgdG9vPyBPciwgd2hhdCBpZiB0aGUgbWV0aG9k4oCZcyB1c2VyIGV4cGVjdHMgaXQgdG8gYmUg YSBwYXJ0aWN1bGFyIHZhbHVlIChsaWtlIGB1bnRpbDogMGApLCBvciBhIHBhdHRlcm4gKGxpa2Ug YGJlZm9yZTogMC4uMWApLg0KDQpUaGUgYWx0ZXJuYXRpdmUgaXMgDQpgYGBydWJ5DQpFbnVtZXJh dG9yLnByb2R1Y2UoRmlsZSwgJjpzdXBlcmNsYXNzKS50YWtlX3VudGlsKCY6bmlsPykNCmBgYA0K Li4ud2hpY2ggaXMgbW9yZSBvciBsZXNzIHRoZSBzYW1lIGNoYXJhY3Rlci1jb3VudC13aXNlLCBt b3JlIHBvd2VyZnVsIChhbnkgYmxvY2sgY2FuIGJlIHVzZWQpLCBhbmQgbW9yZSBhdG9taWMuDQoN ClRoZSBvbmUgcHJvYmxlbSB3ZSBkb27igJl0IGN1cnJlbnRseSBoYXZlIG5laXRoZXIgYEVudW1l cmFibGUjdGFrZV91bnRpbGAsIG5vciBgT2JqZWN0I25vdF9uaWw/YCwgdG8gd3JpdGUgc29tZXRo aW5nIGxpa2UNCmBgYHJ1YnkNCiMgdGhpcyB3b3VsZG7igJl0IHdvcmsNCkVudW1lcmF0b3IucHJv ZHVjZShGaWxlLCAmOnN1cGVyY2xhc3MpLnRha2Vfd2hpbGUoJjpub3RfbmlsPykNCiMgdGhvdWdo IG9uZSBjYW4gdXNlDQpFbnVtZXJhdG9yLnByb2R1Y2UoRmlsZSwgJjpzdXBlcmNsYXNzKS50YWtl X3doaWxlKCY6aXRzZWxmKQ0KIz0+IFtGaWxlLCBJTywgT2JqZWN0LCBCYXNpY09iamVjdF0NCmBg YA0KDQouLi5idXQgaW4gZ2VuZXJhbCwgSSBzdXNwZWN0IGFkZGluZyBgRW51bWVyYWJsZSN0YWtl X3VudGlsYCB0byBoYW5kbGUgc3VjaCBjYXNlcyAoW2FuZCBgI3Rha2Vfd2hpbGVfYWZ0ZXJgXSho dHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMTgxMzYpIHdoaWxlIHdlIGFyZSBvbiBp dCA6KSkgbWlnaHQgYmUgbW9yZSBwb3dlcmZ1bCBhZGRpdGlvbiB0byB0aGUgbGFuZ3VhZ2UsIHVz ZWZ1bCBpbiBtYW55IHNpdHVhdGlvbnMuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCkZlYXR1cmUgIzIwNjY0OiBBZGQgYGJlZm9yZWAgYW5kIGB1bnRpbGAgb3B0 aW9ucyB0byBFbnVtZXJhdG9yLnByb2R1Y2UNCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lz c3Vlcy8yMDY2NCNjaGFuZ2UtMTA5MzQwDQoNCiogQXV0aG9yOiBrbnUgKEFraW5vcmkgTVVTSEEp DQoqIFN0YXR1czogT3Blbg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KRW51bWVyYXRvci5wcm9kdWNlIHByb3ZpZGVzIGEgbmljZSB3YXkgdG8gZ2VuZXJhdGUgYW4g aW5maW5pdGUgc2VxdWVuY2UgYnV0IGlzIGEgYml0IGF3a3dhcmQgdG8gZGVmaW5lIGhvdyB0byBl bmQgYSBzZXF1ZW5jZS4gIEl0IGxhY2tzIGEgc2ltcGxlIGFuZCBlYXN5IHdheSB0byBwcm9kdWNl IHR5cGljYWwgZmluaXRlIHNlcXVlbmNlcyBpbiBhbiBpbnR1aXRpdmUgc3ludGF4Lg0KDQpUaGlz IHByb3Bvc2FsIGF0dGVtcHRzIHRvIHNvbHZlIHRoZSBwcm9ibGVtIGJ5IGFkZGluZyB0aGVzZSB0 d28gb3B0aW9ucyB0byB0aGUgbWV0aG9kOg0KDQotIGBiZWZvcmVgOiB3aGVuIHByb3ZpZGVkLCBp dCBpcyB1c2VkIGFzIGEgcHJlZGljYXRlIHRvIGRldGVybWluZSBpZiBhbiBpdGVyYXRpb24gc2hv dWxkIGVuZCBiZWZvcmUgYSBnZW5lcmF0ZWQgdmFsdWUgZ2V0cyB5aWVsZGVkLg0KLSBgdW50aWxg OiB3aGVuIHByb3ZpZGVkLCBpdCBpcyB1c2VkIGFzIGEgcHJlZGljYXRlIHRvIGRldGVybWluZSBp ZiBhbiBpdGVyYXRpb24gc2hvdWxkIGVuZCB1bnRpbCBhZnRlciBhIGdlbmVyYXRlZCB2YWx1ZSBn ZXRzIHlpZWxkZWQuDQoNCkFueSB2YWx1ZSB0aGF0IHJlc3BvbmRzIHRvIGB0b19wcm9jYCBhbmQg cmV0dXJucyBhIGBQcm9jYCBvYmplY3QgaXMgYWNjZXB0ZWQgaW4gdGhlc2Ugb3B0aW9ucy4NCg0K QSB0eXBpY2FsIHVzZSBjYXNlIGZvciB0aGUgYGJlZm9yZWAgb3B0aW9uIGlzIHRyYXZlcnNpbmcg YSB0cmVlIHN0cnVjdHVyZSB0byBpdGVyYXRlIG92ZXIgdGhlIGFuY2VzdG9ycyBvciBmb2xsb3dp bmcvcHJlY2VkaW5nIHNpYmxpbmdzIG9mIGEgbm9kZS4NCg0KVGhlIGB1bnRpbGAgb3B0aW9uIGNh biBiZSB1c2VkIHdoZW4gdGhlcmUgaXMgYSBjbGVhciBkZWZpbml0aW9uIG9mIHRoZSAibGFzdCIg dmFsdWUgdG8geWllbGQuDQoNCmBgYHJ1YnkNCmVudW0gPSBFbnVtZXJhdG9yLnByb2R1Y2UoRmls ZSwgYmVmb3JlOiA6bmlsPywgJjpzdXBlcmNsYXNzKQ0KZW51bS50b19hICM9PiBbRmlsZSwgSU8s IE9iamVjdCwgQmFzaWNPYmplY3RdDQoNCmVudW0gPSBFbnVtZXJhdG9yLnByb2R1Y2UoMywgdW50 aWw6IDp6ZXJvPywgJjpwcmVkKQ0KZW51bV90b19hICM9PiBbMywgMiwgMSwgMF0NCmBgYA0KDQot LS1GaWxlcy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQowMDAxLUFkZC1iZWZvcmUt YW5kLXVudGlsLW9wdGlvbnMtdG8tRW51bWVyYXRvci5wcm9kdWNlLnBhdGNoICgxMC43IEtCKQ0K DQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBy dWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0 byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0 cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxh bmcub3JnLw==