Module: Gumdrop::Callbacks

Included in:
Site
Defined in:
lib/gumdrop/callbacks.rb

Instance Method Summary collapse

Instance Method Details

#callback(*callback_names) ⇒ Object Also known as: callbacks, define_callback, define_callbacks

For defining callbacks



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/gumdrop/callbacks.rb', line 5

def callback(*callback_names)
  callback_names.each do |name|
    class_eval <<-EOF
      def #{name}(*args, &block)
        if block
          @_#{name} = [] if @_#{name}.nil?
          @_#{name} << block
        elsif @_#{name} and !@_#{name}.nil?
          @_#{name}.each do |cb|
            cb.call(*args)
          end
        end
      end
      def clear_#{name}()
        @_#{name} = nil
      end
    EOF
  end
end