Sha256: 152618fb949adaca0252279e5af938e9c217d4b8301249fe6e82d04efa76c2cb

Contents?: true

Size: 819 Bytes

Versions: 1

Compression:

Stored size: 819 Bytes

Contents

class Reactor::Subscriber < ActiveRecord::Base
  attr_accessible :event
  attr_accessor :message

  def event=(event)
    write_attribute :event, event.to_s
  end

  def fire(data)
    self.message = Reactor::Message.new(data)
    instance_exec &self.class.on_fire
    self
  end

  def delay_amount
    self.class.delay_amount
  end

  class << self
    def on_fire(&block)
      if block
        @fire_block = block
      end
      @fire_block
    end

    def fire(subscriber_id, data)
      Reactor::Subscriber.find(subscriber_id).fire data
    end

    def subscribes_to(name = nil, delay: nil)
      @delay_amount = delay
      #subscribers << name
      #TODO: REMEMBER SUBSCRIBERS so we can define them in code as well as with a row in the DB
    end

    def delay_amount
      @delay_amount
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reactor-0.0.1 lib/reactor/models/subscriber.rb