Module: LinkingPaths::Acts::Scribe::ClassMethods

Defined in:
lib/scribe.rb

Instance Method Summary collapse

Instance Method Details

#include_scribe_instance_methods(&block) ⇒ Object



35
36
37
38
39
40
41
42
# File 'lib/scribe.rb', line 35

def include_scribe_instance_methods(&block)
  unless included_modules.include? InstanceMethods
    yield if block_given?
    class_inheritable_accessor :activity_options
    self.activity_options ||= {}
    include InstanceMethods
  end
end

#record_activities(actions = []) ⇒ Object



31
32
33
# File 'lib/scribe.rb', line 31

def record_activities(actions = [])
  raise "record_activities(#{actions.join ','}) has been deprecated. Use Activity.report(user, #{actions.first}), etc. instead."
end

#record_activity_of(actor, options = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/scribe.rb', line 12

def record_activity_of(actor, options = {})
  include_scribe_instance_methods {
    has_many :activities, :as => :item, :dependent => :destroy
    after_create do |record|
      unless options[:if].kind_of?(Proc) and not options[:if].call(record)
        user = record.send(activity_options[:actor])
        Activity.report(user, :create, record)
      end
    end
    after_destroy do |record|
      unless options[:if].kind_of?(Proc) and not options[:if].call(record)
        user = record.send(activity_options[:actor])
        Activity.report(user, :destroy, record)
      end
    end
  }
  self.activity_options.merge! :actor => actor
end