# frozen_string_literal: true

module Faker
  class Avatar < Base
    class << self
      SUPPORTED_FORMATS = %w[png jpg bmp].freeze

      def image(slug = nil, size = '300x300', format = 'png', set = 'set1', bgset = nil)
        raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
        raise ArgumentError, "Supported formats are #{SUPPORTED_FORMATS.join(', ')}" unless SUPPORTED_FORMATS.include?(format)

        slug ||= Faker::Lorem.words.join
        bgset_query = "&bgset=#{bgset}" if bgset
        "https://robohash.org/#{slug}.#{format}?size=#{size}&set=#{set}#{bgset_query}"
      end
    end
  end
end
