rubyのクラスメソッドについて改めて考えた

ruby勉強会を社内で行うため、改めて色々見ていたらクラスメソッドに関する記事を読んだので復習の意味も込めてここに書く。
前回の記事で特異クラス、特異メソッドについて書きましたが、それに関連する話で、そもそもクラス定義の

class Dog

end

Dog = Class.new do

end

と置き換えられるとのこと。rubyではclassの宣言の意味するところとして、この例でいくとClassクラスのオブジェクトをDogというグローバル変数に入れる、という意味と同義らしい。

なので、例えば

class Dog
  #特異クラス方式のクラスメソッドの定義
  class << self
    def run
      puts 'this method is class method.'
    end
  end
end

Dog = class.new do
  def run
    puts 'this method is class method.'
  end
end

これは同じ処理を別々の書き方で書いているということになります。
うーん、rubyって面白いなー