From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.0 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_BL_SPAMCOP_NET, RCVD_IN_DNSWL_MED,SPF_HELO_PASS,SPF_PASS,UNPARSEABLE_RELAY shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id ED8211F910 for ; Tue, 15 Nov 2022 09:18:18 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.b="RM+puD+J"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id C93241214D6; Tue, 15 Nov 2022 18:18:13 +0900 (JST) Received: from xtrwkhkc.outbound-mail.sendgrid.net (xtrwkhkc.outbound-mail.sendgrid.net [167.89.16.28]) by neon.ruby-lang.org (Postfix) with ESMTPS id 9B1E8121254 for ; Tue, 15 Nov 2022 18:18:11 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ruby-lang.org; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc; s=s1; bh=hr8PxKxOMaT5tTM7k96X5bnikTnSOjJCZ3cvIEuL2QY=; b=RM+puD+Jh/MkZe9HXunP7CLHvtHsJDFtv7oJxrIMb6OpOsN3cYJ13cCCqZeMKJSPzvZT f6t1oPoB3b6hYybMG4M3LC8rWIwW1sbs9Ms/xySdkuBXlg8mBavoANA0y5qy6erwjnWXBa jjf6RP6NdmTEaHqbkLuRkYk9w0OlmSP3fOe6OYfcn6QkWvC4YfrhQZbtQJNTSYigWmcEFe Vv7nwEexT1TfGe9711D/G+iN6AHAj5CsctGOLPqtloWfsbzdzImunmUBUsNatCH5gSNP7v AHXT4CaqnvMEeR+AmXWr+fTbcwX0fXPohpBT6yRSxR0uUyEXYDGHbop82R+ALiDw== Received: by filterdrecv-79b54d489b-97cwk with SMTP id filterdrecv-79b54d489b-97cwk-1-63735950-5 2022-11-15 09:18:08.165913249 +0000 UTC m=+394429.138533704 Received: from herokuapp.com (unknown) by geopod-ismtpd-1-3 (SG) with ESMTP id W9S-Nm3bTnGCbM8gln1QBA for ; Tue, 15 Nov 2022 09:18:08.155 +0000 (UTC) Date: Tue, 15 Nov 2022 09:18:08 +0000 (UTC) From: "byroot (Jean Boussier)" Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 18951 X-Redmine-Issue-Author: byroot X-Redmine-Sender: byroot X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-Redmine-MailingListIntegration-Message-Ids: 87212 X-SG-EID: =?us-ascii?Q?Dq8GNIcVqP8cs5uR+EIAabfg3LE9XdC6dZ5KYNrMpf6VzBWG6HqArcu5raQjXL?= =?us-ascii?Q?IGTFdxKHUt7++67+KD54pNYXheirMcsUIf3sdgF?= =?us-ascii?Q?Riq06iRPa=2Frmm1tcJADu8Mpr04aIoQ9xXVVI33+?= =?us-ascii?Q?3eXTG7zMiqVUkn0LJpgr7EbfJonGHX4OahbWJ0B?= =?us-ascii?Q?fZMmC09wPNkb=2FMxRO=2F8l9y7jbc+ptE64xv7UlqS?= =?us-ascii?Q?15vZLGg4tx3Sgrczzfg7vO+W7mJs57dCa9bYoFP?= =?us-ascii?Q?qE1ql72U=2F=2FrNp23goEsyw=3D=3D?= To: ruby-core@neon.ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 110760 Subject: [ruby-core:110760] [Ruby master Feature#18951] Object#with to set and restore attributes around a block X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Reply-To: Ruby developers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE4OTUxIGhhcyBiZWVuIHVwZGF0ZWQgYnkgYnlyb290IChKZWFuIEJvdXNzaWVyKS4K CkRlc2NyaXB0aW9uIHVwZGF0ZWQKCkkgZGlzY3Vzc2VkIHRoaXMgdmVyeSBxdWlja2x5IHdpdGgg QG1hdHogYXQgUldDLCBhbmQgaXQgc2VlbXMgdGhlIHR3byBtYWluIGNvbmNlcm5zIGFyZToKCiAg LSBgd2l0aGAgaXMgc2VlbiBhcyB0b28gZ2VuZXJpYywgc28gSSBwcm9wb3NlIGB3aXRoX2F0dHJg IGluc3RlYWQuCiAgLSBUaGUgdXNlIGNhc2UgaXNuJ3Qgc2VlbiBhcyBjb21tb24gZW5vdWdoLCBz byBJIGFkZGVkIDMgcmVhbCB3b3JsZCBleGFtcGxlIGluIHRoZSBkZXNjcmlwdGlvbiwgSWYgdGhh dCdzIG5vdCBlbm91Z2ggSSBjYW4gYWRkIGFzIG11Y2ggYXMgeW91IHdhbnQsIHRoaXMgcGF0dGVy biBpcyBleHRyZW1lbHkgY29tbW9uLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KRmVhdHVyZSAjMTg5NTE6IE9iamVjdCN3aXRoIHRvIHNldCBhbmQgcmVzdG9yZSBh dHRyaWJ1dGVzIGFyb3VuZCBhIGJsb2NrCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vl cy8xODk1MSNjaGFuZ2UtMTAwMTAwCgoqIEF1dGhvcjogYnlyb290IChKZWFuIEJvdXNzaWVyKQoq IFN0YXR1czogT3BlbgoqIFByaW9yaXR5OiBOb3JtYWwKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQojIyMgVXNlIGNhc2UKCkEgdmVyeSBjb21tb24gcGF0dGVybiBpbiBS dWJ5LCBlc3BlY2lhbGx5IGluIHRlc3RpbmcgaXMgdG8gc2F2ZSB0aGUgdmFsdWUgb2YgYW4gYXR0 cmlidXRlLCBzZXQgYSBuZXcgdmFsdWUsIGFuZCB0aGVuIHJlc3RvcmUgdGhlIG9sZCB2YWx1ZSBp biBhbiBgZW5zdXJlYCBjbGF1c2UuCgplLmcuIGluIHVuaXQgdGVzdHMKCmBgYHJ1YnkKZGVmIHRl c3Rfc29tZXRoaW5nX3doZW5fZW5hYmxlZAogIGVuYWJsZWRfd2FzLCBTb21lTGlicmFyeS5lbmFi bGVkID0gU29tZUxpYnJhcnkuZW5hYmxlZCwgdHJ1ZQogICMgdGVzdCB0aGluZ3MKZW5zdXJlCiAg U29tZUxpYnJhcnkuZW5hYmxlZCA9IGVuYWJsZWRfd2FzCmVuZApgYGAKCk9yIHNvbWV0aW1lIGlu IGFjdHVhbCBBUElzOgoKYGBgcnVieQpkZWYgd2l0aF9zb21ldGhpbmdfZW5hYmxlZAogIGVuYWJs ZWRfd2FzID0gQGVuYWJsZWQKICBAZW5hYmxlZCA9IHRydWUKICB5aWVsZAplbnN1cmUKICBAZW5h YmxlZCA9IGVuYWJsZWRfd2FzCmVuZApgYGAKClRoZXJlIGlzIG5vIGluaGVyZW50IHByb2JsZW0g d2l0aCB0aGlzIHBhdHRlcm4sIGJ1dCBpdCBjYW4gYmUgZWFzeSB0byBtYWtlIGEgbWlzdGFrZSwg Zm9yIGluc3RhbmNlIHRoZSB1bml0IHRlc3QgZXhhbXBsZToKCmBgYHJ1YnkKZGVmIHRlc3Rfc29t ZXRoaW5nX3doZW5fZW5hYmxlZAogIHNvbWVfY2FsbF90aGF0X21heV9yYWlzZQogIGVuYWJsZWRf d2FzLCBTb21lTGlicmFyeS5lbmFibGVkID0gU29tZUxpYnJhcnkuZW5hYmxlZCwgdHJ1ZQogICMg dGVzdCB0aGluZ3MKZW5zdXJlCiAgU29tZUxpYnJhcnkuZW5hYmxlZCA9IGVuYWJsZWRfd2FzCmVu ZApgYGAKCkluIHRoZSBhYm92ZSBpZiBgc29tZV9jYWxsX3RoYXRfbWF5X3JhaXNlYCBhY3R1YWxs eSByYWlzZXMsIGBTb21lTGlicmFyeS5lbmFibGVkYCBpcyBzZXQgYmFjayB0byBgbmlsYCByYXRo ZXIgdGhhbiBpdHMgb3JpZ2luYWwgdmFsdWUuIEkndmUgc2VlbiB0aGlzIG1pc3Rha2UgcXVpdGUg ZnJlcXVlbnRseS4KCiMjIyBQcm9wb3NhbAoKSSB0aGluayBpdCB3b3VsZCBiZSB2ZXJ5IHVzZWZ1 bCB0byBoYXZlIGEgbWV0aG9kIG9uIE9iamVjdCB0byBpbXBsZW1lbnQgdGhpcyBwYXR0ZXJuIGlu IGEgY29ycmVjdCBhbmQgZWFzeSB0byB1c2Ugd2F5LiBUaGUgbmFpdmUgUnVieSBpbXBsZW1lbnRh dGlvbiB3b3VsZCBiZToKCmBgYHJ1YnkKY2xhc3MgT2JqZWN0CiAgZGVmIHdpdGgoKiphdHRyaWJ1 dGVzKQogICAgb2xkX3ZhbHVlcyA9IHt9CiAgICBhdHRyaWJ1dGVzLmVhY2hfa2V5IGRvIHxrZXl8 CiAgICAgIG9sZF92YWx1ZXNba2V5XSA9IHB1YmxpY19zZW5kKGtleSkKICAgIGVuZAogICAgYmVn aW4KICAgICAgYXR0cmlidXRlcy5lYWNoIGRvIHxrZXksIHZhbHVlfAogICAgICAgIHB1YmxpY19z ZW5kKCIje2tleX09IiwgdmFsdWUpCiAgICAgIGVuZAogICAgICB5aWVsZAogICAgZW5zdXJlCiAg ICAgIG9sZF92YWx1ZXMuZWFjaCBkbyB8a2V5LCBvbGRfdmFsdWV8CiAgICAgICAgcHVibGljX3Nl bmQoIiN7a2V5fT0iLCBvbGRfdmFsdWUpCiAgICAgIGVuZAogICAgZW5kCiAgZW5kCmVuZApgYGAK Ck5COiBgcHVibGljX3NlbmRgIGlzIHVzZWQgYmVjYXVzZSBJIGRvbid0IHRoaW5rIHN1Y2ggbWV0 aG9kIHNob3VsZCBiZSB1c2FibGUgaWYgdGhlIGFjY2Vzc29ycyBhcmUgcHJpdmF0ZS4KCldpdGgg dXNhZ2U6CgpgYGBydWJ5CmRlZiB0ZXN0X3NvbWV0aGluZ193aGVuX2VuYWJsZWQKICBTb21lTGli cmFyeS53aXRoKGVuYWJsZWQ6IHRydWUpIGRvCiAgICAjIHRlc3QgdGhpbmdzCiAgZW5kCmVuZApg YGAKCmBgYHJ1YnkKR0Mud2l0aChtZWFzdXJlX3RvdGFsX3RpbWU6IHRydWUsIGF1dG9fY29tcGFj dDogZmFsc2UpIGRvCiAgIyBkbyBzb21ldGhpbmcKZW5kCmBgYAoKIyMjIEFsdGVybmF0ZSBuYW1l cyBhbmQgc2lnbmF0dXJlcwoKSWYgYCN3aXRoYCBpc24ndCBnb29kLCBJIGNhbiBhbHNvIHRoaW5r IG9mOgoKICAtIGBPYmplY3Qjc2V0YAogIC0gYE9iamVjdCNhcHBseWAKCkJ1dCB0aGUgYHdpdGhf YCBwcmVmaXggaXMgYnkgZmFyIHRoZSBtb3N0IHVzZWQgb25lIHdoZW4gaW1wbGVtZW50aW5nIG1l dGhvZHMgdGhhdCBmb2xsb3cgdGhpcyBwYXR0ZXJuLgoKQWxzbyBpZiBhY2NlcHRpbmcgYSBIYXNo IGlzIGRpbW1lZCB0b28gbXVjaCwgYWx0ZXJuYXRpdmUgc2lnbmF0dXJlcyBjb3VsZCBiZToKCiAg LSBgT2JqZWN0I3NldChhdHRyX25hbWUsIHZhbHVlKWAKICAtIGBPYmplY3Qjc2V0KGF0dHIxLCB2 YWx1ZTEsIFthdHRyMiwgdmFsdWUyXSwgLi4uKWAKCiMgU29tZSByZWFsIHdvcmxkIGNvZGUgZXhh bXBsZSB0aGF0IGNvdWxkIGJlIHNpbXBsaWZpZWQgd2l0aCBtZXRob2QKCi0gYHJlZGlzLWNsaWVu dGAgYHdpdGhfdGltZW91dGAgaHR0cHM6Ly9naXRodWIuY29tL3JlZGlzLXJiL3JlZGlzLWNsaWVu dC9ibG9iLzIzYTVjMWUyZmY2ODg1MTg5MDRmMjA2ZGY4ZDRhODczNDI3NTI5MmQvbGliL3JlZGlz X2NsaWVudC9ydWJ5X2Nvbm5lY3Rpb24vYnVmZmVyZWRfaW8ucmIjTDM1LUw1MwotIExvdHMgb2Yg dGVzdHMgaW4gUmFpbHMncyBjb2RlYmFzZToKICAtIENoYW5naW5nIGBUaHJlYWQucmVwb3J0X29u X2V4Y2VwdGlvbmA6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWlscy9yYWlscy9ibG9iLzJkMmZkYzk0 MWU3NDk3Y2E3N2Y5OWNlNWFkNDA0YjZlNThmMDQzZWYvYWN0aXZlcmVjb3JkL3Rlc3QvY2FzZXMv Y29ubmVjdGlvbl9wb29sX3Rlc3QucmIjTDU4My1MNTk1CiAgLSBDaGFuZ2luZyBhIGNsYXNzIGF0 dHJpYnV0ZTogaHR0cHM6Ly9naXRodWIuY29tL3JhaWxzL3JhaWxzL2Jsb2IvMmQyZmRjOTQxZTc0 OTdjYTc3Zjk5Y2U1YWQ0MDRiNmU1OGYwNDNlZi9hY3RpdmVyZWNvcmQvdGVzdC9jYXNlcy9hc3Nv Y2lhdGlvbnMvYmVsb25nc190b19hc3NvY2lhdGlvbnNfdGVzdC5yYiNMMTM2LUwxNTAKCgoKCi0t IApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8K