Nameserver deserializer

This commit is contained in:
Karl Erik Õunapuu 2020-11-25 15:45:43 +02:00
parent b39de0885a
commit 7459d7e0c5
No known key found for this signature in database
GPG key ID: C9DD647298A34764
4 changed files with 53 additions and 21 deletions

View file

@ -0,0 +1,37 @@
module Deserializers
module Xml
class Nameserver
attr_reader :frame
def initialize(frame)
@frame = frame
end
def call
{
hostname: frame.css('hostName').text,
ipv4: frame.css('hostAddr[ip="v4"]').map(&:text).compact,
ipv6: frame.css('hostAddr[ip="v6"]').map(&:text).compact
}
end
end
class Nameservers
attr_reader :frame
def initialize(frame)
@frame = frame
end
def call
res = []
frame.css('hostAttr').each do |ns|
ns = Deserializers::Xml::Nameserver.new(ns).call
res << ns.delete_if { |_k, v| v.blank? }
end
res
end
end
end
end