class HasPlaceholderImage::ImageGenerator

Attributes

canvas[R]
draw[R]
file[R]
options[R]
text[R]

Public Class Methods

new(text, **params) click to toggle source
# File lib/has_placeholder_image/image_generator.rb, line 9
def initialize(text, **params)
  @options = params
  @text = text
  return if exist?

  generate_canvas
  generate_draw
  generate_result
end

Private Instance Methods

exist?() click to toggle source
# File lib/has_placeholder_image/image_generator.rb, line 21
def exist?
  base_folder = ::Rails.root.join(@options[:output_path])
  size_folder = base_folder.join("#{@options[:height]}x#{@options[:width]}")
  font_folder = size_folder.join((@options[:font_size]).to_s)
  file_name = "bg_#{@options[:background_color]}-cl_#{@options[:font_color]}-#{@text}.png"
  @file = font_folder.join(file_name)

  File.exist?(@file)
end
generate_canvas() click to toggle source
# File lib/has_placeholder_image/image_generator.rb, line 31
def generate_canvas
  @canvas = ::Magick::Image.new(@options[:height], @options[:width])
  @canvas.color_reset!(@options[:background_color])
end
generate_draw() click to toggle source
# File lib/has_placeholder_image/image_generator.rb, line 36
def generate_draw
  @draw = ::Magick::Draw.new
  @draw.pointsize = @options[:font_size]
  @draw.fill = @options[:font_color]
  @draw.gravity = ::Magick::CenterGravity
  @draw.annotate(@canvas, 0, 0, 0, 0, @text)
end
generate_result() click to toggle source
# File lib/has_placeholder_image/image_generator.rb, line 44
def generate_result
  FileUtils.mkdir_p(File.dirname(@file))
  @canvas.write(@file)
end