История изменений
Исправление TDrive, (текущая версия) :
module A
  extend self
  def a1
    puts 'a1'
  end
end
require './a.rb'
module B
  extend self
  extend A
  def b1
    puts 'b1'
  end
  def b2
    a1
  end
end
#!/usr/bin/env ruby
require './b.rb'
B.b1 # b1
B.b2 # a1
A.a1 # a1 явно говорим что используем модуль A, не подключили - ССЗБ
a1 #undefined local variable or method `a1' for main:Object (NameError)
Исходная версия TDrive, :
module A
  extend self
  def a1
    puts 'a1'
  end
end
require './a.rb'
module B
  extend self
  extend A
  def b1
    puts 'b1'
  end
  def b2
    a1
  end
end
#!/usr/bin/env ruby
require './b.rb'
B.b1 # b1
B.b2 # a1
A.a1 # a1 явно говорим что используем модуль A, не подключили - ССЗБ
a1 #undefined local variable or method `a1' for main:Object (NameError)