Sha256: dbb005659f416b87fce498bedd125574d88609ea9f877fea353d74259bf612ef

Contents?: true

Size: 527 Bytes

Versions: 12

Compression:

Stored size: 527 Bytes

Contents

module ActiveAdmin

  class EventDispatcher
    def initialize
      @events = {}
    end

    def clear_all_subscribers!
      @events = {}
    end

    def subscribe(event, &block)
      @events[event] ||= []
      @events[event] << block
    end

    def subscribers(event)
      @events[event] || []
    end

    def dispatch(event, *args)
      subscribers(event).each do |subscriber|
        subscriber.call(*args)
      end
    end
  end

  # ActiveAdmin::Event is set to a dispatcher
  Event = EventDispatcher.new

end

Version data entries

12 entries across 12 versions & 4 rubygems

Version Path
andrewroth_activeadmin-0.3.4 lib/active_admin/event.rb
activeadmin-0.3.4 lib/active_admin/event.rb
activeadmin-0.3.3 lib/active_admin/event.rb
activeadmin-0.3.2 lib/active_admin/event.rb
activeadmin-0.3.1 lib/active_admin/event.rb
activeadmin-0.3.0 lib/active_admin/event.rb
nsm-activeadmin-0.2.2 lib/active_admin/event.rb
saulolso-activeadmin-0.2.2.1 lib/active_admin/event.rb
saulolso-activeadmin-0.2.2 lib/active_admin/event.rb
activeadmin-0.2.2 lib/active_admin/event.rb
activeadmin-0.2.1 lib/active_admin/event.rb
activeadmin-0.2.0 lib/active_admin/event.rb