Sha256: 6e04c1f7d479df589316b2604a7eddcd8cbd873565553e2d610bd32ea1ec2642

Contents?: true

Size: 884 Bytes

Versions: 1

Compression:

Stored size: 884 Bytes

Contents

require 'httparty'
require 'nokogiri'
require 'ares/version'
require 'ares/errors'
require 'ares/logging'
require 'ares/client'
require 'ico-validator'

module Ares
  class << self
    include Ares::Logging

    # Returns standard client
    # @returns [Client::Standard]
    def client
      @client ||= Client.standard
    end

    # @see Client::Standard#call
    # @return [Responses::StandardResponse::Record]
    def standard(options)
      validate_ico_format(options[:ico])
      response = client.call(options)
      fail ArgumentError, "Arguments #{options} are invalid" if response.error?
      response.record
    end

    private

    def validate_ico_format(ico)
      return unless ico.present?
      validator = ::IcoValidator.new(attributes: [:_])
      return if validator.send(:valid_ico?, ico)
      fail ArgumentError, "ICO '#{ico}' is invalid"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ares.rb-0.2.0 lib/ares.rb