lib/gdshowsdb/models/song_ref.rb in gdshowsdb-0.9.1 vs lib/gdshowsdb/models/song_ref.rb in gdshowsdb-1.0.0
- old
+ new
@@ -10,23 +10,30 @@
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
- )
+ song_ref = SongRef.new
+ set_spec(song_ref, spec)
+ song_ref.save
end
- def self.update_from(spec)
- SongRef.update(spec[:uuid], spec)
+ def self.update_from(spec)
+ song_ref = SongRef.find_by_uuid(spec[:uuid])
+ set_spec(song_ref, spec)
+ song_ref.save
end
def self.remove_from(spec)
SongRef.find_by_uuid(spec[:uuid]).delete
+ end
+
+ private
+
+ def self.set_spec(song_ref, spec)
+ song_ref.uuid = spec[:uuid]
+ song_ref.name = spec[:name]
+ song_ref.slug = spec[:name].parameterize.underscore
+ song_ref
end
end
\ No newline at end of file