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: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>