Rpictogrify
Ruby version of the pictogrify to generate unique pictograms
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.
- Fork it
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- 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.