Class: ActivityEngine::Activity

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/activity_engine/activity.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.call(data) ⇒ Object



4
5
6
7
8
9
10
11
# File 'app/models/activity_engine/activity.rb', line 4

def self.call(data)
  create! do |activity|
    activity.subject = data.subject
    activity.user = data.current_user
    activity.message = data.message
    activity.activity_type = data.activity_type
  end
end

.statistics_for_subject(subject) ⇒ Object



32
33
34
35
36
# File 'app/models/activity_engine/activity.rb', line 32

def self.statistics_for_subject(subject)
  for_subject(subject).for_stats.each_with_object([]) {|stat, collector|
    collector << ActivityEngine::Statistic.new(subject,stat.attributes)
  }
end

Instance Method Details

#subjectObject



40
41
42
# File 'app/models/activity_engine/activity.rb', line 40

def subject
  subject_type.constantize.find(subject_id)
end

#subject=(object) ⇒ Object



44
45
46
47
48
49
50
51
# File 'app/models/activity_engine/activity.rb', line 44

def subject=(object)
  if object.persisted?
    write_attribute(:subject_type, object.class.to_s)
    write_attribute(:subject_id, ActivityEngine.extract_subject_id(object))
  else
    raise UnpersistedSubjectError.new(object)
  end
end