this repo has no description
dotfiles
1class MPC
2 def initialize
3 output = run.split("\n")
4 return unless output.size >= 3
5 @mods = Hash[output[2].scan(/(\w+): (off|on)/).map do |m|
6 [m.first.to_sym, m.last == 'on']
7 end]
8 end
9
10 def [](mode)
11 @mods[mode]
12 end
13
14 def available
15 run.split("\n").size > 1
16 end
17
18 def status
19 run.split("\n")[1].match(/^\[(\w+)\]/)[1].to_sym
20 end
21
22 def play
23 run 'play'
24 end
25
26 def pause
27 run 'pause'
28 end
29
30 def stop
31 run 'stop'
32 end
33
34 def toggle
35 run 'toggle'
36 end
37
38 def next
39 run 'next'
40 end
41
42 def previous
43 run 'previous'
44 end
45
46 def long
47 run('-f [[%artist% - ]%title%[ (%album%)]]|[%file%]').split("\n").first
48 end
49
50 def short
51 run('-f "%title%"').split("\n").first
52 end
53
54 def file
55 run('-f "%file%"').split("\n").first
56 end
57
58 def to_s
59 run.split("\n").first
60 end
61
62 private
63
64 def run(command = '')
65 `mpc #{command}`.strip
66 end
67end