play 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/play.rb CHANGED
@@ -26,7 +26,7 @@ require 'play/vote'
26
26
 
27
27
  module Play
28
28
 
29
- VERSION = '0.0.1'
29
+ VERSION = '0.0.2'
30
30
 
31
31
  # The path to your music library. All of the music underneath this directory
32
32
  # will be added to the internal library.
data/lib/play/album.rb CHANGED
@@ -2,5 +2,14 @@ module Play
2
2
  class Album < ActiveRecord::Base
3
3
  has_many :songs
4
4
  belongs_to :artist
5
+
6
+ # Queue up an entire ALBUM!
7
+ #
8
+ # user - the User who is requesting the album to be queued
9
+ #
10
+ # Returns nothing.
11
+ def enqueue!(user)
12
+ songs.each{ |song| song.enqueue!(user) }
13
+ end
5
14
  end
6
15
  end
data/lib/play/app/api.rb CHANGED
@@ -50,6 +50,25 @@ module Play
50
50
  end
51
51
  end
52
52
 
53
+ post "/api/add_album" do
54
+ api_authenticate
55
+ artist = Play::Artist.find_by_name(params[:artist_name])
56
+ if artist
57
+ album = artist.albums.find_by_name(params[:album_name])
58
+ if album
59
+ album.enqueue!(api_user)
60
+ {
61
+ 'artist_name' => artist.name,
62
+ 'album_name' => album.name
63
+ }.to_json
64
+ else
65
+ error("Sorry, but we couldn't find that album.")
66
+ end
67
+ else
68
+ error("Sorry, but we couldn't find that artist.")
69
+ end
70
+ end
71
+
53
72
  post "/api/remove" do
54
73
  error "This hasn't been implemented yet. Whoops."
55
74
  end
data/play.gemspec CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'play'
16
- s.version = '0.0.1'
17
- s.date = '2011-05-05'
16
+ s.version = '0.0.2'
17
+ s.date = '2011-05-06'
18
18
  s.rubyforge_project = 'play'
19
19
 
20
20
  ## Make sure your summary is short. The description may be as long
@@ -111,6 +111,7 @@ Gem::Specification.new do |s|
111
111
  public/css/base.css
112
112
  test/helper.rb
113
113
  test/spec/mini.rb
114
+ test/test_album.rb
114
115
  test/test_api.rb
115
116
  test/test_app.rb
116
117
  test/test_artist.rb
@@ -0,0 +1,18 @@
1
+ require 'helper'
2
+
3
+ context "Album" do
4
+ fixtures do
5
+ @artist = Play::Artist.create(:name => "Justice")
6
+ @album = Album.create(:name => 'Cross', :artist => @artist)
7
+ @song = Play::Song.create(:title => "Stress",
8
+ :artist => @artist,
9
+ :album => @album)
10
+ @user = User.create
11
+ end
12
+
13
+ test "enqueueing songs" do
14
+ Song.any_instance.expects(:enqueue!).with(@user).times(1)
15
+ @album.enqueue!(@user)
16
+ end
17
+
18
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: play
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Zach Holman
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-05 00:00:00 -07:00
18
+ date: 2011-05-06 00:00:00 -07:00
19
19
  default_executable: play
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -244,6 +244,7 @@ files:
244
244
  - public/css/base.css
245
245
  - test/helper.rb
246
246
  - test/spec/mini.rb
247
+ - test/test_album.rb
247
248
  - test/test_api.rb
248
249
  - test/test_app.rb
249
250
  - test/test_artist.rb
@@ -288,6 +289,7 @@ signing_key:
288
289
  specification_version: 2
289
290
  summary: "Your company's dj. \xE2\x96\xBA"
290
291
  test_files:
292
+ - test/test_album.rb
291
293
  - test/test_api.rb
292
294
  - test/test_app.rb
293
295
  - test/test_artist.rb