def subscribe!( publication, *subscribers, &last_subscriber )
      unless self.class.publications.include?( publication )
        raise ArgumentError.new( "#{self.class.name} does not publish #{publication.inspect}" )
      end

      subscribe( publication, *subscribers, &last_subscriber )
    end
def subscribe!( publication, *subscribers, &last_subscriber )
      unless self.class.publications.include?( publication )
        raise ArgumentError.new( "#{self.class.name} does not publish #{publication.inspect}" )
      end

      subscribe( publication, *subscribers, &last_subscriber )
    end
my_collaborator.subscribe :some_publication_name, subscriber_object
my_collaborator.subscribe :some_publication_name, jason,
subscriber_object => :subscriber_method,
another_subscriber => :his_method
my_collaborator.subscribe :some_publication_name, {subscriber_object => :subscriber_method,
another_subscriber => :his_method}
my_collaborator.subscribe :log_event, Rails.logger => :warn
my_collaborator.subscribe :log_event do |options|
 Do something here on the event
Rails.logger.warn options[:message]
end
my_collaborator.subscribe :log_event, lambda { |options|
  Rails.logger.warn options[:message]
}, another_collaborator => :do_something