module MojoMagick class Font attr_accessor :name, :family, :style, :stretch, :weight, :glyphs def valid? !name.nil? end def initialize(property_hash = {}) property_hash.symbolize_keys! %i[name family style stretch weight glyphs].each do |f| setter = "#{f}=" send(setter, property_hash[f]) end end def self.all ImageMagick::Font.all.map { |font_info| Font.new(font_info) } end end end