Module: ActivityStream::Actor

Defined in:
lib/activity_stream/actor.rb

Overview

Examples:

Definition

class User < ActiveRecord::Base

  include ActivityStream::Actor

  activity_stream(:friends, :actors => :friend_actors)

  def friend_actors
    friend_ids.map{|id| [User, id]}
  end

  def friend_ids
    # get friend ids
  end

end

Usage

@user.activity_stream(:friends) # => <ActivityStream::Stream>

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/activity_stream/actor.rb', line 24

def self.included(base)
  base.extend(ClassMethods)
  base.class_eval do
    has_many :activities, :as => :actor
    activity_stream(:default, :actors => :followed_actors)
    activity_stream(:self, :actors => :self)
  end
end

Instance Method Details

#activity_stream(name = :default) ⇒ Object

Creates and returns an ActivityStream::Stream for the predefined list of actors.

Parameters:

  • name (Symbol) (defaults to: :default)

    The key of a defined activity stream



43
44
45
# File 'lib/activity_stream/actor.rb', line 43

def activity_stream(name = :default)
  ActivityStream::Stream.new(name, self, self.class.defined_streams[name])
end

#followed_actorsObject

Override this to change the default actors



47
48
49
# File 'lib/activity_stream/actor.rb', line 47

def followed_actors
  self.class.all.map{|actor| [actor.class, actor.id]}
end

#publish_activity(name, metadata = {}) ⇒ Object

Parameters:

  • name (Symbol)

    An activity identifer defined by Activity.define



34
35
36
37
38
# File 'lib/activity_stream/actor.rb', line 34

def publish_activity(name,  = {})
  activity = ::Activity.(name, )
  self.activities << activity
  activity
end