Issue #7019 has been updated by alexeymuranov (Alexey Muranov). =begin Here is a usecase i have made up. The following does not work now: class C def f def g # end private def h # end end end c = C.new c.f # => NameError: undefined local variable or method `private' for ... So a block syntax could make sense here: class C def f def g # end privately do def h # end end end end =end ---------------------------------------- Feature #7019: allow `private` and `protected` keywords to take blocks https://bugs.ruby-lang.org/issues/7019#change-29462 Author: alexeymuranov (Alexey Muranov) Status: Open Priority: Normal Assignee: Category: Target version: =begin I like to indent my private methods one level deeper, but this indentation is inconsistent with the syntax: class C def f # end private def g # end end I think it would be nice if the (({private})) keyword could take a block, then i would write: class C def f # end private do def g # end end end =end -- http://bugs.ruby-lang.org/