diff options
author | Eric Wong <e@80x24.org> | 2015-12-13 11:12:45 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-12-13 12:22:52 +0000 |
commit | e751a396e43f07f15d9b639a850c0c8cbebf9539 (patch) | |
tree | a5b11aadaceae5ccad6a719e144823f057545647 | |
parent | 1a63ca046d42dc9d35fe656c034e0c791834ae67 (diff) | |
download | dtas-e751a396e43f07f15d9b639a850c0c8cbebf9539.tar.gz |
Disabling shuffle should be idempotent.
-rw-r--r-- | lib/dtas/tracklist.rb | 6 | ||||
-rw-r--r-- | test/test_tracklist.rb | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/dtas/tracklist.rb b/lib/dtas/tracklist.rb index d3db4e9..b1cdc1e 100644 --- a/lib/dtas/tracklist.rb +++ b/lib/dtas/tracklist.rb @@ -93,9 +93,11 @@ class DTAS::Tracklist # :nodoc: prev = @shuffle if bool list = @shuffle = (prev ||= @list).shuffle - else - list = @list + elsif prev @shuffle = false + list = @list + else + return false end @pos = _update_pos(@pos, prev, list) if @pos >= 0 @goto_pos = _update_pos(@goto_pos, prev, list) if @goto_pos diff --git a/test/test_tracklist.rb b/test/test_tracklist.rb index 4d00227..c918ff7 100644 --- a/test/test_tracklist.rb +++ b/test/test_tracklist.rb @@ -73,6 +73,8 @@ class TestTracklist < Testcase assert_equal false, tl.shuffle tl.instance_variable_set :@pos, 3 + assert_equal false, tl.shuffle = false + before = tl.cur_track 3.times do tl.shuffle = true |