Photofy
A simple ruby gem providing photo fields to rails model
Installation
Add this line to your application's Gemfile:
gem 'photofy'
And then execute:
$ bundle
Or install it yourself as:
$ gem install photofy
Usage
Add photo field(s) to model by adding lines like
- 
photofy(:collage)- 
collage: Getter,
- 
collage?: Returns true if assignment is having value other than nil else false,
- 
collage =: Setter. Acceptable inputs are file upload(ActionDispatch::Http::UploadedFile), file and String(format validation is ignored),
- 
collage_path: File path of assignment,
- 
collage_s3publicpath: Public aws s3 url provider if (aws s3 is used as storage)
- collage_persisted?: Gives true if provided file/data is stored on disk,
- collage_store!: To store provided file/data on disk,
- collage_destroy!: To destroy stored file/data from disk
- collage_mark_for_deletion: To read if field is marked for deletion
- collage_mark_for_deletion = (true | 1): To mark delete which will be carried on after save
 
- 
- 
photofy(:collage_sec, {parent_photo_field: :collage})- Automatically creates a collage_sec photo field from :collage parent field
 
- 
photofy(:stamp, {image_processor: Proc.new { |img| img.scale(25, 25) }})- Process image to scale(refer imagemagick/rmagick for other image manipulations) of 25x25px when image is saved.
 
- 
after_photofy :collage, :post_card, Proc.new { |img| img.scale(450, 200) }- Creates 'post_card' photo field by taking source from 'collage' and scaling it to 450x200px.
 
Enables aws s3 as backend storage.
- photofy_s3_storage({access_key_id: 'xxxxxxxx',secret_access_key: 'xxxxxxxx'}, {bucket: 'test_bucket'})