Sha256: 67e3ce86b47a02870f59bd3f4f6f2fb66f673725cebe65e7bbbee1305c35ac88
Contents?: true
Size: 834 Bytes
Versions: 3
Compression:
Stored size: 834 Bytes
Contents
require 'cat_tree/observer/target_set/ar_base' module CatTree class Observer class TargetSet def initialize @set = {} end 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 def object_count @set.values.inject(0){|t,v| t + v.count} end def same_objects @set.values.select{|v| v.count > 1}.sort_by{|v| v.count}.reverse end def empty? @set.empty? end private def get_target(object) case object when ActiveRecord::Base ArBase.new(object) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
cat_tree-1.1.1 | lib/cat_tree/observer/target_set.rb |
cat_tree-1.1.0 | lib/cat_tree/observer/target_set.rb |
cat_tree-1.0.0 | lib/cat_tree/observer/target_set.rb |