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.5 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE,T_SPF_PERMERROR,UNPARSEABLE_RELAY,URIBL_GREY shortcircuit=no autolearn=ham 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 DDB5B1F54E for ; Sun, 11 Sep 2022 02:49:49 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=sendgrid.me header.i=@sendgrid.me header.b="yvTJKimP"; dkim-atps=neutral Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 60CE6120F9C; Sun, 11 Sep 2022 11:49:47 +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 3A024120F9B for ; Sun, 11 Sep 2022 11:49:44 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.me; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc; s=smtpapi; bh=cT2HjvNIBaqjMjdmMGYxIQdytLcCUugbx8kB23Dkibc=; b=yvTJKimPIi9lRr8swsCHP4S3Xf3YEU3+2B7w3ruqF+jo+Nft0Hh+wOInz/nHnBABkdUr n9qjeqIua1lFPfiroAsuNjJ1DwJwwoePBTBB1WVDGv90wzPF89GgEzYJWF1FI2nXKiCYo1 EWqq+FeXRKQy1gxZ2bCJi+v+ZGxVcfM7o= Received: by filterdrecv-5fb7f79bd6-t5kz8 with SMTP id filterdrecv-5fb7f79bd6-t5kz8-1-631D4CC6-5 2022-09-11 02:49:42.210081658 +0000 UTC m=+1399130.562737572 Received: from herokuapp.com (unknown) by geopod-ismtpd-2-4 (SG) with ESMTP id bMdSQkaUQFu8LE9AACxCtA for ; Sun, 11 Sep 2022 02:49:42.068 +0000 (UTC) Date: Sun, 11 Sep 2022 02:49:42 +0000 (UTC) From: "baweaver (Brandon Weaver)" 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: baweaver 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: 86323 X-SG-EID: =?us-ascii?Q?6PBnqGVixH+llkjHa+Xwvob=2FybSi+L+bV9fAkJjIVglK5gN43Zn4ZzbABcdmPU?= =?us-ascii?Q?jtw9zrcVes5Kfk1kjh6iBaPCFstljxmShG3mIGO?= =?us-ascii?Q?imRL1GOISXo7GB85S9Iku8NnLDCQ9FyRHPUFmZx?= =?us-ascii?Q?wFSUYA8gMn35RT+2X1nz1j2y+3riXeIAWm9twHL?= =?us-ascii?Q?NH62mtY80KSQxgt+1uRGKRN4M8rI6Ye4jaIeyup?= =?us-ascii?Q?x8Nf+XFWjv6fT440IOX1o8os684MvfOD1VGsu+x?= =?us-ascii?Q?yYHEysPlejISHIw73WTig=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 109882 Subject: [ruby-core:109882] [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" SXNzdWUgIzE4OTUxIGhhcyBiZWVuIHVwZGF0ZWQgYnkgYmF3ZWF2ZXIgKEJyYW5kb24gV2VhdmVy KS4KCgpUaGlzIGlkZWEgaXMgdmVyeSBzaW1pbGFyIHRvIEFsZ2VicmFpYyBlZmZlY3RzLCB3aGlj aCBkcnktcmIgaGFzIGEgdmFyaWFudCBvbjoKCmh0dHBzOi8vZHJ5LXJiLm9yZy9nZW1zL2RyeS1l ZmZlY3RzL21haW4vCgpJIHdvdWxkIHBlcnNvbmFsbHkgbGlrZSB0aGUgYHdpdGhgIHZhcmlhbnQg bXlzZWxmLCBncmFudGluZyB0aGF0IGl0IGlzIGEgYml0IHZhZ3VlLCBidXQgaXMgYWxzbyBpbiBs aW5lIHdpdGggd2hhdCBhIGxvdCBvZiBlZmZlY3RzIHN0eWxlIGxpYnJhcmllcyBhcmUgdXNpbmcu CgpJIGJlbGlldmUgRGFuIEFicmFtb3YgaGFzIGRvbmUgYSBnb29kIGpvYiBvZiBleHBsYWluaW5n IHRoaXMgY29uY2VwdDoKCmh0dHBzOi8vb3ZlcnJlYWN0ZWQuaW8vYWxnZWJyYWljLWVmZmVjdHMt Zm9yLXRoZS1yZXN0LW9mLXVzLwoKTW9zdGx5IG5vdGluZyB0aGF0IHRoZXJlIGlzIHByZWNlZGVu dCBmb3IgdGhpcyB0eXBlIG9mIHBhdHRlcm4gaW4gbW9yZSBmdW5jdGlvbmFsbHkgb3JpZW50ZWQg bGFuZ3VhZ2VzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGZWF0 dXJlICMxODk1MTogT2JqZWN0I3dpdGggdG8gc2V0IGFuZCByZXN0b3JlIGF0dHJpYnV0ZXMgYXJv dW5kIGEgYmxvY2sKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE4OTUxI2NoYW5n ZS05OTEyMwoKKiBBdXRob3I6IGJ5cm9vdCAoSmVhbiBCb3Vzc2llcikKKiBTdGF0dXM6IE9wZW4K KiBQcmlvcml0eTogTm9ybWFsCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIyMjIFVzZSBjYXNlCgpBIHZlcnkgY29tbW9uIHBhdHRlcm4gaW4gUnVieSwgZXNwZWNpYWxs eSBpbiB0ZXN0aW5nIGlzIHRvIHNhdmUgdGhlIHZhbHVlIG9mIGFuIGF0dHJpYnV0ZSwgc2V0IGEg bmV3IHZhbHVlLCBhbmQgdGhlbiByZXN0b3JlIHRoZSBvbGQgdmFsdWUgaW4gYW4gYGVuc3VyZWAg Y2xhdXNlLgoKZS5nLiBpbiB1bml0IHRlc3RzCgpgYGBydWJ5CmRlZiB0ZXN0X3NvbWV0aGluZ193 aGVuX2VuYWJsZWQKICBlbmFibGVkX3dhcywgU29tZUxpYnJhcnkuZW5hYmxlZCA9IFNvbWVMaWJy YXJ5LmVuYWJsZWQsIHRydWUKICAjIHRlc3QgdGhpbmdzCmVuc3VyZQogIFNvbWVMaWJyYXJ5LmVu YWJsZWQgPSBlbmFibGVkX3dhcwplbmQKYGBgCgpPciBzb21ldGltZSBpbiBhY3R1YWwgQVBJczoK CmBgYHJ1YnkKZGVmIHdpdGhfc29tZXRoaW5nX2VuYWJsZWQKICBlbmFibGVkX3dhcyA9IEBlbmFi bGVkCiAgQGVuYWJsZWQgPSB0cnVlCiAgeWllbGQKZW5zdXJlCiAgQGVuYWJsZWQgPSBlbmFibGVk X3dhcwplbmQKYGBgCgpUaGVyZSBpcyBubyBpbmhlcmVudCBwcm9ibGVtIHdpdGggdGhpcyBwYXR0 ZXJuLCBidXQgaXQgY2FuIGJlIGVhc3kgdG8gbWFrZSBhIG1pc3Rha2UsIGZvciBpbnN0YW5jZSB0 aGUgdW5pdCB0ZXN0IGV4YW1wbGU6CgpgYGBydWJ5CmRlZiB0ZXN0X3NvbWV0aGluZ193aGVuX2Vu YWJsZWQKICBzb21lX2NhbGxfdGhhdF9tYXlfcmFpc2UKICBlbmFibGVkX3dhcywgU29tZUxpYnJh cnkuZW5hYmxlZCA9IFNvbWVMaWJyYXJ5LmVuYWJsZWQsIHRydWUKICAjIHRlc3QgdGhpbmdzCmVu c3VyZQogIFNvbWVMaWJyYXJ5LmVuYWJsZWQgPSBlbmFibGVkX3dhcwplbmQKYGBgCgpJbiB0aGUg YWJvdmUgaWYgYHNvbWVfY2FsbF90aGF0X21heV9yYWlzZWAgYWN0dWFsbHkgcmFpc2VzLCBgU29t ZUxpYnJhcnkuZW5hYmxlZGAgaXMgc2V0IGJhY2sgdG8gYG5pbGAgcmF0aGVyIHRoYW4gaXRzIG9y aWdpbmFsIHZhbHVlLiBJJ3ZlIHNlZW4gdGhpcyBtaXN0YWtlIHF1aXRlIGZyZXF1ZW50bHkuCgoj IyMgUHJvcG9zYWwKCkkgdGhpbmsgaXQgd291bGQgYmUgdmVyeSB1c2VmdWwgdG8gaGF2ZSBhIG1l dGhvZCBvbiBPYmplY3QgdG8gaW1wbGVtZW50IHRoaXMgcGF0dGVybiBpbiBhIGNvcnJlY3QgYW5k IGVhc3kgdG8gdXNlIHdheS4gVGhlIG5haXZlIFJ1YnkgaW1wbGVtZW50YXRpb24gd291bGQgYmU6 CgpgYGBydWJ5CmNsYXNzIE9iamVjdAogIGRlZiB3aXRoKCoqYXR0cmlidXRlcykKICAgIG9sZF92 YWx1ZXMgPSB7fQogICAgYXR0cmlidXRlcy5lYWNoX2tleSBkbyB8a2V5fAogICAgICBvbGRfdmFs dWVzW2tleV0gPSBwdWJsaWNfc2VuZChrZXkpCiAgICBlbmQKICAgIGJlZ2luCiAgICAgIGF0dHJp YnV0ZXMuZWFjaCBkbyB8a2V5LCB2YWx1ZXwKICAgICAgICBwdWJsaWNfc2VuZCgiI3trZXl9PSIs IHZhbHVlKQogICAgICBlbmQKICAgICAgeWllbGQKICAgIGVuc3VyZQogICAgICBvbGRfdmFsdWVz LmVhY2ggZG8gfGtleSwgb2xkX3ZhbHVlfAogICAgICAgIHB1YmxpY19zZW5kKCIje2tleX09Iiwg b2xkX3ZhbHVlKQogICAgICBlbmQKICAgIGVuZAogIGVuZAplbmQKYGBgCgpOQjogYHB1YmxpY19z ZW5kYCBpcyB1c2VkIGJlY2F1c2UgSSBkb24ndCB0aGluayBzdWNoIG1ldGhvZCBzaG91bGQgYmUg dXNhYmxlIGlmIHRoZSBhY2Nlc3NvcnMgYXJlIHByaXZhdGUuCgpXaXRoIHVzYWdlOgoKYGBgcnVi eQpkZWYgdGVzdF9zb21ldGhpbmdfd2hlbl9lbmFibGVkCiAgU29tZUxpYnJhcnkud2l0aChlbmFi bGVkOiB0cnVlKSBkbwogICAgIyB0ZXN0IHRoaW5ncwogIGVuZAplbmQKYGBgCgpgYGBydWJ5CkdD LndpdGgobWVhc3VyZV90b3RhbF90aW1lOiB0cnVlLCBhdXRvX2NvbXBhY3Q6IGZhbHNlKSBkbwog ICMgZG8gc29tZXRoaW5nCmVuZApgYGAKCiMjIyBBbHRlcm5hdGUgbmFtZXMgYW5kIHNpZ25hdHVy ZXMKCklmIGAjd2l0aGAgaXNuJ3QgZ29vZCwgSSBjYW4gYWxzbyB0aGluayBvZjoKCiAgLSBgT2Jq ZWN0I3NldGAKICAtIGBPYmplY3QjYXBwbHlgCgpCdXQgdGhlIGB3aXRoX2AgcHJlZml4IGlzIGJ5 IGZhciB0aGUgbW9zdCB1c2VkIG9uZSB3aGVuIGltcGxlbWVudGluZyBtZXRob2RzIHRoYXQgZm9s bG93IHRoaXMgcGF0dGVybi4KCkFsc28gaWYgYWNjZXB0aW5nIGEgSGFzaCBpcyBkaW1tZWQgdG9v IG11Y2gsIGFsdGVybmF0aXZlIHNpZ25hdHVyZXMgY291bGQgYmU6CgogIC0gYE9iamVjdCNzZXQo YXR0cl9uYW1lLCB2YWx1ZSlgCiAgLSBgT2JqZWN0I3NldChhdHRyMSwgdmFsdWUxLCBbYXR0cjIs IHZhbHVlMl0sIC4uLilgCgoKCgoKLS0gCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnLwo=