class Faker::Placeholdit

def generate_color

def generate_color
  format('%06x', (rand * 0xffffff))
end

def image(legacy_size = NOT_GIVEN, legacy_format = NOT_GIVEN, legacy_background_color = NOT_GIVEN, legacy_text_color = NOT_GIVEN, legacy_text = NOT_GIVEN, size: '300x300', format: 'png', background_color: nil, text_color: nil, text: nil)

Returns:
  • (String) -

Parameters:
  • text (String) -- Specifies a custom text to be used.
  • text_color (String, Symbol) -- Specifies the text color, either in hexadecimal format (without #) or as :random.
  • background_color (String, Symbol) -- Specifies the background color, either in hexadecimal format (without #) or as :random.
  • format (String) -- Specifies the image's extension.
  • size (String) -- Specifies the image's size, dimensions separated by 'x'.
def image(legacy_size = NOT_GIVEN, legacy_format = NOT_GIVEN, legacy_background_color = NOT_GIVEN, legacy_text_color = NOT_GIVEN, legacy_text = NOT_GIVEN, size: '300x300', format: 'png', background_color: nil, text_color: nil, text: nil)
  warn_for_deprecated_arguments do |keywords|
    keywords << :size if legacy_size != NOT_GIVEN
    keywords << :format if legacy_format != NOT_GIVEN
    keywords << :background_color if legacy_background_color != NOT_GIVEN
    keywords << :text_color if legacy_text_color != NOT_GIVEN
    keywords << :text if legacy_text != NOT_GIVEN
  end
  background_color = generate_color if background_color == :random
  text_color = generate_color if text_color == :random
  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)
  raise ArgumentError, "background_color must be a hex value without '#'" unless background_color.nil? || background_color =~ /((?:^\h{3}$)|(?:^\h{6}$)){1}(?!.*\H)/
  raise ArgumentError, "text_color must be a hex value without '#'" unless text_color.nil? || text_color =~ /((?:^\h{3}$)|(?:^\h{6}$)){1}(?!.*\H)/
  image_url = "https://via.placeholder.com/#{size}.#{format}"
  image_url += "/#{background_color}" if background_color
  image_url += "/#{text_color}" if text_color
  image_url += "?text=#{text}" if text
  image_url
end