Default Avatar Generator
A Ruby gem that generates beautiful default avatars for user accounts when no custom avatar is provided.
Examples
Installation
This gem shells out to the rsvg-convert CLI (from librsvg2-bin on Debian/Ubuntu,
librsvg on Homebrew) to rasterize the generated SVG, and uses ruby-vips
(which requires libvips) to convert that to JPEG. Both must be installed on the host.
Add this line to your application's Gemfile:
gem 'default-avatar-generator'And then execute:
$ bundle install
Or install it yourself as:
$ gem install default-avatar-generator
Usage
require 'default_avatar_generator'
# Generate an avatar for a user
generator = DefaultAvatarGenerator::Generator.new(text: { character: "A" })
svg_avatar = generator.generate
jpeg_avatar = DefaultAvatarGenerator::ImageConverter.svg_to_jpeg(svg_avatar)
# Save the avatar to a file (if you need to)Note: ImageConverter.svg_to_jpeg rasterizes via rsvg-convert rather than vips's own SVG
loader. Apps that load Rails Active Storage call Vips.block_untrusted(true) on boot, which
disables vips's svgload/svgload_buffer process-wide (they're flagged untrusted since they
rely on rsvg's unfuzzed parser) — that would break this gem even for the SVGs it generates
itself. Going through rsvg-convert avoids that entirely.
Development
After checking out the repo:
bundle install
./viewer
This will bring up a development server on http://localhost:9292 where you can reload the page and keep generating new avatars.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
License
The gem is available as open source under the terms of the MIT License.