From: nobu@... Date: 2016-09-03T06:07:41+00:00 Subject: [ruby-core:77138] [Ruby trunk Feature#12721] public_module_function Issue #12721 has been updated by Nobuyoshi Nakada. Description updated ```ruby class Bar include Foo public :hi end ``` ---------------------------------------- Feature #12721: public_module_function https://bugs.ruby-lang.org/issues/12721#change-60355 * 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: ```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: