In Ruby instance methods can be marked as private by declaring them below the private section. However, the same does not work for class methods.
class SomeClass
  def method1
    # do something 
  end
  private
  def method2
    # do something els
  end
endThe above works fine. Instances (objects) of the class can not call method2 directly.
class SomeOtherClass
  def self.method1
    # do something 
  end
  private
  def self.method2
    # do something else
  end
endIn this case however, one can easily call
method2 as follows.SomeOtherClass.method2To mark class methods as private, we will need to use private_class_method as shown below.
class SomeOtherClass
  def self.method1
    # do something 
  end
  private_class_method :method2 :method3
  def self.method2
    # do something else
  end
  def self.method3
    # do some other things here
  end
end