Feature #16615
Updated by ted (Ted Johansson) over 4 years ago
Given a method `.bar`, which defines an instance method `#bar` on a class, and returns the defined method's name as a symbol (`:baz`). ``` class Foo private bar :baz # On evaluation defines a method and returns its name. # In current Ruby, that method will be public. The suggested # behaviour is to make it private, since the class method # which defines the instance method is in the private scope. # bar :baz end ``` it would be neat if the dynamically defined instance method respected the scope in which its definition originated. (In this particular case `private`.) Essentially the request is to extend the special powers of `attr_*` (being able to define methods that honour visibility scopes) to any method. Note: I am aware that inline access scopes already work for dynamically defined methods, as they merely accept a symbol as an argument. Edit: Changed `macro` to `bar` so people don't get hung up on the name of the method (which has no importance to the proposal.)