Module: StreamRails::Activity

Defined in:
lib/stream_rails/activity.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



29
30
31
# File 'lib/stream_rails/activity.rb', line 29

def self.included(base)
  base.extend ClassMethods
end

Instance Method Details

#activity_actorObject



37
38
39
# File 'lib/stream_rails/activity.rb', line 37

def activity_actor
  user
end

#activity_actor_idObject



45
46
47
# File 'lib/stream_rails/activity.rb', line 45

def activity_actor_id
  StreamRails.create_reference(activity_actor)
end

#activity_extra_dataObject



75
76
77
# File 'lib/stream_rails/activity.rb', line 75

def activity_extra_data
  {}
end

#activity_foreign_idObject



65
66
67
# File 'lib/stream_rails/activity.rb', line 65

def activity_foreign_id
  StreamRails.create_reference(self)
end

#activity_notifyObject



73
# File 'lib/stream_rails/activity.rb', line 73

def activity_notify; end

#activity_objectObject

Raises:

  • (NotImplementedError)


49
50
51
# File 'lib/stream_rails/activity.rb', line 49

def activity_object
  raise NotImplementedError, "Activity models must define `#activity_object` - missing on `#{self.class}`"
end

#activity_object_idObject



61
62
63
# File 'lib/stream_rails/activity.rb', line 61

def activity_object_id
  StreamRails.create_reference(activity_object)
end

#activity_owner_feedObject



41
42
43
# File 'lib/stream_rails/activity.rb', line 41

def activity_owner_feed
  activity_actor.class.name.downcase
end

#activity_owner_idObject



33
34
35
# File 'lib/stream_rails/activity.rb', line 33

def activity_owner_id
  activity_actor.id
end

#activity_should_sync?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/stream_rails/activity.rb', line 83

def activity_should_sync?
  true
end

#activity_targetObject



53
54
55
# File 'lib/stream_rails/activity.rb', line 53

def activity_target
  nil
end

#activity_target_idObject



69
70
71
# File 'lib/stream_rails/activity.rb', line 69

def activity_target_id
  StreamRails.create_reference(activity_target) if activity_target
end

#activity_timeObject



79
80
81
# File 'lib/stream_rails/activity.rb', line 79

def activity_time
  created_at.iso8601
end

#activity_verbObject



57
58
59
# File 'lib/stream_rails/activity.rb', line 57

def activity_verb
  self.class.model_name.to_s
end

#create_activityObject



87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/stream_rails/activity.rb', line 87

def create_activity
  activity = {
    actor: activity_actor_id,
    verb: activity_verb,
    object: activity_object_id,
    foreign_id: activity_foreign_id,
    target: activity_target_id,
    time: activity_time
  }
  arr = activity_notify
  activity[:to] = arr.map(&:id) unless arr.nil?
  activity.merge!(activity_extra_data || {})
end