LINUX.ORG.RU

История изменений

Исправление 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)