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
end
The 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
end
In this case however, one can easily call
method2
as follows.SomeOtherClass.method2
To 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