To make a class method private, one would assume the folowing code:
class MyClass # omitted for brevity private def self.my_method # do something end end
However this code does not work as expected.
private method does not work on class methods, only instance methods.
To make a class methods private, one need to use the
class << self idiom, which lets us operate on the class itself as an object.
class MyClass # omitted for brievety class << self private def my_method # do something end end end
my_method in the code above is a class (or static) method.