class CarrierWave::FuzzyStorage::ActiveRecordSupport

Public Class Methods

new(default_storage, *mounted_fields) click to toggle source
# File lib/carrierwave/fuzzy_storage/active_record_support.rb, line 6
def initialize(default_storage, *mounted_fields)
  @default_storage = default_storage
  @mounted_fields = mounted_fields.flatten.map(&:to_sym)
end

Public Instance Methods

included(base) click to toggle source
Calls superclass method
# File lib/carrierwave/fuzzy_storage/active_record_support.rb, line 11
def included(base)
  storage = @default_storage
  mounted_fields = @mounted_fields

  mounted_fields.each do |field|
    base.send(:define_method, "#{field}_storage") do
      super() || storage
    end
  end

  base.before_create do
    mounted_fields.each do |field|
      public_send("#{field}_storage=", storage)
    end
  end
end