Почти все вы использовали модуль URI
для преобразования строки URL-адреса в объект, чтобы выполнить некоторую проверку или изменение.
Пример:
require 'uri'
URI('https://google.com')
# => #<URI::HTTPS https://google.com>
Как видите, результатом является объект HTTPS
в модуле URI
.
Итак, возникает вопрос, что запускается, когда вы пишете имя модуля / класса с помощью круглых скобок, как в строке кода выше.
Я думал, это неявный вызов метода call
, но я получил NoMethodError
.
Пример:
class MyClass
def self.call
puts 'You were right!'
end
end
MyClass()
# => NoMethodError: undefined method `MyClass' for main:Object