Class: Faker::Placeholdit
Constant Summary collapse
- SUPPORTED_FORMATS =
%w[png jpg gif jpeg].freeze
Constants inherited from Base
Base::LLetters, Base::Letters, Base::NOT_GIVEN, Base::Numbers, Base::ULetters
Class Method Summary collapse
-
.image(size: '300x300', format: 'png', background_color: nil, text_color: nil, text: nil) ⇒ String
Produces a random placeholder image from via.placeholder.com.
Methods inherited from Base
bothify, disable_enforce_available_locales, fetch, fetch_all, flexible, generate, letterify, method_missing, numerify, parse, rand, rand_in_range, regexify, resolve, respond_to_missing?, sample, shuffle, shuffle!, translate, unique, with_locale
Class Method Details
.image(size: '300x300', format: 'png', background_color: nil, text_color: nil, text: nil) ⇒ String
Produces a random placeholder image from via.placeholder.com.
Faker::Placeholdit.image #=> "https://via.placeholder.com/300x300.png"
Faker::Placeholdit.image(size: '50x50') #=> "https://via.placeholder.com/50x50.png"
Faker::Placeholdit.image(size: '50x50', format: 'jpg') #=> "https://via.placeholder.com/50x50.jpg"
Faker::Placeholdit.image(size: '50x50', format: 'gif', background_color: 'ffffff') #=> "https://via.placeholder.com/50x50.gif/ffffff"
Faker::Placeholdit.image(size: '50x50', format: 'jpeg', background_color: :random) #=> "https://via.placeholder.com/50x50.jpeg/39eba7"
Faker::Placeholdit.image(size: '50x50', format: 'jpeg', background_color: 'ffffff', text_color: '000') #=> "https://via.placeholder.com/50x50.jpeg/ffffff/000"
Faker::Placeholdit.image(size: '50x50', format: 'jpg', background_color: 'ffffff', text_color: '000', text: 'Some Custom Text') #=> "https://via.placeholder.com/50x50.jpg/ffffff/000?text=Some Custom Text"
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/faker/default/placeholdit.rb', line 29 def image(size: '300x300', format: 'png', background_color: nil, text_color: nil, text: nil) 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 |