0.01
No release in over a year
Ruby version of the pictogrify to generate unique pictograms
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0

Runtime

>= 1.4.4
>= 0.0.1
 Project Readme

Gem Version Build Status

Rpictogrify

Ruby version of the pictogrify to generate unique pictograms

Avatar

Installation

Add rpictogrify to application's Gemfile:

gem 'rpictogrify'

And then execute:

$ bundle install

Or install it yourself as:

$ gem install rpictogrify

Configuration

Rpictogrify.configure do
  # default theme, one of these themes: avataars_female, avataars_male, male_flat, monsters. default is :monsters
  self.theme      = :monsters
  # pictogram directory. default is 'public/system'
  self.base_path  = 'public/system'
  # register a custome theme with assets. assets see assets/themes
  self.register_theme :custom, assets_path: 'vendor/assets/rpictogrify/themes/custom'
end

Usage

Rpictogrify.generate 'jim.cheung'                          #=> 'public/system/rpictogrify/1/monsters/1313467160.svg'
Rpictogrify.generate 'jim.cheung', theme: :avataars_male   #=> 'public/system/rpictogrify/1/avataars_male/1313467160.svg'
Rpictogrify.generate 'jim.cheung', theme: :custom          #=> 'public/system/rpictogrify/1/custom/1313467160.svg', use custom theme

Controller / View

There is a helper for this, you need to include Rpictogrify::Helper in your controller or helper. e.g. ApplicationHelper

include Rpictogrify::Helper

Then you can use the following methods in views.

rpictogrify_for('jim', theme: :monsters)          #=> 'public/system/rpictogrify/1/monsters/1313467160.svg'
rpictogrify_url('jim')                            #=> '/system/rpictogrify/1/monsters/1313467160.svg'
rpictogrify_tag('jim', html: {class: :avatar})    #=> '<img class="avatar" src="/system/rpictogrify/1/monsters/1313467160.svg" alt="jim" />'
rpictogrify_url_for('public/system/rpictogrify/1/monsters/1313467160.svg') #=> '/system/rpictogrify/1/monsters/1313467160.svg'

Model

You can include Rpictogrify::Extension in your model class. e.g. User model

class User
  include Rpictogrify::Extension

  rpictogrify_on :username, theme: -> { gender == :male ? :avataars_male : :avataars_female }
  # rpictogrify_on :username, theme: :avataars_male
end

Then you have the following methods in user

@user.rpictogrify_path      #=> 'public/system/rpictogrify/1/monsters/1313467160.svg'
@user.rpictogrify_url       #=> '/system/rpictogrify/1/monsters/1313467160.svg'

Contributing

Bug report or pull request are welcome.

  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)

Please write unit test with your code if necessary.

License

The gem is available as open source under the terms of the MIT License.