# config/initializers/dragonfly.rb
require 'dragonfly'
# ConfigureDragonfly.app.configure do plugin :imagemagick
protect_from_dos_attacks true secret "203abc7fb6b4020efec5da25c5026525a7cfd56b3f5b5420bd54e3defd6bc10e"
url_format "/media/:job/:name"
end
# LoggerDragonfly.logger = Rails.logger
# Mount as middlewareRails.application.middleware.use Dragonfly::Middleware
# Add model functionalityif defined?(ActiveRecord::Base) ActiveRecord::Base.extend Dragonfly::Model ActiveRecord::Base.extend Dragonfly::Model::Validationsend
#config/initializers/dragonfly_s3.rb
if Rails.env.development? bucket_name = "whatever"else bucket_name = "whatever2"end
Dragonfly.app.configure do datastore :s3, bucket_name: bucket_name, access_key_id: ENV['S3_CAMPS_ACCESS_KEY_ID'], secret_access_key: ENV['S3_CAMPS_SECRET_ACCESS_KEY']end
class CouponCode < ActiveRecord::Base
extend Dragonfly::Model dragonfly_accessor :image
def generate_share_image # Read coupon.svg file file = File.read('app/assets/images/coupons/coupon.svg')
#create custom coupon code using last name of parent coupon_code = name
# Add custom coupon code to coupon.svg information file = file.gsub('CouponCode', coupon_code)
# create new file and add edited info File.open('tmp/coupon.svg', 'w'){ |f| f.write(file) } new_file = File.open('tmp/coupon.svg')
#save to s3 result = Dragonfly.app.store(new_file, {}, path: "images/#{coupon_code}.svg", headers: {'x-amz-acl' => 'public-read-write'})
update_attribute :image_uid, result
File.delete(new_file)
result endend