class SimpleActivity::Activity
Public Class Methods
actor_activities(obj)
click to toggle source
Show activities belongs to an actor
# File lib/simple_activity/models/activity.rb, line 16 def self.actor_activities(obj) type = obj.class.to_s id = obj.id self.where(actor_type: type, actor_id: id) end
target_activities(obj)
click to toggle source
Show activities belongs to a target
# File lib/simple_activity/models/activity.rb, line 23 def self.target_activities(obj) type = obj.class.to_s id = obj.id self.where(target_type: type, target_id: id) end
Private Class Methods
cache_methods()
click to toggle source
# File lib/simple_activity/models/activity.rb, line 80 def self.cache_methods Rule.get_rules_set self.class.to_s end
Public Instance Methods
actor()
click to toggle source
# File lib/simple_activity/models/activity.rb, line 58 def actor actor_type.capitalize.constantize.find(actor_id) end
cache()
click to toggle source
# File lib/simple_activity/models/activity.rb, line 29 def cache read_attribute(:cache) || [] end
can_display?()
click to toggle source
# File lib/simple_activity/models/activity.rb, line 66 def can_display? display end
method_missing(method_name, *arguments, &block)
click to toggle source
Delegate the methods start with “actor_” or “target_” to cached result
Calls superclass method
# File lib/simple_activity/models/activity.rb, line 35 def method_missing(method_name, *arguments, &block) if method_name.to_s =~ /(actor|target)_(?!type|id).*/ self.cache.try(:[], method_name.to_s) else super end end
respond_to_missing?(method_name, include_private = false)
click to toggle source
Calls superclass method
# File lib/simple_activity/models/activity.rb, line 43 def respond_to_missing?(method_name, include_private = false) method_name.to_s.match /(actor|target)_.*/ || super end
rules(set=nil)
click to toggle source
Get rules for an activity instance. This can't replace similar method in Processor
@param set [String] The specific rule set want to get
# File lib/simple_activity/models/activity.rb, line 74 def rules(set=nil) @rules ||= Rule.get_rules(self.target_type, set) end
target()
click to toggle source
# File lib/simple_activity/models/activity.rb, line 62 def target target_type.capitalize.constantize.find(target_id) end
update_cache(cache_rule)
click to toggle source
TODO: Untested
# File lib/simple_activity/models/activity.rb, line 48 def update_cache(cache_rule) cache_rule.each do |type, type_methods| type_methods.each do |method| value = self.send(type).send(method) self.cache["#{type}_#{method}"] = value end end save end
Private Instance Methods
past_form(action)
click to toggle source
# File lib/simple_activity/models/activity.rb, line 84 def past_form(action) action.last == 'e' ? "#{action}d" : "#{action}ed" end