Class: Aggregation
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Aggregation
- Defined in:
- app/models/aggregation.rb
Overview
Schema Information
Table name: aggregations
id :integer(4) not null, primary key
terms :string(255)
title :string(255)
description :text
top_tags :text
created_at :datetime
updated_at :datetime
ownable_id :integer(4)
ownable_type :string(255)
Instance Method Summary collapse
-
#add_feeds(user = nil, service_ids = nil, refresh_services = false) ⇒ Object
Builds and then adds feeds for a given terms user: User to be associated with each feed.
- #add_feeds_by_uri(user = nil, uris = nil) ⇒ Object
- #all_feeds ⇒ Object
-
#bookmark_feeds(refresh_services = false) ⇒ Object
Get only bookmark feeds.
-
#can_edit?(user) ⇒ Boolean
Determines whether or not he given user can edit the aggregation.
-
#general_feeds(refresh_services = false) ⇒ Object
Get only general feeds (exclude all specific feeds such as photos, videos, etc).
-
#music_feeds(refresh_services = false) ⇒ Object
Get only music feeds.
-
#photo_feeds(refresh_services = false) ⇒ Object
Get only photo feeds.
-
#safe_add_feeds(new_feeds) ⇒ Object
Only add feeds that aren’t already part of the aggregation.
-
#video_feeds(refresh_services = false) ⇒ Object
Get only video feeds.
Instance Method Details
#add_feeds(user = nil, service_ids = nil, refresh_services = false) ⇒ Object
Builds and then adds feeds for a given terms user: User to be associated with each feed. Default is nil which makes each feed global. service_ids: An array of service ids. Nil will generate a feed for every available service. refresh_services: By default all tag services are cached. Setting this value to true
will result in the values being repopulated from the database
34 35 36 |
# File 'app/models/aggregation.rb', line 34 def add_feeds(user = nil, service_ids = nil, refresh_services = false) safe_add_feeds(Service.create_tag_feeds(self.terms, user, service_ids, refresh_services)) end |
#add_feeds_by_uri(user = nil, uris = nil) ⇒ Object
38 39 40 |
# File 'app/models/aggregation.rb', line 38 def add_feeds_by_uri(user = nil, uris = nil) safe_add_feeds(Feed.create_tag_feeds(user, uris)) end |
#all_feeds ⇒ Object
79 80 81 |
# File 'app/models/aggregation.rb', line 79 def all_feeds @all_feeds ||= self.feeds.find(:all, :include => :service) end |
#bookmark_feeds(refresh_services = false) ⇒ Object
Get only bookmark feeds
65 66 67 |
# File 'app/models/aggregation.rb', line 65 def bookmark_feeds(refresh_services = false) all_feeds.find_all{ |feed| feed.service.bookmark?(refresh_services) rescue nil } end |
#can_edit?(user) ⇒ Boolean
Determines whether or not he given user can edit the aggregation
84 85 86 87 88 89 90 |
# File 'app/models/aggregation.rb', line 84 def can_edit?(user) if ownable == user || user.admin? true else false end end |
#general_feeds(refresh_services = false) ⇒ Object
Get only general feeds (exclude all specific feeds such as photos, videos, etc)
75 76 77 |
# File 'app/models/aggregation.rb', line 75 def general_feeds(refresh_services = false) all_feeds.find_all{ |feed| feed.service.general?(refresh_services) rescue nil } end |
#music_feeds(refresh_services = false) ⇒ Object
Get only music feeds
70 71 72 |
# File 'app/models/aggregation.rb', line 70 def music_feeds(refresh_services = false) all_feeds.find_all{ |feed| feed.service.music?(refresh_services) rescue nil} end |
#photo_feeds(refresh_services = false) ⇒ Object
Get only photo feeds
55 56 57 |
# File 'app/models/aggregation.rb', line 55 def photo_feeds(refresh_services = false) all_feeds.find_all{ |feed| feed.service.photo?(refresh_services) rescue nil } end |
#safe_add_feeds(new_feeds) ⇒ Object
Only add feeds that aren’t already part of the aggregation
43 44 45 46 47 48 49 50 51 52 |
# File 'app/models/aggregation.rb', line 43 def safe_add_feeds(new_feeds) new_feeds.each do |feed| begin self.feeds << feed rescue ActiveRecord::RecordInvalid => ex # Throw away exception. Feed already exists so we don't need to do anything. end end new_feeds end |
#video_feeds(refresh_services = false) ⇒ Object
Get only video feeds
60 61 62 |
# File 'app/models/aggregation.rb', line 60 def video_feeds(refresh_services = false) all_feeds.find_all{ |feed| feed.service.video?(refresh_services) rescue nil } end |