Этот ответ может звучать как полицейский, но он не выдает ошибку, потому что Ruby не заботится даже о том, как называются ваши имена файлов.
например, в файле asdfasdf.no_rb_ending_here
мы можем иметь
#!/usr/bin/env ruby
module Something
class Test
def test
puts 'test'
end
end
end
class SomethingElse
def otherThings
puts 'haha'
end
end
Затем, чтобы сделать вещи еще более странными, у меня может быть отдельный файл, который модифицирует (исправляет обезьяны) классы, определенные в этом файле.в more_stuff.rb
#!/usr/bin/env ruby
require_relative 'asdfasdf.no_rb_ending_here'
module Something
class Test
def test2
test()
puts '2'
end
end
end
class SomethingElse
def moreThings
otherThings()
puts 'MOAR'
end
end
Something::Test.new.test2()
# test
# 2
SomethingElse.new.moreThings()
# haha
# MOAR
Ruby довольно крутой - вы не получаете ошибок за то, что НЕ НУЖНО вызывать ошибку.