Name Last Update
lib Loading commit data...
.gitignore Loading commit data...
Gemfile Loading commit data...
LICENSE.txt Loading commit data...
README.md Loading commit data...
Rakefile Loading commit data...
Roboto-Medium Loading commit data...
letter_avatar.gemspec Loading commit data...

README.md

LetterAvatar

Gem for creating letter avatar from user's name.

Code extracted from discourse source (thanks guys!) - I needed this functionality in three projects, so here's the gem! :-)

Code Climate

Examples

Google's Inbox Palette

a b c d e f g h j l m n p s

Installation

System requirements

$ sudo apt-get install -y imagemagick

Mac OS X

$ brew install imagemagick ghostscript

Add this line to your application's Gemfile:

gem 'letter_avatar'

And then execute:

$ bundle

Or install it yourself as:

$ gem install letter_avatar

Configuration

LetterAvatar.setup do |config|
  config.cache_base_path = 'public/system/lets' # default is 'public/system'
  config.colors_palette = :iwanthue             # default is :google
end

Usage

LetterAvatar.generate 'ksz2k', 200
=> "public/system/letter_avatars/2/K/87_178_230/200.png"

There's also helper for this. To use it, you need:

  • in your helper (eg. ApplicationHelper) or controller:
  include LetterAvatar::AvatarHelper
  • and in your view:
  letter_avatar_for('ksz2k', 200)

Way to support non [a-z0-9] charsets

class User
  def username_for_avatar
    # Translate chinese hanzi to pinyin
    # https://github.com/flyerhzm/chinese_pinyin
    Pinyin.t(self.username)
  end
end

Then you can get right avatar now:

letter_avatar_for(user.username_for_avatar, 200)

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request