У меня есть простой фрагмент кода, который определяет метод (на Ruby Main Object), а затем проверяет, не определено ли оно.
puts "#{self} #{self.class}"
def foo;end
puts self.methods.include?(:foo)
Когда я запускаю это в консоли Ruby. Я получаю:
main Object
true
Если я вставляю этот код в файл .rb и запускаю такой файл ruby test_script.rb
, я получаю следующий вывод
main Object
false
Я не могу понять, почему я вижу это поведение. Метод определяется в script, так как я могу вызвать метод.
Я запускаю оба на Ruby 2.3.4