class LetterAvatarSimple
Constants
- VERSION
Public Class Methods
config() { |self| ... }
click to toggle source
# File lib/letter_avatar_simple.rb, line 13 def self.config(&blk) yield(self) end
generate(identity, output: :string, **kwargs)
click to toggle source
# File lib/letter_avatar_simple.rb, line 25 def self.generate(identity, output: :string, **kwargs) if identity.is_a?(String) identity = Identity.from_username(identity) end opts = { palette: kwargs[:palette] || LetterAvatarSimple.palette, color: kwargs[:color] || LetterAvatarSimple.color, size: kwargs[:size] || LetterAvatarSimple.size, pointsize: kwargs[:pointsize] || LetterAvatarSimple.pointsize, font: kwargs[:font] || LetterAvatarSimple.font, weight: kwargs[:weight] || LetterAvatarSimple.weight, fill_color: kwargs[:fill_color] || LetterAvatarSimple.fill_color, annotate_position: kwargs[:annotate_position] || LetterAvatarSimple.annotate_position, } filename = kwargs[:filename] || generate_temp_filename color = opts[:color] || LetterAvatarSimple.palettes.fetch(opts.fetch(:palette)).letter_color(identity) MiniMagick::Tool::Convert.new do |x| x.size "#{opts.fetch(:size)}x#{opts.fetch(:size)}" x << "xc:#{to_rgb(color)}" x.pointsize opts.fetch(:pointsize) x.font opts.fetch(:font) x.weight opts.fetch(:weight) x.fill opts.fetch(:fill_color) x.gravity "Center" x.annotate(opts.fetch(:annotate_position), identity.letters) x << filename end if output == :file File.open(filename, "rb") else StringIO.new(File.binread(filename), "rb").tap do FileUtils.rm_f(filename) end end end
generate_file(*args, **kwargs)
click to toggle source
# File lib/letter_avatar_simple.rb, line 64 def self.generate_file(*args, **kwargs) kwargs[:output] = :file self.generate(*args, **kwargs) end
generate_temp_filename(ext=".png")
click to toggle source
# File lib/letter_avatar_simple.rb, line 74 def self.generate_temp_filename(ext=".png") filename = begin Dir::Tmpname.make_tmpname(["x", ext], nil) rescue NoMethodError require "securerandom" "#{SecureRandom.urlsafe_base64}#{ext}" end File.join(Dir.tmpdir, filename) end
palettes()
click to toggle source
# File lib/letter_avatar_simple.rb, line 17 def self.palettes @palettes end
palettes=(h)
click to toggle source
# File lib/letter_avatar_simple.rb, line 21 def self.palettes=(h) @palettes = h end
to_rgb(color)
click to toggle source
# File lib/letter_avatar_simple.rb, line 69 def self.to_rgb(color) r, g, b = color "rgb(#{r},#{g},#{b})" end