Sha256: 182b6baffe191bec26935f64fb0d87bdc3bc0d0dd79d1bfc31d9a28b3c8a16c3

Contents?: true

Size: 624 Bytes

Versions: 3

Compression:

Stored size: 624 Bytes

Contents

module WipeOut
  module Plugin
    def self.included(base)
      base.extend ClassMethods
    end

    module ClassMethods
      def before(*names, &block)
        callback(*names.map { |name| "before_#{name}" }, &block)
      end

      def after(*names, &block)
        callback(*names.map { |name| "after_#{name}" }, &block)
      end

      def callback(*names, &block)
        names.each do |name|
          add_callback(Callback.new(name, block))
        end
      end

      def callbacks
        @callbacks ||= []
      end

      def add_callback(callback)
        callbacks << callback
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
wipe_out-1.1.0 lib/wipe_out/plugin.rb
wipe_out-1.0.1 lib/wipe_out/plugin.rb
wipe_out-1.0.0 lib/wipe_out/plugin.rb