class Faker::LoremPixel

Constants

SUPPORTED_CATEGORIES

Public Class Methods

image(legacy_size = NOT_GIVEN, legacy_is_gray = NOT_GIVEN, legacy_category = NOT_GIVEN, legacy_number = NOT_GIVEN, legacy_text = NOT_GIVEN, legacy_secure = NOT_GIVEN, size: '300x300', is_gray: false, category: nil, number: nil, text: nil, secure: true) click to toggle source

rubocop:disable Metrics/ParameterLists

# File lib/faker/default/lorem_pixel.rb, line 21
def image(legacy_size = NOT_GIVEN, legacy_is_gray = NOT_GIVEN, legacy_category = NOT_GIVEN, legacy_number = NOT_GIVEN, legacy_text = NOT_GIVEN, legacy_secure = NOT_GIVEN, size: '300x300', is_gray: false, category: nil, number: nil, text: nil, secure: true)
  warn_for_deprecated_arguments do |keywords|
    keywords << :size if legacy_size != NOT_GIVEN
    keywords << :is_gray if legacy_is_gray != NOT_GIVEN
    keywords << :category if legacy_category != NOT_GIVEN
    keywords << :number if legacy_number != NOT_GIVEN
    keywords << :text if legacy_text != NOT_GIVEN
    keywords << :secure if legacy_secure != NOT_GIVEN
  end

  raise ArgumentError, 'Size should be specified in format 300x300' unless size =~ /^[0-9]+x[0-9]+$/
  raise ArgumentError, "Supported categories are #{SUPPORTED_CATEGORIES.join(', ')}" unless category.nil? || SUPPORTED_CATEGORIES.include?(category)
  raise ArgumentError, 'Category required when number is passed' if !number.nil? && category.nil?
  raise ArgumentError, 'Number must be between 1 and 10' unless number.nil? || (1..10).cover?(number)
  raise ArgumentError, 'Category and number must be passed when text is passed' if !text.nil? && number.nil? && category.nil?

  url_parts = secure ? ['https:/'] : ['http:/']
  url_parts << ['lorempixel.com']
  url_parts << 'g' if is_gray
  url_parts += size.split('x')
  url_parts += [category, number, text].compact
  url_parts.join('/')
end