class CatTree::Observer::TargetSet

Public Class Methods

new() click to toggle source
# File lib/cat_tree/observer/target_set.rb, line 6
def initialize
  @set = {}
end

Public Instance Methods

empty?() click to toggle source
# File lib/cat_tree/observer/target_set.rb, line 29
def empty?
  @set.empty?
end
notice(object) click to toggle source
# File lib/cat_tree/observer/target_set.rb, line 10
def notice(object)
  return unless target = get_target(object)
  return unless target.valid?

  if same_target = @set[target.key]
    @set[target.key] = same_target.merge(target)
  else
    @set[target.key] = target
  end
end
object_count() click to toggle source
# File lib/cat_tree/observer/target_set.rb, line 21
def object_count
  @set.values.inject(0){|t,v| t + v.count}
end
same_objects() click to toggle source
# File lib/cat_tree/observer/target_set.rb, line 25
def same_objects
  @set.values.select{|v| v.count > 1}.sort_by{|v| v.count}.reverse
end

Private Instance Methods

get_target(object) click to toggle source
# File lib/cat_tree/observer/target_set.rb, line 35
def get_target(object)
  case object
  when ActiveRecord::Base
    ArBase.new(object)
  end
end