#ruby
#ruby
Вопрос:
Я отлаживаю приложение, в котором мне нужно проверить, соответствует ли класс ресурсов DNS-запроса типу IN. Вот что я обнаружил:
[6] pry(#<DNS::Server>)> resource_class
=> Resolv::DNS::Resource::IN::A
[7] pry(#<DNS::Server>)> resource_class.inspect
=> "Resolv::DNS::Resource::IN::A"
[8] pry(#<DNS::Server>)> resource_class.class.name
=> "Class"
[9] pry(#<DNS::Server>)> resource_class.kind_of? Class
=> true
[10] pry(#<DNS::Server>)> resource_class.kind_of? Resolv::DNS::Resource::IN::A
=> false
[11] pry(#<DNS::Server>)> resource_class.instance_of? Class
=> true
[12] pry(#<DNS::Server>)> resource_class.instance_of? Resolv::DNS::Resource::IN::A
=> false
[13] pry(#<DNS::Server>)> resource_class.is_a? Class
=> true
[14] pry(#<DNS::Server>)> resource_class.is_a? Resolv::DNS::Resource::IN::A
=> false
Я пытался проверить, использование resource_class.instance_of? Resolv::DNS::Resource::IN::A
которого не работает. Как мне это проверить?
Ответ №1:
Ваш resource_class
класс. Это не экземпляр Resolv::DNS::Resource::IN::A
; это Resolv::DNS::Resource::IN::A
. Таким образом, простого сравнения будет достаточно:
resource_class == Resolv::DNS::Resource::IN::A