[ruby-core:77137] [Ruby trunk Feature#12721] public_module_function
From:
shevegen@...
Date:
2016-09-03 05:08:45 UTC
List:
ruby-core #77137
Issue #12721 has been reported by Robert A. Heiler.
----------------------------------------
Feature #12721: public_module_function
https://bugs.ruby-lang.org/issues/12721
* Author: Robert A. Heiler
* Status: Open
* 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:
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
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:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>