module LinkingPaths::Acts::Scribe::ClassMethods

Public Instance Methods

include_scribe_instance_methods() { || ... } click to toggle source
# 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 = []) click to toggle source
# 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 = {}) click to toggle source
# 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