Sha256: f9f5c9da7bbf2769fe6595acd4c15f57ed3e743788cb88928873d66fcbc0b8d3

Contents?: true

Size: 1.08 KB

Versions: 36

Compression:

Stored size: 1.08 KB

Contents

# encoding: utf-8

module CarrierWave
  module Uploader
    module Callbacks

      setup do
        extlib_inheritable_accessor :_before_callbacks, :_after_callbacks
      end

      def with_callbacks(kind, *args)
        self.class._before_callbacks_for(kind).each { |callback| self.send(callback, *args) }
        yield
        self.class._after_callbacks_for(kind).each { |callback| self.send(callback, *args) }
      end

      module ClassMethods
        
        def _before_callbacks_for(kind) #:nodoc:
          self._before_callbacks ||= {}
          self._before_callbacks[kind] ||= []
          self._before_callbacks[kind]
        end

        def _after_callbacks_for(kind) #:nodoc:
          self._after_callbacks ||= {}
          self._after_callbacks[kind] ||= []
          self._after_callbacks[kind]
        end

        def before(kind, callback)
          _before_callbacks_for(kind) << callback
        end

        def after(kind, callback)
          _after_callbacks_for(kind) << callback
        end
      end # ClassMethods

    end # Callbacks
  end # Uploader
end # CarrierWave

Version data entries

36 entries across 36 versions & 7 rubygems

Version Path
andrewtimberlake-carrierwave-0.3.2.1 lib/carrierwave/uploader/callbacks.rb
durran-carrierwave-0.3.2.3 lib/carrierwave/uploader/callbacks.rb
jnicklas-carrierwave-0.3.2.1 lib/carrierwave/uploader/callbacks.rb
jnicklas-carrierwave-0.3.2 lib/carrierwave/uploader/callbacks.rb
jnicklas-carrierwave-0.3.3 lib/carrierwave/uploader/callbacks.rb
thorsson_carrierwave-0.4.12 lib/carrierwave/uploader/callbacks.rb
thorsson_carrierwave-0.4.11 lib/carrierwave/uploader/callbacks.rb
thorsson_carrierwave-0.4.10 lib/carrierwave/uploader/callbacks.rb
thorsson_carrierwave-0.4.9 lib/carrierwave/uploader/callbacks.rb
thorsson_carrierwave-0.4.8 lib/carrierwave/uploader/callbacks.rb
thorsson_carrierwave-0.4.6 lib/carrierwave/uploader/callbacks.rb
thorsson_carrierwave-0.4.5 lib/carrierwave/uploader/callbacks.rb
carrierwave-0.4.10 lib/carrierwave/uploader/callbacks.rb
carrierwave-0.4.9 lib/carrierwave/uploader/callbacks.rb
carrierwave-0.4.8 lib/carrierwave/uploader/callbacks.rb
carrierwave-0.4.7 lib/carrierwave/uploader/callbacks.rb
carrierwave-0.4.6 lib/carrierwave/uploader/callbacks.rb
samlown-carrierwave-0.4.5 lib/carrierwave/uploader/callbacks.rb
dsturnbull-carrierwave-0.4.9 lib/carrierwave/uploader/callbacks.rb
dsturnbull-carrierwave-0.4.8 lib/carrierwave/uploader/callbacks.rb