itunes-client 0.0.6 → 0.1.0
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.
- checksums.yaml +4 -4
- data/lib/itunes/player.rb +55 -0
- data/lib/itunes/track.rb +2 -6
- data/lib/itunes/version.rb +1 -1
- data/lib/itunes-client.rb +1 -1
- data/scripts/{application → player}/add.scpt +0 -0
- data/scripts/player/next_track.scpt +5 -0
- data/scripts/{application → player}/pause.scpt +0 -0
- data/scripts/player/player_state.scpt +3 -0
- data/scripts/player/prev_track.scpt +5 -0
- data/scripts/{application → player}/stop.scpt +0 -0
- data/spec/itunes/player_spec.rb +115 -0
- data/spec/itunes/track_spec.rb +1 -1
- data/spec/itunes/util/executor_spec.rb +1 -1
- metadata +11 -8
- data/lib/itunes/application.rb +0 -34
- data/spec/itunes/application_spec.rb +0 -49
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 84cff6353f729ae6ed533ee0ea61f5ef4bc054f0
|
4
|
+
data.tar.gz: 69f8934039019946f497a38aaca502590948261c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b65f4e065e816a8d61d8c04266d11a56e60cd60fd59c967648b1adb2ec335e53ffc4dc5a873a7aa1338b36b5f15489545ec146f8a1ddd5c5f0411805311aef0e
|
7
|
+
data.tar.gz: a4ef2807ecfca46366828afc7e2edf0551a178c9a73d9145ac7ff8ee1aee1f70669813adce4da7c12a12901a6a3eeed1c86c23caa320081a62c6c90a32dfc835
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require 'singleton'
|
3
|
+
|
4
|
+
require 'itunes/track'
|
5
|
+
require 'itunes/util'
|
6
|
+
|
7
|
+
module Itunes
|
8
|
+
class Player
|
9
|
+
extend Itunes::Util::Executor
|
10
|
+
|
11
|
+
class << self
|
12
|
+
def add(file_path)
|
13
|
+
persistent_id = execute_script("#{script_dir}/add.scpt", file_path)
|
14
|
+
Track.find_by(persistent_id: persistent_id).first
|
15
|
+
end
|
16
|
+
|
17
|
+
def stop
|
18
|
+
execute_script("#{script_dir}/stop.scpt")
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
22
|
+
def pause
|
23
|
+
execute_script("#{script_dir}/pause.scpt")
|
24
|
+
self
|
25
|
+
end
|
26
|
+
|
27
|
+
def playing?
|
28
|
+
execute_script("#{script_dir}/player_state.scpt") == 'playing'
|
29
|
+
end
|
30
|
+
|
31
|
+
def paused?
|
32
|
+
execute_script("#{script_dir}/player_state.scpt") == 'paused'
|
33
|
+
end
|
34
|
+
|
35
|
+
def stopped?
|
36
|
+
execute_script("#{script_dir}/player_state.scpt") == 'stopped'
|
37
|
+
end
|
38
|
+
|
39
|
+
def next_track
|
40
|
+
persistent_id = execute_script("#{script_dir}/next_track.scpt")
|
41
|
+
Track.find_by(persistent_id: persistent_id).first
|
42
|
+
end
|
43
|
+
|
44
|
+
def prev_track
|
45
|
+
persistent_id = execute_script("#{script_dir}/prev_track.scpt")
|
46
|
+
Track.find_by(persistent_id: persistent_id).first
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
def script_dir
|
51
|
+
'player'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
data/lib/itunes/track.rb
CHANGED
@@ -49,12 +49,12 @@ module Itunes
|
|
49
49
|
end
|
50
50
|
|
51
51
|
def pause
|
52
|
-
|
52
|
+
Itunes.pause
|
53
53
|
self
|
54
54
|
end
|
55
55
|
|
56
56
|
def stop
|
57
|
-
|
57
|
+
Itunes.stop
|
58
58
|
self
|
59
59
|
end
|
60
60
|
|
@@ -106,10 +106,6 @@ module Itunes
|
|
106
106
|
|
107
107
|
private
|
108
108
|
|
109
|
-
def application
|
110
|
-
Application.instance
|
111
|
-
end
|
112
|
-
|
113
109
|
def update_attribute_records(args)
|
114
110
|
records = []
|
115
111
|
args.each do |key, val|
|
data/lib/itunes/version.rb
CHANGED
data/lib/itunes-client.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,115 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'itunes-client'
|
4
|
+
|
5
|
+
include Itunes
|
6
|
+
|
7
|
+
describe Player do
|
8
|
+
let(:player) { Itunes::Player }
|
9
|
+
|
10
|
+
describe '.add' do
|
11
|
+
subject(:add) { player.add(file_name) }
|
12
|
+
|
13
|
+
let(:file_name) { 'foo.wav' }
|
14
|
+
let(:new_persistent_id) { 'foo' }
|
15
|
+
|
16
|
+
before do
|
17
|
+
player.should_receive(:execute_script).
|
18
|
+
with('player/add.scpt', file_name).and_return(new_persistent_id)
|
19
|
+
Track.should_receive(:find_by).
|
20
|
+
with(persistent_id: new_persistent_id).
|
21
|
+
and_return([Track.new(persistent_id: new_persistent_id)])
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'returns an array of track instance' do
|
25
|
+
expect(add).to be_a(Track)
|
26
|
+
expect(add.persistent_id).to eq(new_persistent_id)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '.pause' do
|
31
|
+
it 'calls pause.scpt' do
|
32
|
+
player.should_receive(:execute_script).with('player/pause.scpt')
|
33
|
+
player.pause
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe '.stop' do
|
38
|
+
it 'calls stop.scpt' do
|
39
|
+
player.should_receive(:execute_script).with('player/stop.scpt')
|
40
|
+
player.stop
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe '.playing?' do
|
45
|
+
subject { player.playing? }
|
46
|
+
context 'when iTunes plays a track' do
|
47
|
+
before { player.should_receive(:execute_script).with('player/player_state.scpt').and_return('playing') }
|
48
|
+
it { expect(subject).to be_true }
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'when iTunes stops a track' do
|
52
|
+
before { player.should_receive(:execute_script).with('player/player_state.scpt').and_return('stopped') }
|
53
|
+
it { expect(subject).to be_false }
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe '.paused?' do
|
58
|
+
subject { player.paused? }
|
59
|
+
context 'when iTunes plays a track' do
|
60
|
+
before { player.should_receive(:execute_script).with('player/player_state.scpt').and_return('playing') }
|
61
|
+
it { expect(subject).to be_false }
|
62
|
+
end
|
63
|
+
|
64
|
+
context 'when iTunes pauses' do
|
65
|
+
before { player.should_receive(:execute_script).with('player/player_state.scpt').and_return('paused') }
|
66
|
+
it { expect(subject).to be_true }
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe '.stopped?' do
|
71
|
+
subject { player.stopped? }
|
72
|
+
context 'when iTunes plays a track' do
|
73
|
+
before { player.should_receive(:execute_script).with('player/player_state.scpt').and_return('playing') }
|
74
|
+
it { expect(subject).to be_false }
|
75
|
+
end
|
76
|
+
|
77
|
+
context 'when iTunes stops a track' do
|
78
|
+
before { player.should_receive(:execute_script).with('player/player_state.scpt').and_return('stopped') }
|
79
|
+
it { expect(subject).to be_true }
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe '.next_track' do
|
84
|
+
before do
|
85
|
+
player.should_receive(:execute_script).
|
86
|
+
with('player/next_track.scpt').and_return(new_persistent_id)
|
87
|
+
Track.should_receive(:find_by).
|
88
|
+
with(persistent_id: new_persistent_id).
|
89
|
+
and_return([Track.new(persistent_id: new_persistent_id)])
|
90
|
+
end
|
91
|
+
let(:new_persistent_id) { 'foo' }
|
92
|
+
|
93
|
+
it 'plays a next track' do
|
94
|
+
next_track = player.next_track
|
95
|
+
expect(next_track.persistent_id).to eq(new_persistent_id)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe '.prev_track' do
|
100
|
+
before do
|
101
|
+
player.should_receive(:execute_script).
|
102
|
+
with('player/prev_track.scpt').and_return(new_persistent_id)
|
103
|
+
Track.should_receive(:find_by).
|
104
|
+
with(persistent_id: new_persistent_id).
|
105
|
+
and_return([Track.new(persistent_id: new_persistent_id)])
|
106
|
+
end
|
107
|
+
let(:new_persistent_id) { 'foo' }
|
108
|
+
|
109
|
+
it 'plays a previous track' do
|
110
|
+
next_track = player.prev_track
|
111
|
+
expect(next_track.persistent_id).to eq(new_persistent_id)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
data/spec/itunes/track_spec.rb
CHANGED
@@ -8,7 +8,7 @@ describe Track do
|
|
8
8
|
let(:track) do
|
9
9
|
Track.new(persistent_id: base_persistent_id, name: base_name, album: base_album)
|
10
10
|
end
|
11
|
-
let(:app) {
|
11
|
+
let(:app) { Itunes }
|
12
12
|
let(:base_persistent_id) { 'foo' }
|
13
13
|
let(:base_name) { 'base name' }
|
14
14
|
let(:base_album) { 'base album' }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: itunes-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ryo katsuma
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -169,21 +169,24 @@ files:
|
|
169
169
|
- Rakefile
|
170
170
|
- itunes-client.gemspec
|
171
171
|
- lib/itunes-client.rb
|
172
|
-
- lib/itunes/
|
172
|
+
- lib/itunes/player.rb
|
173
173
|
- lib/itunes/track.rb
|
174
174
|
- lib/itunes/util.rb
|
175
175
|
- lib/itunes/util/executor.rb
|
176
176
|
- lib/itunes/version.rb
|
177
|
-
- scripts/
|
178
|
-
- scripts/
|
179
|
-
- scripts/
|
177
|
+
- scripts/player/add.scpt
|
178
|
+
- scripts/player/next_track.scpt
|
179
|
+
- scripts/player/pause.scpt
|
180
|
+
- scripts/player/player_state.scpt
|
181
|
+
- scripts/player/prev_track.scpt
|
182
|
+
- scripts/player/stop.scpt
|
180
183
|
- scripts/track/convert.scpt
|
181
184
|
- scripts/track/current_track.scpt
|
182
185
|
- scripts/track/delete.scpt
|
183
186
|
- scripts/track/finder.tmpl.scpt
|
184
187
|
- scripts/track/play.scpt
|
185
188
|
- scripts/track/updater.tmpl.scpt
|
186
|
-
- spec/itunes/
|
189
|
+
- spec/itunes/player_spec.rb
|
187
190
|
- spec/itunes/track_spec.rb
|
188
191
|
- spec/itunes/util/executor_spec.rb
|
189
192
|
- spec/spec_helper.rb
|
@@ -213,7 +216,7 @@ specification_version: 4
|
|
213
216
|
summary: itunes-client provides a high level API like ActiveRecord style to control
|
214
217
|
your iTunes.
|
215
218
|
test_files:
|
216
|
-
- spec/itunes/
|
219
|
+
- spec/itunes/player_spec.rb
|
217
220
|
- spec/itunes/track_spec.rb
|
218
221
|
- spec/itunes/util/executor_spec.rb
|
219
222
|
- spec/spec_helper.rb
|
data/lib/itunes/application.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'singleton'
|
3
|
-
|
4
|
-
require 'itunes/track'
|
5
|
-
require 'itunes/util'
|
6
|
-
|
7
|
-
module Itunes
|
8
|
-
class Application
|
9
|
-
include Singleton
|
10
|
-
include Itunes::Util::Executor
|
11
|
-
|
12
|
-
attr_accessor :tracks
|
13
|
-
|
14
|
-
def add(file_path)
|
15
|
-
persistent_id = execute_script("#{script_dir}/add.scpt", file_path)
|
16
|
-
Track.find_by(persistent_id: persistent_id).first
|
17
|
-
end
|
18
|
-
|
19
|
-
def stop
|
20
|
-
execute_script("#{script_dir}/stop.scpt")
|
21
|
-
self
|
22
|
-
end
|
23
|
-
|
24
|
-
def pause
|
25
|
-
execute_script("#{script_dir}/pause.scpt")
|
26
|
-
self
|
27
|
-
end
|
28
|
-
|
29
|
-
private
|
30
|
-
def script_dir
|
31
|
-
'application'
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,49 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
require 'itunes-client'
|
4
|
-
|
5
|
-
include Itunes
|
6
|
-
|
7
|
-
describe Application do
|
8
|
-
let(:app) { described_class.instance }
|
9
|
-
|
10
|
-
describe '#initialize' do
|
11
|
-
it 'raises an Error' do
|
12
|
-
expect { described_class.new }.to raise_error
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
describe '#add' do
|
17
|
-
subject(:add) { app.add(file_name) }
|
18
|
-
|
19
|
-
let(:file_name) { 'foo.wav' }
|
20
|
-
let(:new_persistent_id) { 'foo' }
|
21
|
-
|
22
|
-
before do
|
23
|
-
app.should_receive(:execute_script).
|
24
|
-
with('application/add.scpt', file_name).and_return(new_persistent_id)
|
25
|
-
Track.should_receive(:find_by).
|
26
|
-
with(persistent_id: new_persistent_id).
|
27
|
-
and_return([Track.new(persistent_id: new_persistent_id)])
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'returns an array of track instance' do
|
31
|
-
expect(add).to be_a(Track)
|
32
|
-
expect(add.persistent_id).to eq(new_persistent_id)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe '#pause' do
|
37
|
-
it 'calls pause.scpt' do
|
38
|
-
app.should_receive(:execute_script).with('application/pause.scpt')
|
39
|
-
app.pause
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe '#stop' do
|
44
|
-
it 'calls stop.scpt' do
|
45
|
-
app.should_receive(:execute_script).with('application/stop.scpt')
|
46
|
-
app.stop
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|