oldhaven/app/models/music/artist.rb

43 lines
999 B
Ruby
Raw Normal View History

2011-06-14 20:05:12 +04:00
class Artist < ActiveRecord::Base
2011-09-26 09:22:18 +04:00
has_many :albums, :conditions => ['has_pic = 1'], :order => 'year ASC', :dependent => :destroy
2011-09-21 00:30:42 +04:00
has_many :artist_links, :dependent => :destroy
2011-09-22 03:20:41 +04:00
has_many :artist_aliases, :dependent => :destroy
has_many :tracks, :through => :track_artists
2011-11-26 19:03:33 +04:00
has_many :playlists
2011-10-20 15:01:57 +04:00
after_initialize :prepare_description
def status_str
%w(loading ok fail)[self.status]
end
2011-11-15 18:41:51 +04:00
def load_again!
albums.each(&:destroy)
artist_links.each(&:destroy)
artist_aliases.each(&:destroy)
self.status = 0
save!
Delayed::Job.enqueue(LoadArtistJob.new(name))
end
def serialize
{
name: name,
original_name: original_name,
url_name: name.gsub(" ", "+"),
pic_url: pic_url,
desc: desc,
albums: albums.map(&:serialize),
artist_links: artist_links.map(&:serialize)
}
end
2011-10-29 13:34:53 +04:00
private
2011-10-20 15:01:57 +04:00
def prepare_description
2011-10-29 13:34:53 +04:00
self.desc.gsub!(/[\[<].*?[\]>]/, '') unless self.desc.nil?
rescue
# WTF?!
2011-10-20 15:01:57 +04:00
end
2011-06-14 20:05:12 +04:00
end