Sha256: 51bc9890fea74f12f8e26b0cbc1c6936b74f063fea18a64e0693820600c7bcb1

Contents?: true

Size: 772 Bytes

Versions: 2

Compression:

Stored size: 772 Bytes

Contents

require 'friendly_id'

class SongRef < ActiveRecord::Base
	extend FriendlyId
  include Extensions::UUID  

  friendly_id :slug

	has_many :songs, :foreign_key => :song_ref_uuid, :primary_key => :uuid
	has_many :song_occurences, :foreign_key => :song_ref_uuid, :primary_key => :uuid
	has_many :shows, :through => :song_occurences, :foreign_key => :song_ref_uuid

  accepts_nested_attributes_for :song_occurences

	attr_accessible :uuid, :name, :slug

  def self.create_from(spec)
    SongRef.create(
      uuid: spec[:uuid],
      name: spec[:name],
      slug: spec[:name].parameterize.underscore
    )
  end

  def self.update_from(spec)    
    SongRef.update(spec[:uuid], spec)
  end
	
  def self.remove_from(spec)
    SongRef.find_by_uuid(spec[:uuid]).delete
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gdshowsdb-0.9.1 lib/gdshowsdb/models/song_ref.rb
gdshowsdb-0.9.0 lib/gdshowsdb/models/song_ref.rb