Sha256: f368a5ce76cd815476acaa5b54140c6752a0026f57265b3d03f20cdfea6afbac

Contents?: true

Size: 790 Bytes

Versions: 1

Compression:

Stored size: 790 Bytes

Contents

module ActiveStorage::Attached::Macros
  def has_one_attached(name, dependent: :purge_later)
    define_method(name) do
      instance_variable_get("@active_storage_attached_#{name}") || 
        instance_variable_set("@active_storage_attached_#{name}", ActiveStorage::Attached::One.new(name, self))
    end

    if dependent == :purge_later
      before_destroy { public_send(name).purge_later }
    end
  end

  def has_many_attached(name, dependent: :purge_later)
    define_method(name) do
      instance_variable_get("@active_storage_attached_#{name}") || 
        instance_variable_set("@active_storage_attached_#{name}", ActiveStorage::Attached::Many.new(name, self))
    end

    if dependent == :purge_later
      before_destroy { public_send(name).purge_later }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
activestorage-0.1 lib/active_storage/attached/macros.rb