Sha256: 63ddf4106d4d0b411deacdaba9287d6a3360309a2cd2e1877eccee3f7fb99544

Contents?: true

Size: 773 Bytes

Versions: 5

Compression:

Stored size: 773 Bytes

Contents

module Clockwork

  module DatabaseEvents

    class Registry

      def initialize
        @events = Hash.new []
      end

      def register(event, model)
        @events[model.id] = @events[model.id] + [event]
      end

      def unregister(model)
        unregister_by_id(model.id)
      end

      def unregister_by_id(id)
        @events[id].each{|e| Clockwork.manager.unregister(e) }
        @events.delete(id)
      end

      def unregister_all_except(ids)
        (@events.keys - ids).each{|id| unregister_by_id(id) }
      end

      # all events of same id will have same frequency/name, just different ats
      def event_for(model)
        events_for(model).first
      end

      def events_for(model)
        @events[model.id]
      end
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
clockwork-1.2.1 lib/clockwork/database_events/registry.rb
clockwork-1.2.0 lib/clockwork/database_events/registry.rb
clockwork-1.1.0 lib/clockwork/database_events/registry.rb
clockwork-1.0.2 lib/clockwork/database_events/registry.rb
clockwork-1.0.0 lib/clockwork/database_events/registry.rb