Sha256: aaa1bbce2b7105a11932bc7cefbbe15011fbf55545ede8617b6e1730ddb2e8ec

Contents?: true

Size: 692 Bytes

Versions: 20

Compression:

Stored size: 692 Bytes

Contents

module Einhorn::Event
  module Persistent
    @@persistent = {}

    def self.included(other)
      @@persistent[other.to_s] = other
    end

    def self.from_state(state)
      klass_name = state[:class]
      if klass = @@persistent[klass_name]
        klass.from_state(state)
      else
        Einhorn.log_error("Unrecognized persistent descriptor class #{klass_name.inspect}. Ignoring. This most likely indicates that your Einhorn version has upgraded. Everything should still be working, but it may be worth a restart.", :upgrade)
        nil
      end
    end

    def self.persistent?(descriptor)
      @@persistent.values.any? {|klass| descriptor.kind_of?(klass)}
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
einhorn-0.8.2 lib/einhorn/event/persistent.rb
einhorn-0.7.4 lib/einhorn/event/persistent.rb
einhorn-0.7.3 lib/einhorn/event/persistent.rb
einhorn-0.7.2 lib/einhorn/event/persistent.rb
einhorn-0.7.1 lib/einhorn/event/persistent.rb
einhorn-0.7.0 lib/einhorn/event/persistent.rb
einhorn-0.6.5 lib/einhorn/event/persistent.rb
einhorn-0.6.4 lib/einhorn/event/persistent.rb
einhorn-0.6.3 lib/einhorn/event/persistent.rb
einhorn-0.6.2 lib/einhorn/event/persistent.rb
einhorn-0.6.1 lib/einhorn/event/persistent.rb
einhorn-0.6.0 lib/einhorn/event/persistent.rb
einhorn-0.5.7 lib/einhorn/event/persistent.rb
einhorn-0.5.6 lib/einhorn/event/persistent.rb
einhorn-0.5.5 lib/einhorn/event/persistent.rb
einhorn-0.5.4 lib/einhorn/event/persistent.rb
einhorn-0.5.3 lib/einhorn/event/persistent.rb
einhorn-0.5.2 lib/einhorn/event/persistent.rb
einhorn-0.5.1 lib/einhorn/event/persistent.rb
einhorn-0.5.0 lib/einhorn/event/persistent.rb