From: herwin@... Date: 2016-06-16T07:58:58+00:00 Subject: [ruby-core:76047] [Ruby trunk Feature#12495] Make "private" return the arguments again, for chaining Issue #12495 has been reported by Herwin .. ---------------------------------------- Feature #12495: Make "private" return the arguments again, for chaining https://bugs.ruby-lang.org/issues/12495 * Author: Herwin . * Status: Open * Priority: Normal * Assignee: ---------------------------------------- Ruby 2.1 introduced the feature to make `def foo` return the symbol, so this could be used by things like `private` (see #3753): ```ruby private def foo() end ``` You could use the same method to create your own decorators (name borrowed from Python) ```ruby def cached(name) # Rewrite method to include a cache return name end private cached def foo() end ``` Currently, this would work but `cached private def foo()` would not. `private` (and all other modifier functions) return the class on which it was called. It would be nice to exterminate those order-dependencies. The attached patch fixes this. It includes three modes: No arguments: return `nil`: ```ruby private def foo() end ``` One argument: return the symbol. The would be the most common use case for this example. ```ruby private def foo() end private :bar ``` Multiple arguments: return an array of the arguments: ```ruby private :foo, :bar ``` ---Files-------------------------------- ruby_return_symbols_in_private.diff (1.19 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: