[ruby-core:122441] [Ruby Feature#21358] Advanced filtering support for #dig
From:
"matz (Yukihiro Matsumoto) via ruby-core" <ruby-core@...>
Date:
2025-06-05 09:08:09 UTC
List:
ruby-core #122441
SXNzdWUgIzIxMzU4IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbWF0eiAoWXVraWhpcm8gTWF0c3Vtb3Rv KS4NCg0KDQpJIHByZWZlciBwYXR0ZXJuIG1hdGNoaW5nLg0KDQpNYXR6Lg0KDQoNCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkZlYXR1cmUgIzIxMzU4OiBBZHZhbmNl ZCBmaWx0ZXJpbmcgc3VwcG9ydCBmb3IgI2RpZw0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcv aXNzdWVzLzIxMzU4I2NoYW5nZS0xMTM2MjINCg0KKiBBdXRob3I6IGxvdnJvLWJpa2ljIChMb3Zy byBCaWtpxIcpDQoqIFN0YXR1czogRmVlZGJhY2sNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCkN1cnJlbnRseSwgYCNkaWdgIGNhbiBiZSB1c2VkIHRvIGFjY2VzcyBu ZXN0ZWQgZGF0YSBzdHJ1Y3R1cmVzIHVzaW5nICJzaW1wbGUiIGtleXMsIHN1Y2ggYXMgYXJyYXkg aW5kaWNlcyBvciBoYXNoIGtleXMuDQoNClJlYWwtd29ybGQgYXBwbGljYXRpb25zIHNvbWV0aW1l cyByZXF1aXJlIG5vbi10cml2aWFsIGRhdGEgYWNjZXNzLCBmb3IgZXhhbXBsZSwgZmluZGluZyBh biBpdGVtIGluIGFuIGFycmF5IGJhc2VkIG9uIHNvbWUgY3JpdGVyaWEsIHRoZW4gcmV0dXJuaW5n IHNvbWUgcHJvcGVydHkgb2YgdGhhdCBpdGVtLg0KDQpUaGlzIGZlYXR1cmUgcmVxdWVzdCBpcyB0 byBhZGQgc3VwcG9ydCBmb3Igc3VjaCBub24tdHJpdmlhbCBhY2Nlc3MgdG8gYCNkaWdgLCBjb25j cmV0ZWx5IGJ5IGFsbG93aW5nIGBQcm9jYHMgYXMgZGlnIGtleXMuDQoNCiMjIEludHJvZHVjdG9y eSBleGFtcGxlDQoNCkdpdmVuIHRoZSBmb2xsb3dpbmcgZGF0YSBzdHJ1Y3R1cmUgKHNpbWlsYXIg dG8gb25lIGZyb20gW2RpZyBkb2NzXShodHRwczovL2RvY3MucnVieS1sYW5nLm9yZy9lbi8zLjQv ZGlnX21ldGhvZHNfcmRvYy5odG1sKSk6DQpgYGBydWJ5DQppdGVtID0gew0KICBpZDogJzAwMDEn LA0KICBiYXR0ZXJzOiB7DQogICAgYmF0dGVyOiBbDQogICAgICB7IGlkOiAnMTAwMScsIHR5cGU6 ICdSZWd1bGFyJyB9LA0KICAgICAgeyBpZDogJzEwMDInLCB0eXBlOiAnQ2hvY29sYXRlJyB9LA0K ICAgICAgeyBpZDogJzEwMDMnLCB0eXBlOiAnQmx1ZWJlcnJ5JyB9LA0KICAgICAgeyBpZDogJzEw MDQnLCB0eXBlOiAnRGV2aWxzIEZvb2QnIH0NCiAgICBdDQogIH0NCn0NCmBgYA0KYW5kIHRoZSBy ZXF1aXJlbWVudCAiZmluZCBJRCBvZiBiYXR0ZXIgd2l0aCB0eXBlICdDaG9jb2xhdGUnIiAoYXNz dW1pbmcgd2UgZG9uJ3Qga25vdyBpdHMgcG9zaXRpb24gaW4gdGhlIGFycmF5KSwgY3VycmVudGx5 IHRoZSBkYXR1bSBjYW4gYmUgcmV0cmlldmVkIGxpa2Ugc286DQpgYGBydWJ5DQppdGVtLmRpZyg6 YmF0dGVycywgOmJhdHRlcikmLmZpbmQgeyBpdFs6dHlwZV0gPT0gJ0Nob2NvbGF0ZScgfSYuW10o OmlkKQ0KIyA9PiAiMTAwMiINCmBgYA0KDQpJZiBgI2RpZ2Agc3VwcG9ydGVkIGBQcm9jYCBhcyBr ZXlzLCB0aGUgc29sdXRpb24gY291bGQgYmU6DQpgYGBydWJ5DQppdGVtLmRpZyg6YmF0dGVycywg OmJhdHRlciwgLT4geyBpdFs6dHlwZV0gPT0gJ0Nob2NvbGF0ZScgfSwgOmlkKQ0KIyA9PiAiMTAw MiINCmBgYA0KDQojIyBJbXBsZW1lbnRhdGlvbg0KDQpIZXJlJ3MgYSBtb25rZXkgcGF0Y2ggd2hp Y2ggYWRkcyBgUHJvY2Agc3VwcG9ydCB0byBgQXJyYXkjZGlnYCwgdG8gcGxheSBhcm91bmQgd2l0 aDoNCmBgYHJ1YnkNCmNsYXNzIEFycmF5DQogIGFsaWFzX21ldGhvZCA6b3JpZ2luYWxfZGlnLCA6 ZGlnDQoNCiAgZGVmIGRpZyhrZXksICppZGVudGlmaWVycykNCiAgICBjYXNlIGtleQ0KICAgIHdo ZW4gUHJvYw0KICAgICAgdmFsID0gZmluZCgma2V5KQ0KDQogICAgICBpZGVudGlmaWVycy5hbnk/ ID8gdmFsJi5kaWcoKmlkZW50aWZpZXJzKSA6IHZhbA0KICAgIGVsc2UNCiAgICAgIG9yaWdpbmFs X2RpZyhrZXksICppZGVudGlmaWVycykNCiAgICBlbmQNCiAgZW5kDQplbmQNCmBgYA0KDQpUaGlz IGNvZGUgYWxzbyBzaG93cyBob3cgSSB3b3VsZCBkZWZpbmUgYFByb2NgIGFyZ3VtZW50IGJlaGF2 aW9yIGZvciBhcnJheXMuIFRoZSBwcm9jIGlzIGNhbGxlZCB3aXRoIGVhY2ggYXJyYXkgaXRlbSwg YW5kIHRoZSAqZmlyc3QqIG9uZSBmb3Igd2hpY2ggYSB0cnV0aHkgdmFsdWUgaXMgZXZhbHVhdGVk IGlzIHJldHVybmVkLg0KDQojIyBQcmVjZWRlbmNlDQoNCkkgc2VlIHRoaXMgZmVhdHVyZSBzaW1p bGFyIHRvIFtKU09OUGF0aCdzIGZpbHRlciBzZWxlY3Rvcl0oaHR0cHM6Ly93d3cucmZjLWVkaXRv ci5vcmcvcmZjL3JmYzk1MzUuaHRtbCNuYW1lLWZpbHRlci1zZWxlY3RvciksIHdoZXJlIHRoZSBb ZXF1aXZhbGVudCBwYXRoXShodHRwczovL2pzb25wYXRoLmNvbS8jZUp4MWpsRnJ3akFReDc5S09B UW5sRktuUGxpUWpUbjJMSHMxUHNUMnJJRXMwZVFpbE5MdnZ0TjJrNExDd1IzXy1fMHVhU0Fna2JZ VjVBMmdyYlJGeU1FZml1Vml0b0FFWEtSVHBJMmlZNEQ4b0V6QU5vRnpSRjh6TmtyM2lnaDk2UHYy N2VVOXBmcUVZclVTNF9YUkZjNG93dkZrbC1xU2o1V3VpRDlvaWRWR1dpRWs2RkpDTGlITHNxbUVw TXY2bTd3UU4tcWVjYlR0RXNHclAzbmF5M0I5LVpaOFl4V05ZcnhOSHVLdlFfel9vMC1GMlZENE1C SDM2SDM5VkpnUGhVLThhQlBFbDNOTXRKMnh1emFldWFEOUJmOTBkcU09KSBmb3IgdGhlIGludHJv ZHVjdG9yeSBleGFtcGxlIHdvdWxkIGJlOg0KYGBgDQokLmJhdHRlcnMuYmF0dGVyWz8oQC50eXBl ID09ICdDaG9jb2xhdGUnKV0uaWQNCmBgYA0KDQpJIGFtIG5vdCBmYW1pbGlhciB3aXRoIHNpbWls YXIgaW1wbGVtZW50YXRpb25zIGluIG90aGVyIHByb2dyYW1taW5nIGxhbmd1YWdlcywgc28gSSBj YW5ub3QgZHJhdyBwYXJhbGxlbHMgdGhlcmUuDQoNCiMjIFJlYWwtd29ybGQgZXhhbXBsZXMNCg0K SGVyZSdzIGEgW0dpdEh1YiBjb2RlIHNlYXJjaF0oaHR0cHM6Ly9naXRodWIuY29tL3NlYXJjaD9x PSUyRiglNUN3JTVDJTVCJTVDdyUyQiUzRiU1QyU1RCU3QyU1Qy4oZmV0Y2glN0NkaWclN0NhdCU3 QyU1QyU1QiU1Q3clMkIlM0YlNUMlNUQpJTVDKC4lMkIlM0YlNUMpKSUyNiUzRiU1Qy4oZmluZCU3 Q2RldGVjdCklMjAlNUMlN0IlMkYlMjBsYW5nJTNBcnVieSZ0eXBlPWNvZGUmcD0xKSB3aXRoIHBv dGVudGlhbCBjYW5kaWRhdGVzIHRoYXQgY291bGQgYmUgcmVmYWN0b3JlZCB3aXRoIHRoaXMgbmV3 IGZlYXR1cmUuIFRoZXJlIGFyZSBzb21lIGZhbHNlIHBvc2l0aXZlcyBvbiB0aGlzIGxpbmssIHNv cnJ5IGFib3V0IHRoYXQuIFRoZSByZWdleCBpcyBhbHNvIHByb2JhYmx5IGluY29tcGxldGUsIHNv IHRoZXJlIGNvdWxkIGJlIG1vcmUgcmVzdWx0cy4gDQoNCkkgd2lsbCBoaWdobGlnaHQgdHdvIGV4 YW1wbGVzIGZyb20gdGhlIHJlc3VsdHMgYW5kIGhvdyB0aGV5IGNvdWxkIGJlIHJlZmFjdG9yZWQ6 DQpgYGBydWJ5DQojIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3Jha2ktZmluYW5jZS9ydWJ5LWV4cGVy aWFuL2Jsb2IvODRmN2RlZjk5ODdiNjM3N2Y0NzE4YTA3MzBmZGI1NjRkNmU5YTBmYi9saWIvZXhw ZXJpYW4vdHJhZGVfcmVwb3J0LnJiI0w4OQ0KdmFsdWVfc2VjdGlvbiYuZmluZCB7IHxkfCBkWyJU aXBvIl0gPT0gdmFsdWVfbmFtZSB9Ji5kaWcoIkxpc3RhVmFsb3JlcyIsICJWYWxvciIpJi5maW5k IHsgfHZ8IHZbIlBlcmlvZG8iXSA9PSBwZXJpb2QudG9fcyB9Ji5kaWcoIkluZGl2aWR1YWwiKSYu dG9faQ0KdmFsdWVfc2VjdGlvbiYuZGlnKC0+IHsgaXRbIlRpcG8iXSA9PSB2YWx1ZV9uYW1lIH0s ICJMaXN0YVZhbG9yZXMiLCAiVmFsb3IiLCAtPiB7IGl0WyJQZXJpb2RvIl0gPT0gcGVyaW9kLnRv X3MgfSwgIkluZGl2aWR1YWwiKSYudG9faQ0KDQojIGh0dHBzOi8vZ2l0aHViLmNvbS9jeWZyb25l dC1maWQvbWFya2V0cGxhY2UvYmxvYi9mODQ5NDc3NzdhYTc5ZDAyZmI5ODcwOTI0MTZhM2NiMTQz ZGIzZDAxL2xpYi9pbXBvcnQvZGF0YXNvdXJjZXMucmIjTDU5DQpkYXRhc291cmNlX2RhdGEmLmRp ZygiaWRlbnRpZmllcnMiLCAiYWx0ZXJuYXRpdmVJZGVudGlmaWVycyIpJi5maW5kIHsgfGlkfCBp ZFsidHlwZSJdID09ICJQSUQiIH0mLltdKCJ2YWx1ZSIpDQpkYXRhc291cmNlX2RhdGEmLmRpZygi aWRlbnRpZmllcnMiLCAiYWx0ZXJuYXRpdmVJZGVudGlmaWVycyIsIC0+IHsgaXRbInR5cGUiXSA9 PSAiUElEIiB9LCAidmFsdWUiKQ0KYGBgDQoNCiMjIEZpbmFsIHRob3VnaHRzDQoNClRoZSBtYWlu IGJlbmVmaXQgb2YgdGhpcyBmZWF0dXJlIHdvdWxkIGJlIHRvIG5vdCBoYXZlIHRvIGluc2VydCBv dGhlciBtZXRob2RzIGluLWJldHdlZW4gYCNkaWdgLCBmb3IgZXhhbXBsZSBgI2ZpbmRgIGluIHRo ZSBhYm92ZSBleGFtcGxlcy4gVGhpcyBjb3VsZCBsZWFkIHRvIGNsZWFuZXIgY29kZSB3aGVuIGhh bmRsaW5nIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmVzIChzdWNoIGFzIHJldHVybmVkIGZyb20gSlNP TiBBUElzKSwgd2l0aCBmZXdlciB1c2FnZXMgb2Ygc2FmZSBuYXZpZ2F0aW9uLg0KDQpPbiB0aGUg b3RoZXIgaGFuZCwgYFByb2NgIGFyZ3VtZW50IGNvdWxkIGJlIG1pc2ludGVycHJldGVkIGJ5IGRl dmVsb3BlcnMgdG8gbWVhbiBzb21ldGhpbmcgZWxzZSAoZS5nLiByZXR1cm4gX2FsbF8gaXRlbXMg Zm9yIHdoaWNoIHRoZSBwcm9jIHJldHVybnMgYSB0cnV0aHkgdmFsdWUpLiBgUHJvY2AgYXJndW1l bnRzIGNvdWxkIGFsc28gYmUgc2VlbiBhcyBub24taWRpb21hdGljIFJ1YnkuDQoNCkl0IHNob3Vs ZCBhbHNvIGJlIGNsZWFybHkgZGVmaW5lZCBob3cgbWFueSByZXN1bHRzIHN1Y2ggYGRpZ2BzIHJl dHVybiwganVzdCB0aGUgZmlyc3Qgb25lIGZvciB3aGljaCB0aGUgUHJvYyBpcyB0cnV0aHkgKGAj ZmluZGAgYmVoYXZpb3IpLCBvciBhbGwgZm9yIHdoaWNoIGl0J3MgdHJ1dGh5IChgI3NlbGVjdGAg YmVoYXZpb3IpLiBJIGFkbWl0IGF0IHRoaXMgcG9pbnQgSSdtIG5vdCBlbnRpcmVseSBzdXJlLCB0 aG91Z2ggSSdtIGxlYW5pbmcgdG93YXJkcyB0aGUgZm9ybWVyIChgI2ZpbmRgKS4NCg0KRmluYWwg bm90ZTogaW4gdGhpcyBmZWF0dXJlIHJlcXVlc3QgSSBjb25zaWRlcmVkIG9ubHkgYEFycmF5I2Rp Z2AsIGJ1dCBgSGFzaCNkaWdgIGNvdWxkIGJlIGNvbnNpZGVyZWQgYXMgd2VsbCAodGhlIHByb2Mg cmVjZWl2ZXMgZWFjaCBrZXkvdmFsdWUgcGFpcikuDQoNCg0KDQoNCi0tIA0KaHR0cHM6Ly9idWdz LnJ1YnktbGFuZy5vcmcvDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCiBydWJ5LWNvcmUgbWFpbGluZyBsaXN0IC0tIHJ1YnktY29yZUBtbC5ydWJ5LWxhbmcu b3JnCiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIHJ1YnktY29yZS1sZWF2ZUBtbC5y dWJ5LWxhbmcub3JnCiBydWJ5LWNvcmUgaW5mbyAtLSBodHRwczovL21sLnJ1YnktbGFuZy5vcmcv bWFpbG1hbjMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFuZy5vcmcvCg==