Sha256: 74aab86847368a1222d009d7613b6d73ed4c0b8fefd4215f9e628f231faad935
Contents?: true
Size: 1.99 KB
Versions: 59
Compression:
Stored size: 1.99 KB
Contents
# encoding: utf-8 require 'active_record' require 'carrierwave/validations/active_model' module CarrierWave module ActiveRecord include CarrierWave::Mount ## # See +CarrierWave::Mount#mount_uploader+ for documentation # def mount_uploader(column, uploader=nil, options={}, &block) super alias_method :read_uploader, :read_attribute alias_method :write_uploader, :write_attribute public :read_uploader public :write_uploader include CarrierWave::Validations::ActiveModel validates_integrity_of column if uploader_option(column.to_sym, :validate_integrity) validates_processing_of column if uploader_option(column.to_sym, :validate_processing) after_save :"store_#{column}!" before_save :"write_#{column}_identifier" after_destroy :"remove_#{column}!" before_update :"store_previous_model_for_#{column}" after_save :"remove_previously_stored_#{column}" class_eval <<-RUBY, __FILE__, __LINE__+1 def #{column}=(new_file) column = _mounter(:#{column}).serialization_column send(:"\#{column}_will_change!") super end def remote_#{column}_url=(url) column = _mounter(:#{column}).serialization_column send(:"\#{column}_will_change!") super end def serializable_hash(options=nil) hash = {} except = options && options[:except] && Array.wrap(options[:except]).map(&:to_s) only = options && options[:only] && Array.wrap(options[:only]).map(&:to_s) self.class.uploaders.each do |column, uploader| if (!only && !except) || (only && only.include?(column.to_s)) || (except && !except.include?(column.to_s)) hash[column.to_s] = _mounter(:#{column}).uploader.serializable_hash end end super(options).merge(hash) end RUBY end end # ActiveRecord end # CarrierWave ActiveRecord::Base.extend CarrierWave::ActiveRecord
Version data entries
59 entries across 54 versions & 4 rubygems