Sha256: 2a30a686e9896dd4750e356bedea70cfe8ce5a75aa2dc83f4b985d61b6d471da

Contents?: true

Size: 698 Bytes

Versions: 3

Compression:

Stored size: 698 Bytes

Contents

module Clockwork

  module DatabaseEvents

    class Synchronizer

      def self.setup(options={}, &block_to_perform_on_event_trigger)
        model_class = options.fetch(:model) { raise KeyError, ":model must be set to the model class" }
        every = options.fetch(:every) { raise KeyError, ":every must be set to the database sync frequency" }

        event_store = EventStore.new(block_to_perform_on_event_trigger)

        # create event that syncs clockwork events with events coming from database-backed model
        Clockwork.manager.every every, "sync_database_events_for_model_#{model_class}" do
          event_store.update(model_class.all)
        end
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
clockwork-3.0.2 lib/clockwork/database_events/synchronizer.rb
clockwork-3.0.1 lib/clockwork/database_events/synchronizer.rb
clockwork-3.0.0 lib/clockwork/database_events/synchronizer.rb