Sha256: 70ea269c168fc28b6db5f429b11681e4a7d3fa17be945695382407b2ead3c145

Contents?: true

Size: 1.1 KB

Versions: 3

Compression:

Stored size: 1.1 KB

Contents

# encoding: utf-8

require 'sequel'

module CarrierWave
  module Sequel
    include CarrierWave::Mount

    def mount_uploader(column, uploader)
      raise "You need to use Sequel 3.0 or higher. Please upgrade." unless ::Sequel::Model.respond_to?(:plugin)
      super

      alias_method :read_uploader, :[]
      alias_method :write_uploader, :[]=

      include CarrierWave::Sequel::Hooks
      include CarrierWave::Sequel::Validations
    end

  end # Sequel
end # CarrierWave

# Instance hook methods for the Sequel 3.x
module CarrierWave::Sequel::Hooks
  def after_save
    return false if super == false
    self.class.uploaders.each_key {|column| self.send("store_#{column}!") }
  end

  def before_save
    return false if super == false
    self.class.uploaders.each_key {|column| self.send("write_#{column}_identifier") }
  end

  def before_destroy
    return false if super == false
    self.class.uploaders.each_key {|column| self.send("remove_#{column}!") }
  end
end

# Instance validation methods for the Sequel 3.x
module CarrierWave::Sequel::Validations
end

Sequel::Model.send(:extend, CarrierWave::Sequel)

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
carrierwave-0.5.4 lib/carrierwave/orm/sequel.rb
carrierwave-0.5.3 lib/carrierwave/orm/sequel.rb
carrierwave-0.5.2 lib/carrierwave/orm/sequel.rb