« Back to Index

Ruby: private class level methods

View original Gist on GitHub

ruby_private_class_level_methods.rb

class Foo
  class << self
    def bar
      p "im public"
    end
    
    private
    def baz
      p "im private"
    end
  end
end

Foo.bar # => im public
Foo.baz # => NoMethodError: private method `baz' called for Foo:Class

this_is_not_the_same.rb

class Foo
  def self.bar
    p "im public"
  end
  
  private
  def self.baz
    p "im private"
  end
end

Foo.bar # => im public
Foo.baz # => im private