mirror of
https://github.com/Evolix/chexpire.git
synced 2024-06-18 07:17:17 +02:00
34 lines
628 B
Ruby
34 lines
628 B
Ruby
|
require "null_logger"
|
||
|
require "domain_helper"
|
||
|
require "whois/command"
|
||
|
require "whois/parser"
|
||
|
require "whois/response"
|
||
|
|
||
|
module Whois
|
||
|
class << self
|
||
|
def ask(domain, logger: NullLogger.new)
|
||
|
Service.new(domain, logger).call
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Service
|
||
|
attr_reader :domain
|
||
|
attr_reader :logger
|
||
|
|
||
|
def initialize(domain, logger)
|
||
|
@domain = domain
|
||
|
@logger = logger
|
||
|
end
|
||
|
|
||
|
def call
|
||
|
command = Command.new(domain, logger: logger)
|
||
|
raw_response = command.run
|
||
|
|
||
|
parser = Parser.for(domain, logger: logger)
|
||
|
response = parser.parse(raw_response)
|
||
|
|
||
|
response
|
||
|
end
|
||
|
end
|
||
|
end
|