anyplayer 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +3 -1
- data/Rakefile +1 -1
- data/anyplayer.gemspec +1 -0
- data/lib/anyplayer/players/mpd.rb +40 -17
- data/lib/anyplayer/version.rb +1 -1
- data/test/players/mpd_test.rb +25 -0
- metadata +20 -8
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
anyplayer (1.1.
|
4
|
+
anyplayer (1.1.1)
|
5
|
+
ruby-mpd (~> 0.3.0)
|
5
6
|
|
6
7
|
GEM
|
7
8
|
remote: http://rubygems.org/
|
@@ -9,6 +10,7 @@ GEM
|
|
9
10
|
flexmock (0.9.0)
|
10
11
|
minitest (4.1.0)
|
11
12
|
rake (0.9.2.2)
|
13
|
+
ruby-mpd (0.3.0)
|
12
14
|
|
13
15
|
PLATFORMS
|
14
16
|
ruby
|
data/Rakefile
CHANGED
data/anyplayer.gemspec
CHANGED
@@ -17,6 +17,7 @@ Gem::Specification.new do |s|
|
|
17
17
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
18
|
s.require_paths = ["lib"]
|
19
19
|
|
20
|
+
s.add_runtime_dependency 'ruby-mpd', '~> 0.3.0'
|
20
21
|
s.add_development_dependency 'minitest'
|
21
22
|
s.add_development_dependency 'flexmock'
|
22
23
|
end
|
@@ -1,54 +1,69 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
begin
|
3
|
+
require 'ruby-mpd'
|
4
|
+
rescue LoadError => e
|
5
|
+
raise LoadError.new "#{e.message} — please install ruby-mpd gem"
|
6
|
+
end
|
7
|
+
|
8
|
+
|
1
9
|
class Anyplayer::Mpd < Anyplayer::Player
|
10
|
+
def initialize
|
11
|
+
@mpc = false
|
12
|
+
super
|
13
|
+
end
|
14
|
+
|
2
15
|
def playpause
|
3
|
-
mpc
|
16
|
+
mpc.paused? &&
|
17
|
+
mpc.send_command(:play) ||
|
18
|
+
mpc.send_command(:pause)
|
4
19
|
end
|
5
20
|
|
6
21
|
def play
|
7
|
-
mpc
|
22
|
+
mpc.play
|
8
23
|
end
|
9
24
|
|
10
25
|
def pause
|
11
|
-
|
26
|
+
# ruby-mpd tries to send an additional argument to the MPD server
|
27
|
+
# which at least doesn't work with Mopidy.
|
28
|
+
mpc.send_command :pause
|
12
29
|
end
|
13
30
|
|
14
31
|
def prev
|
15
|
-
mpc
|
32
|
+
mpc.previous
|
16
33
|
super
|
17
34
|
end
|
18
35
|
|
19
36
|
def next
|
20
|
-
mpc
|
37
|
+
mpc.next
|
21
38
|
super
|
22
39
|
end
|
23
40
|
|
24
41
|
def voldown
|
25
|
-
mpc
|
42
|
+
mpc.volume -= 10
|
26
43
|
end
|
27
44
|
|
28
45
|
def volup
|
29
|
-
mpc
|
46
|
+
mpc.volume += 10
|
30
47
|
end
|
31
48
|
|
32
49
|
def volume
|
33
|
-
mpc
|
34
|
-
$1
|
50
|
+
mpc.volume
|
35
51
|
end
|
36
52
|
|
37
53
|
def track
|
38
|
-
mpc
|
54
|
+
mpc.current_song && mpc.current_song.title
|
39
55
|
end
|
40
56
|
|
41
57
|
def artist
|
42
|
-
mpc
|
58
|
+
mpc.current_song && mpc.current_song.artist
|
43
59
|
end
|
44
60
|
|
45
61
|
def album
|
46
|
-
mpc
|
62
|
+
mpc.current_song && mpc.current_song.album
|
47
63
|
end
|
48
64
|
|
49
65
|
def launched?
|
50
|
-
|
51
|
-
$? == 0
|
66
|
+
!!(@mpc && @mpc.connected? || connect)
|
52
67
|
end
|
53
68
|
|
54
69
|
def host
|
@@ -56,8 +71,16 @@ class Anyplayer::Mpd < Anyplayer::Player
|
|
56
71
|
end
|
57
72
|
|
58
73
|
private
|
59
|
-
|
60
|
-
|
61
|
-
|
74
|
+
def connect
|
75
|
+
@mpc ||= MPD.new
|
76
|
+
@mpc.connect
|
77
|
+
rescue
|
78
|
+
false
|
79
|
+
end
|
80
|
+
|
81
|
+
def mpc
|
82
|
+
@mpc || connect
|
83
|
+
@mpc
|
84
|
+
end
|
62
85
|
end
|
63
86
|
|
data/lib/anyplayer/version.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
require "ruby-mpd"
|
3
|
+
require "anyplayer/players/mpd"
|
4
|
+
|
5
|
+
class MpdTest < MiniTest::Unit::TestCase
|
6
|
+
include FlexMock::TestCase
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@mpd_instance_mock = flexmock("mpd")
|
10
|
+
flexmock(MPD, "MPD", :new => @mpd_instance_mock)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_uses_ruby_mpd_gem
|
14
|
+
@mpd_instance_mock.should_receive :connect
|
15
|
+
Mpd.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_works_around_toggle_bug
|
19
|
+
player = Mpd.new
|
20
|
+
@mpd_instance_mock.should_receive(:paused?).once.and_return(false)
|
21
|
+
@mpd_instance_mock.should_receive(:send_command).with(:pause).once
|
22
|
+
|
23
|
+
player.playpause
|
24
|
+
end
|
25
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: anyplayer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,8 +10,24 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-
|
13
|
+
date: 2013-12-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: ruby-mpd
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ~>
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.3.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 0.3.0
|
15
31
|
- !ruby/object:Gem::Dependency
|
16
32
|
name: minitest
|
17
33
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,6 +94,7 @@ files:
|
|
78
94
|
- lib/anyplayer/version.rb
|
79
95
|
- test/anyplayer_test.rb
|
80
96
|
- test/player_test.rb
|
97
|
+
- test/players/mpd_test.rb
|
81
98
|
- test/selector_test.rb
|
82
99
|
- test/test_helper.rb
|
83
100
|
homepage: http://github.com/sunny/anyplayer
|
@@ -92,18 +109,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
92
109
|
- - ! '>='
|
93
110
|
- !ruby/object:Gem::Version
|
94
111
|
version: '0'
|
95
|
-
segments:
|
96
|
-
- 0
|
97
|
-
hash: -2566882971026617068
|
98
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
113
|
none: false
|
100
114
|
requirements:
|
101
115
|
- - ! '>='
|
102
116
|
- !ruby/object:Gem::Version
|
103
117
|
version: '0'
|
104
|
-
segments:
|
105
|
-
- 0
|
106
|
-
hash: -2566882971026617068
|
107
118
|
requirements: []
|
108
119
|
rubyforge_project:
|
109
120
|
rubygems_version: 1.8.23
|
@@ -113,5 +124,6 @@ summary: Interact with the running music player
|
|
113
124
|
test_files:
|
114
125
|
- test/anyplayer_test.rb
|
115
126
|
- test/player_test.rb
|
127
|
+
- test/players/mpd_test.rb
|
116
128
|
- test/selector_test.rb
|
117
129
|
- test/test_helper.rb
|