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 diskcollage_mark_for_deletion
: To read if field is marked for deletioncollage_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'})