Sha256: 163ffb8f2d60d55c8ae25e2a4c477f9d709b6c3d152242885424a353b5d18759

Contents?: true

Size: 474 Bytes

Versions: 6

Compression:

Stored size: 474 Bytes

Contents

module Chicanery
  module Handlers
    %w{run started succeeded failed broken fixed commit up down crashed recovered}.each do |status|
      class_eval <<-EOF
        def when_#{status} &block
          #{status}_handlers << block
        end

        def #{status}_handlers
          @#{status}_handlers ||= []
        end

        def notify_#{status}_handlers *args
          #{status}_handlers.each {|handler| handler.call *args }
        end
      EOF
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
chicanery-0.1.7 lib/chicanery/handlers.rb
chicanery-0.1.6 lib/chicanery/handlers.rb
chicanery-0.1.5 lib/chicanery/handlers.rb
chicanery-0.1.4 lib/chicanery/handlers.rb
chicanery-0.1.3 lib/chicanery/handlers.rb
chicanery-0.1.1 lib/chicanery/handlers.rb