Sha256: 4ec26d152ccdb2deb008ecbd4a7a46050a93b9d540509630fc7a645a8a0bd800
Contents?: true
Size: 996 Bytes
Versions: 2
Compression:
Stored size: 996 Bytes
Contents
module Uploadcare module Rails module ActiveRecord def is_uploadcare_file attribute, options = {} options.symbolize_keys! opts = { autostore: true }.update options define_method "#{attribute}" do return nil unless attributes[attribute.to_s].present? if instance_variable_defined?("@#{attribute}_cached") instance_variable_get("@#{attribute}_cached") else file_data = ::Rails.application.config.uploadcare.api.file(attributes[attribute.to_s]) instance_variable_set("@#{attribute}_cached", file_data) file_data end end if opts[:autostore] after_create "store_#{attribute}" define_method "store_#{attribute}" do if send(attribute).present? send(attribute).store end end end end end end end ActiveRecord::Base.extend Uploadcare::Rails::ActiveRecord
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
uploadcare-rails-0.3 | lib/uploadcare/rails/active_record.rb |
uploadcare-rails-0.2.2 | lib/uploadcare/rails/active_record.rb |