Skip to content
  • Jeremy Evans's avatar
    75ecbda4
    Make Module#{public,private,protected,module_function} return arguments · 75ecbda4
    Jeremy Evans authored
    Previously, each of these methods returned self, but it is
    more useful to return arguments, to allow for simpler method
    decorators, such as:
    
    ```ruby
    cached private def foo; some_long_calculation; end
    ```
    
    Where cached sets up caching for the method.
    
    For each of these methods, the following behavior is used:
    
    1) No arguments returns nil
    2) Single argument is returned
    3) Multiple arguments are returned as an array
    
    The single argument case is really the case we are trying to
    optimize for, for the same reason that def was changed to return
    a symbol for the method.
    
    Idea and initial patch from Herwin Quarantainenet.
    
    Implements [Feature #12495]
    75ecbda4
    Make Module#{public,private,protected,module_function} return arguments
    Jeremy Evans authored
    Previously, each of these methods returned self, but it is
    more useful to return arguments, to allow for simpler method
    decorators, such as:
    
    ```ruby
    cached private def foo; some_long_calculation; end
    ```
    
    Where cached sets up caching for the method.
    
    For each of these methods, the following behavior is used:
    
    1) No arguments returns nil
    2) Single argument is returned
    3) Multiple arguments are returned as an array
    
    The single argument case is really the case we are trying to
    optimize for, for the same reason that def was changed to return
    a symbol for the method.
    
    Idea and initial patch from Herwin Quarantainenet.
    
    Implements [Feature #12495]
Loading