[ruby-core:78306] [Ruby trunk Feature#12721][Rejected] public_module_function
From:
matz@...
Date:
2016-11-25 06:58:24 UTC
List:
ruby-core #78306
Issue #12721 has been updated by Yukihiro Matsumoto.
Status changed from Open to Rejected
I understand your proposal, but I don't see what it is for.
Do you have any no-artificial use-case for this feature?
If you come up with real-world use-case, please re-open the issue.
Matz.
----------------------------------------
Feature #12721: public_module_function
https://bugs.ruby-lang.org/issues/12721#change-61669
* Author: Robert A. Heiler
* Status: Rejected
* Priority: Normal
* Assignee:
----------------------------------------
Hello ruby core,
This is about `module_function()`. As the documentation rightfully
states, it adds a private method when included ("mixed in") into
a class.
The following code shows that this works:
```ruby
module Foo
module_function
def hi
puts 'hi from method hi() in module Foo'
end
end
class Bar
include Foo
def test
hi
end
end
Bar.new.test # This works
Bar.new.hi # This here leads to an error message "private method `hi' called"
```
I am sure that the private method by default makes sense, but
I wondered in those case where I would like the above to be
a public variant.
Is there some functionality like `module_function` but that
works as a public method instead? So that the last example,
`Bar.new.hi`, would also work?
Something like
```ruby
public_module_function
```
If I would have a public variant, I assume that I could get rid of
"`def self.foo`" statements in some of my modules.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>