lib/whois/parsers/whois.registro.br.rb in whois-parser-1.2.0 vs lib/whois/parsers/whois.registro.br.rb in whois-parser-2.0.0

- old
+ new

@@ -1,11 +1,11 @@ #-- # Ruby Whois # # An intelligent pure Ruby WHOIS client and parser. # -# Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net> +# Copyright (c) 2009-2022 Simone Carletti <weppos@weppos.net> #++ require_relative 'base' @@ -22,10 +22,19 @@ # @see Whois::Parsers::Example # The Example parser for the list of all available methods. # class WhoisRegistroBr < Base + property_supported :domain do + if available? + content_for_scanner.match(/^% No match for \s*(.+)\n/)[1] + else + content_for_scanner.match(/^domain: \s*(.+)\n/)[1] + end + end + + property_supported :status do if available? :available else :registered @@ -41,23 +50,23 @@ end property_supported :created_on do if content_for_scanner =~ /created:\s+(.+?)(\s+#.+)?\n/ - parse_time($1) + parse_time(::Regexp.last_match(1)) end end property_supported :updated_on do if content_for_scanner =~ /changed:\s+(.+?)\n/ - parse_time($1) + parse_time(::Regexp.last_match(1)) end end property_supported :expires_on do if content_for_scanner =~ /expires:\s+(.+?)\n/ - parse_time($1) + parse_time(::Regexp.last_match(1)) end end property_supported :registrant_contacts do @@ -84,24 +93,24 @@ private def parse_contact(element, type) return unless content_for_scanner =~ /#{element}:\s+(.+)\n/ - id = $1 + id = ::Regexp.last_match(1) content_for_scanner.scan(/nic-hdl-br:\s+#{id}\n((.+\n)+)\n/).any? || Whois.bug!(ParserError, "Unable to parse contact block for nic-hdl-br: #{id}") - values = build_hash($1.scan(/(.+?):\s+(.+?)\n/)) + values = build_hash(::Regexp.last_match(1).scan(/(.+?):\s+(.+?)\n/)) - created_on = values["created"] ? Time.utc(*values["created"][0..3],*values["created"][4..5],*values["created"][6..7]) : nil - updated_on = values["changed"] ? Time.utc(*values["changed"][0..3],*values["changed"][4..5],*values["changed"][6..7]) : nil + created_on = values["created"] ? Time.utc(*values["created"][0..3], *values["created"][4..5], *values["created"][6..7]) : nil + updated_on = values["changed"] ? Time.utc(*values["changed"][0..3], *values["changed"][4..5], *values["changed"][6..7]) : nil Parser::Contact.new({ type: type, id: id, name: values["person"], email: values["e-mail"], created_on: created_on, - updated_on: updated_on + updated_on: updated_on, }) end def build_hash(tokens) {}.tap do |hash|