Thắc mắc về scope trong Ruby?

Chào mọi người,

Em có thắc mắc về constant - scope trong ruby thế này ạ:

Em có 2 module Test và MiModule định nghĩa như bên dưới.

module Test
  E = 2.7818
  class Test2
    def what_is_e
      puts E
    end
  end
end
Test::Test2.new.what_is_e
# Override the constant scopes
module MiModule
  MiConstant = 'Outer'
  class MiClass
    puts MiConstant
    MiConstant = 'Inner'
    puts MiConstant
  end
  puts MiConstant
end

Khi em chạy file này thì in ra

2.7818
Outer
Inner
Outer

Em không hiểu tại sao lại in ra được cả 3 dòng bên dưới, trong khi mà em còn chưa gọi new

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?