From: shevegen@... Date: 2016-09-03T05:08:45+00:00 Subject: [ruby-core:77137] [Ruby trunk Feature#12721] public_module_function 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: