Sha256: b34f381172de4abadb256ad8a1e9e4e4af0b92d0b79b9124bd66cceea84b74f9
Contents?: true
Size: 1.49 KB
Versions: 2
Compression:
Stored size: 1.49 KB
Contents
module Catche module Tag class Collect class << self # Collects resource tags for a given resource # # Catche::Tag::Collect.resource_tags(@task) # => { :set => ["tasks_1"], :expire => ["tasks_1"] } def resource(resource) set_tags = [] expire_tags = [] set_tags << resource.catche_tag expire_tags << resource.catche_tag { :set => set_tags.uniq, :expire => expire_tags.uniq } end # Collects collection tags for a given context, for example a controller # # Catche::Tag::Collect.collection_tags(controller, Task) # => { :set => ["projects_1_tasks"], :expire => ["tasks", "projects_1_tasks"] } def collection(context, resource_class, include_base=true) associations = Catche::ResourceLoader.fetch(context, *resource_class.catche_associations) association_tags = associations.map { |a| a.catche_tag } set_tags = [] expire_tags = [] association_tags.each do |tag| set_tags << Tag.join(tag, resource_class.catche_tag) end set_tags << resource_class.catche_tag if association_tags.blank? expire_tags << resource_class.catche_tag if include_base expire_tags += set_tags { :set => set_tags.uniq, :expire => expire_tags.uniq } end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
catche-0.2.3 | lib/catche/tag/collect.rb |
catche-0.2.2 | lib/catche/tag/collect.rb |