diff --git a/ruby/lib/jam_ruby/models/connection.rb b/ruby/lib/jam_ruby/models/connection.rb index 51a6befd5..cf282c357 100644 --- a/ruby/lib/jam_ruby/models/connection.rb +++ b/ruby/lib/jam_ruby/models/connection.rb @@ -139,7 +139,16 @@ module JamRuby true end + def join_the_session(music_session, as_musician) + self.music_session = music_session + self.as_musician = as_musician + self.joining_session = true + self.joined_session_at = Time.now + self.save! + end + private + def require_at_least_one_track_when_in_session if tracks.count == 0 errors.add(:tracks, ValidationMessages::SELECT_AT_LEAST_ONE) diff --git a/ruby/spec/jam_ruby/models/claimed_recording_spec.rb b/ruby/spec/jam_ruby/models/claimed_recording_spec.rb index 007da011c..42bb0148f 100644 --- a/ruby/spec/jam_ruby/models/claimed_recording_spec.rb +++ b/ruby/spec/jam_ruby/models/claimed_recording_spec.rb @@ -19,8 +19,9 @@ describe ClaimedRecording do @instrument = FactoryGirl.create(:instrument, :description => 'a great instrument') @track = FactoryGirl.create(:track, :connection => @connection, :instrument => @instrument) @music_session = FactoryGirl.create(:music_session, :creator => @user, :musician_access => true) - @music_session.connections << @connection + # @music_session.connections << @connection @music_session.save + @connection.join_the_session(@music_session, true) @recording = Recording.start(@music_session, @user) @recording.stop @recording.reload diff --git a/ruby/spec/jam_ruby/models/connection_spec.rb b/ruby/spec/jam_ruby/models/connection_spec.rb index 2d4e1f51b..6fdaebf46 100644 --- a/ruby/spec/jam_ruby/models/connection_spec.rb +++ b/ruby/spec/jam_ruby/models/connection_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe Connection do +describe JamRuby::Connection do let(:user) { FactoryGirl.create(:user) } let (:music_session) { FactoryGirl.create(:music_session, :creator => user) } diff --git a/ruby/spec/jam_ruby/models/mix_spec.rb b/ruby/spec/jam_ruby/models/mix_spec.rb index 7296140a1..fe4f84a54 100755 --- a/ruby/spec/jam_ruby/models/mix_spec.rb +++ b/ruby/spec/jam_ruby/models/mix_spec.rb @@ -8,8 +8,9 @@ describe Mix do @instrument = FactoryGirl.create(:instrument, :description => 'a great instrument') @track = FactoryGirl.create(:track, :connection => @connection, :instrument => @instrument) @music_session = FactoryGirl.create(:music_session, :creator => @user, :musician_access => true) - @music_session.connections << @connection + # @music_session.connections << @connection @music_session.save + @connection.join_the_session(@music_session, true) @recording = Recording.start(@music_session, @user) @recording.stop @recording.claim(@user, "name", "description", Genre.first, true) diff --git a/ruby/spec/jam_ruby/models/music_session_spec.rb b/ruby/spec/jam_ruby/models/music_session_spec.rb index 7e6efebe8..adcaa485b 100644 --- a/ruby/spec/jam_ruby/models/music_session_spec.rb +++ b/ruby/spec/jam_ruby/models/music_session_spec.rb @@ -396,8 +396,9 @@ describe MusicSession do @instrument = FactoryGirl.create(:instrument, :description => 'a great instrument') @track = FactoryGirl.create(:track, :connection => @connection, :instrument => @instrument) @music_session = FactoryGirl.create(:music_session, :creator => @user1, :musician_access => true) - @music_session.connections << @connection - @music_session.save + # @music_session.connections << @connection + @music_session.save! + @connection.join_the_session(@music_session, true) end describe "not recording" do diff --git a/ruby/spec/jam_ruby/models/musician_search_spec.rb b/ruby/spec/jam_ruby/models/musician_search_spec.rb index 627918397..20be14059 100644 --- a/ruby/spec/jam_ruby/models/musician_search_spec.rb +++ b/ruby/spec/jam_ruby/models/musician_search_spec.rb @@ -113,8 +113,9 @@ describe 'Musician search' do instrument = FactoryGirl.create(:instrument, :description => 'a great instrument') track = FactoryGirl.create(:track, :connection => connection, :instrument => instrument) music_session = FactoryGirl.create(:music_session, :creator => usr, :musician_access => true) - music_session.connections << connection + # music_session.connections << connection music_session.save + connection.join_the_session(music_session, true) recording = Recording.start(music_session, usr) recording.stop recording.reload @@ -127,8 +128,9 @@ describe 'Musician search' do def make_session(usr) connection = FactoryGirl.create(:connection, :user => usr) music_session = FactoryGirl.create(:music_session, :creator => usr, :musician_access => true) - music_session.connections << connection + # music_session.connections << connection music_session.save + connection.join_the_session(music_session, true) end context 'musician stat counters' do diff --git a/ruby/spec/jam_ruby/models/recording_spec.rb b/ruby/spec/jam_ruby/models/recording_spec.rb index 609701bac..7fc0f31d2 100644 --- a/ruby/spec/jam_ruby/models/recording_spec.rb +++ b/ruby/spec/jam_ruby/models/recording_spec.rb @@ -79,8 +79,9 @@ describe Recording do @instrument2 = FactoryGirl.create(:instrument, :description => 'a great instrument') @track2 = FactoryGirl.create(:track, :connection => @connection2, :instrument => @instrument2) - @music_session.connections << @connection2 - + # @music_session.connections << @connection2 + @connection2.join_the_session(@music_session, true) + @recording = Recording.start(@music_session, @user) @user.recordings.length.should == 0 #@user.recordings.first.should == @recording @@ -176,8 +177,9 @@ describe Recording do @user2 = FactoryGirl.create(:user) @connection2 = FactoryGirl.create(:connection, :user => @user2) @track = FactoryGirl.create(:track, :connection => @connection2, :instrument => @instrument) - @music_session.connections << @connection2 + # @music_session.connections << @connection2 @music_session.save + @connection2.join_the_session(@music_session, true) @recording = Recording.start(@music_session, @user) @recording.stop @recording.reload diff --git a/ruby/spec/jam_ruby/resque/audiomixer_spec.rb b/ruby/spec/jam_ruby/resque/audiomixer_spec.rb index 4e3c4b5e6..a1cd67c77 100644 --- a/ruby/spec/jam_ruby/resque/audiomixer_spec.rb +++ b/ruby/spec/jam_ruby/resque/audiomixer_spec.rb @@ -155,8 +155,9 @@ describe AudioMixer do @instrument = FactoryGirl.create(:instrument, :description => 'a great instrument') @track = FactoryGirl.create(:track, :connection => @connection, :instrument => @instrument) @music_session = FactoryGirl.create(:music_session, :creator => @user, :musician_access => true) - @music_session.connections << @connection + # @music_session.connections << @connection @music_session.save + @connection.join_the_session(@music_session, true) @recording = Recording.start(@music_session, @user) @recording.stop @recording.claim(@user, "name", "description", Genre.first, true) diff --git a/web/spec/controllers/api_claimed_recordings_spec.rb b/web/spec/controllers/api_claimed_recordings_spec.rb index b860c7cff..f1977d400 100644 --- a/web/spec/controllers/api_claimed_recordings_spec.rb +++ b/web/spec/controllers/api_claimed_recordings_spec.rb @@ -9,8 +9,9 @@ describe ApiClaimedRecordingsController do @instrument = FactoryGirl.create(:instrument, :description => 'a great instrument') @track = FactoryGirl.create(:track, :connection => @connection, :instrument => @instrument) @music_session = FactoryGirl.create(:music_session, :creator => @user, :musician_access => true) - @music_session.connections << @connection + # @music_session.connections << @connection @music_session.save + @connection.join_the_session(@music_session, true) @recording = Recording.start(@music_session, @user) @recording.stop @recording.reload diff --git a/web/spec/features/social_meta_spec.rb b/web/spec/features/social_meta_spec.rb index 50cdb79c1..ca368dc60 100644 --- a/web/spec/features/social_meta_spec.rb +++ b/web/spec/features/social_meta_spec.rb @@ -61,7 +61,13 @@ describe "social metadata" do let(:connection) { FactoryGirl.create(:connection, :user => user) } let(:instrument) { FactoryGirl.create(:instrument, :description => 'a great instrument') } let(:track) { FactoryGirl.create(:track, :connection => connection, :instrument => instrument) } - let(:music_session) { ms = FactoryGirl.create(:music_session, :creator => user, :musician_access => true); ms.connections << connection; ms.save!; ms } + let(:music_session) { + ms = FactoryGirl.create(:music_session, :creator => user, :musician_access => true) + # ms.connections << connection + ms.save! + connection.join_the_session(ms, true) + ms + } it "renders facebook metadata" do visit "/sessions/#{music_session.id}" @@ -85,8 +91,9 @@ describe "social metadata" do @instrument = FactoryGirl.create(:instrument, :description => 'a great instrument') @track = FactoryGirl.create(:track, :connection => @connection, :instrument => @instrument) @music_session = FactoryGirl.create(:music_session, :creator => @user, :musician_access => true) - @music_session.connections << @connection + # @music_session.connections << @connection @music_session.save + @connection.join_the_session(@music_session, true) @recording = Recording.start(@music_session, @user) @recording.stop @recording.reload diff --git a/web/spec/helpers/recording_helper_spec.rb b/web/spec/helpers/recording_helper_spec.rb index 626af2412..1220abc3e 100644 --- a/web/spec/helpers/recording_helper_spec.rb +++ b/web/spec/helpers/recording_helper_spec.rb @@ -8,8 +8,9 @@ describe MusicSessionHelper do @instrument = FactoryGirl.create(:instrument, :description => 'a great instrument') @track = FactoryGirl.create(:track, :connection => @connection, :instrument => @instrument) @music_session = FactoryGirl.create(:music_session, :creator => @user, :musician_access => true) - @music_session.connections << @connection + # @music_session.connections << @connection @music_session.save + @connection.join_the_session(@music_session, true) @recording = Recording.start(@music_session, @user) @recording.stop @recording.reload diff --git a/web/spec/requests/music_sessions_api_spec.rb b/web/spec/requests/music_sessions_api_spec.rb index 82a80f2c5..bc453960d 100755 --- a/web/spec/requests/music_sessions_api_spec.rb +++ b/web/spec/requests/music_sessions_api_spec.rb @@ -698,8 +698,9 @@ describe "Music Session API ", :type => :api do connection = FactoryGirl.create(:connection, :user => user) track = FactoryGirl.create(:track, :connection => connection, :instrument => Instrument.first) music_session = FactoryGirl.create(:music_session, :creator => user, :musician_access => true) - music_session.connections << connection + # music_session.connections << connection music_session.save + connection.join_the_session(music_session, true) recording = Recording.start(music_session, user) recording.stop recording.reload diff --git a/web/spec/requests/users_api_spec.rb b/web/spec/requests/users_api_spec.rb index c85be81b7..8d3c18d5c 100644 --- a/web/spec/requests/users_api_spec.rb +++ b/web/spec/requests/users_api_spec.rb @@ -981,7 +981,12 @@ describe "User API", :type => :api do let(:connection) { FactoryGirl.create(:connection, :user => user) } let(:instrument) { FactoryGirl.create(:instrument, :description => 'a great instrument') } let(:track) { FactoryGirl.create(:track, :connection => connection, :instrument => instrument) } - let(:music_session) { ms = FactoryGirl.create(:music_session, :creator => user, :musician_access => true); ms.connections << connection; ms.save!; ms } + let(:music_session) { + ms = FactoryGirl.create(:music_session, :creator => user, :musician_access => true) + # ms.connections << connection + ms.save! + connection.join_the_session(ms, true) + ms } it "fetches facebook successfully" do login(user.email, user.password, 200, true) @@ -1115,8 +1120,9 @@ describe "User API", :type => :api do @instrument = FactoryGirl.create(:instrument, :description => 'a great instrument') @track = FactoryGirl.create(:track, :connection => @connection, :instrument => @instrument) @music_session = FactoryGirl.create(:music_session, :creator => user, :musician_access => true) - @music_session.connections << @connection + # @music_session.connections << @connection @music_session.save + @connection.join_the_session(@music_session, true) @recording = Recording.start(@music_session, user) @recording.stop @recording.reload