From: shugo@... Date: 2014-02-13T08:21:42+00:00 Subject: [ruby-core:60681] [ruby-trunk - Bug #9452] Refining methods that should be private Issue #9452 has been updated by Shugo Maeda. Assignee set to Shugo Maeda ---------------------------------------- Bug #9452: Refining methods that should be private https://bugs.ruby-lang.org/issues/9452#change-45107 * Author: Jan Lelis * Status: Open * Priority: Normal * Assignee: Shugo Maeda * Category: * Target version: * ruby -v: ruby 2.2.0dev (2014-01-25 trunk 44707) [x86_64-linux] * Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- Are refinements also meant to add private methods? This is what I tried: module R refine Object do def m puts "Success!" end private(:m) end end using R m # success 42.m # success (= not private) However, I can get near the desired functionality by defining a private method first: class Object private def m end end module R refine Object do def m puts "Success!" end end end using R m # success 42.m # no success (= it is private) It calls the right code. But requires global core ext. -- http://bugs.ruby-lang.org/