Class: Faker::LoremPixel

Inherits:
Base
  • Object
show all
Defined in:
lib/faker/lorem_pixel.rb

Constant Summary collapse

SUPPORTED_CATEGORIES =
%w[abstract
animals
business
cats
city
food
nightlife
fashion
people
nature
sports
technics
transport].freeze

Constants inherited from Base

Base::Letters, Base::Numbers, Base::ULetters

Class Method Summary collapse

Methods inherited from Base

bothify, fetch, fetch_all, flexible, letterify, method_missing, numerify, parse, rand, rand_in_range, regexify, respond_to_missing?, sample, shuffle, translate, unique, with_locale

Class Method Details

.image(size = '300x300', is_gray = false, category = nil, number = nil, text = nil, secure: true) ⇒ Object

rubocop:disable Metrics/ParameterLists

Raises:

  • (ArgumentError)


19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/faker/lorem_pixel.rb', line 19

def image(size = '300x300', is_gray = false, category = nil, number = nil, text = nil, secure: true)
  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