Sha256: dfa34665d8e7d0dabb52c130a5aaac35b0fe999dc599b2e3832dc390776b9858

Contents?: true

Size: 1.14 KB

Versions: 5

Compression:

Stored size: 1.14 KB

Contents

module Ethon
  module Easies

    # This module contains the logic for the response callbacks.
    # The on_complete callback is the only one at the moment.
    #
    # You can set multiple callbacks, which are then executed
    # in the same order.
    #
    #   easy.on_complete { p 1 }
    #   easy.on_complete { p 2 }
    #   easy.complete
    #   #=> 1
    #   #=> 2
    #
    # You can clear the callbacks:
    #
    #   easy.on_complete { p 1 }
    #   easy.on_complete { p 2 }
    #   easy.on_complete.clear
    #   easy.on_complete
    #   #=> []
    module ResponseCallbacks

      # Set on_complete callback.
      #
      # @example Set on_complete.
      #   request.on_complete { p "yay" }
      #
      # @param [ Block ] block The block to execute.
      def on_complete(&block)
        @on_complete ||= []
        @on_complete << block if block_given?
        @on_complete
      end

      # Execute on_complete callbacks.
      #
      # @example Execute on_completes.
      #   request.complete
      def complete
        if defined?(@on_complete)
          @on_complete.map{ |callback| callback.call(self) }
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ethon-0.4.2 lib/ethon/easies/response_callbacks.rb
ethon-0.4.1 lib/ethon/easies/response_callbacks.rb
ethon-0.4.0 lib/ethon/easies/response_callbacks.rb
ethon-0.3.0 lib/ethon/easies/response_callbacks.rb
ethon-0.2.0 lib/ethon/easies/response_callbacks.rb