Sha256: ab40c4437135bc100c928413af1d9081f45c1bc45320db2cc452aac23762eb92

Contents?: true

Size: 1.09 KB

Versions: 9

Compression:

Stored size: 1.09 KB

Contents

require_relative 'base'

module Whois
  module Scanners

    # Scanner for the whois.rnids.rs record.
    class WhoisRnidsRs < Base

      self.tokenizers += [
          :scan_available,
          :skip_comment,
          :flag_section_start,
          :scan_keyvalue,
          :flag_section_end,
          :skip_empty_line,
          :skip_privacy,
      ]


      SECTIONS = ["Owner", "Administrative contact", "Technical contact"]

      tokenizer :scan_available do
        if @input.scan(/^%ERROR:103: Domain is not registered/)
          @ast["status:available"] = true
        end
      end

      tokenizer :flag_section_start do
        if SECTIONS.any? { |section| @input.check(/^(#{section}):/) }
          @tmp['_section'] = @input[1]
        end
        false
      end

      tokenizer :flag_section_end do
        if @input.match?(/^\n/)
          @tmp.delete('_section')
        end
      end

      tokenizer :skip_comment do
        @input.skip(/^%.*\n/)
      end

      tokenizer :skip_privacy do
        @input.skip(/^Whois privacy has been activated for domain.\n/)
      end

    end

  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
whois-parser-2.0.0 lib/whois/scanners/whois.rnids.rs.rb
whois-parser-1.2.0 lib/whois/scanners/whois.rnids.rs.rb
whois-parser-1.1.0 lib/whois/scanners/whois.rnids.rs.rb
whois-parser-1.0.1 lib/whois/scanners/whois.rnids.rs.rb
hetzner-whois-parser-1.0.1.rc2 lib/whois/scanners/whois.rnids.rs.rb
hetzner-whois-parser-1.0.1.rc1 lib/whois/scanners/whois.rnids.rs.rb
whois-parser-1.0.0 lib/whois/scanners/whois.rnids.rs.rb
whois-parser-1.0.0.pre.beta2 lib/whois/scanners/whois.rnids.rs.rb
whois-parser-1.0.0.pre.beta1 lib/whois/scanners/whois.rnids.rs.rb