kagu 0.2.4 → 0.3.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/VERSION +1 -1
- data/kagu.gemspec +1 -1
- data/lib/kagu/track.rb +10 -2
- data/spec/kagu/library_spec.rb +0 -7
- data/spec/kagu/track_spec.rb +37 -0
- data/spec/kagu/tracks_spec.rb +9 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f9b5cf760c412efb5d62360c290a625dc55b272f
|
4
|
+
data.tar.gz: 43467eddc6767a1fe8d475a66ecca2b592e28317
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 665ffd39957655f18c8f036826efbea3b91c30ef993b6f08b6c591f2c608efe3a9a26c1010327dc611e7394c5151a73bcadadb6a0c0a3756f936be212e23260d
|
7
|
+
data.tar.gz: 642792a811a50a7d009b4ef9a9a2a19425768a4dac835336cad885c09a23b0345fb1ea2a33df04049e3362f1556ba5f3214a95dc26fa399bd8d27416278b3403
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/kagu.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.add_dependency 'applescript', '>= 1.0', '< 2.0'
|
21
21
|
s.add_dependency 'htmlentities', '>= 4.3.0', '< 4.4.0'
|
22
22
|
|
23
|
-
s.add_development_dependency 'byebug', '>= 3.2.0', '< 3.
|
23
|
+
s.add_development_dependency 'byebug', '>= 3.2.0', '< 3.6.0'
|
24
24
|
s.add_development_dependency 'rake', '>= 10.3.0', '< 10.4.0'
|
25
25
|
s.add_development_dependency 'rspec', '>= 3.1.0', '< 3.2.0'
|
26
26
|
end
|
data/lib/kagu/track.rb
CHANGED
@@ -8,7 +8,7 @@ module Kagu
|
|
8
8
|
MANDATORY_ATTRIBUTES = %w(added_at id length path)
|
9
9
|
IS_MAC_OS = RUBY_PLATFORM =~ /darwin/
|
10
10
|
|
11
|
-
attr_reader :added_at, :album, :artist, :genre, :id, :length, :path, :title
|
11
|
+
attr_reader :added_at, :album, :artist, :genre, :id, :length, :path, :title, :year
|
12
12
|
|
13
13
|
def initialize(attributes = {})
|
14
14
|
super
|
@@ -80,7 +80,7 @@ module Kagu
|
|
80
80
|
end
|
81
81
|
|
82
82
|
def itunes_location=(value)
|
83
|
-
self.path = CGI.unescape(html_entities_decode(value).gsub('+', '%2B')).gsub(/\Afile:\/\/localhost
|
83
|
+
self.path = CGI.unescape(html_entities_decode(value).gsub('+', '%2B')).gsub(/\Afile:\/\/(localhost)?/, '')
|
84
84
|
self.path = path.encode('UTF-8', 'UTF-8-MAC') if IS_MAC_OS
|
85
85
|
end
|
86
86
|
|
@@ -96,6 +96,10 @@ module Kagu
|
|
96
96
|
self.id = value
|
97
97
|
end
|
98
98
|
|
99
|
+
def itunes_year=(value)
|
100
|
+
self.year = value
|
101
|
+
end
|
102
|
+
|
99
103
|
def length=(value)
|
100
104
|
@length = value.to_s =~ /\A[0-9]+\z/ ? value.to_i : nil
|
101
105
|
end
|
@@ -108,6 +112,10 @@ module Kagu
|
|
108
112
|
@title = value.to_s.squish.presence
|
109
113
|
end
|
110
114
|
|
115
|
+
def year=(value)
|
116
|
+
@year = value.to_s =~ /\A\d{,4}\z/ ? value.to_i : nil
|
117
|
+
end
|
118
|
+
|
111
119
|
end
|
112
120
|
|
113
121
|
end
|
data/spec/kagu/library_spec.rb
CHANGED
@@ -40,13 +40,6 @@ describe Kagu::Library do
|
|
40
40
|
expect(library.tracks.library).to be(library)
|
41
41
|
end
|
42
42
|
|
43
|
-
it 'path must exists and not include UTF-8-MAC charset' do
|
44
|
-
library.tracks.each do |track|
|
45
|
-
expect(track.path).not_to include("\u{65}\u{301}")
|
46
|
-
expect(File.file?(track.path)).to be(true)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
|
50
43
|
end
|
51
44
|
|
52
45
|
end
|
data/spec/kagu/track_spec.rb
CHANGED
@@ -228,4 +228,41 @@ describe Kagu::Track do
|
|
228
228
|
|
229
229
|
end
|
230
230
|
|
231
|
+
describe '#year' do
|
232
|
+
|
233
|
+
it 'is an integer' do
|
234
|
+
expect(track.year).to be_an(Integer)
|
235
|
+
end
|
236
|
+
|
237
|
+
it 'is correct' do
|
238
|
+
expect(track.year.to_s).to match(/\A\d{4}\z/)
|
239
|
+
end
|
240
|
+
|
241
|
+
it 'is nil if negative' do
|
242
|
+
track.send(:year=, -1)
|
243
|
+
expect(track.year).to be_nil
|
244
|
+
end
|
245
|
+
|
246
|
+
it 'is nil if invalid' do
|
247
|
+
track.send(:year=, 20434)
|
248
|
+
expect(track.year).to be_nil
|
249
|
+
end
|
250
|
+
|
251
|
+
it 'can be < 1000' do
|
252
|
+
track.send(:year=, 942)
|
253
|
+
expect(track.year).to be(942)
|
254
|
+
end
|
255
|
+
|
256
|
+
it 'can be set as string' do
|
257
|
+
track.send(:year=, '1984')
|
258
|
+
expect(track.year).to be(1984)
|
259
|
+
end
|
260
|
+
|
261
|
+
it 'is nil if string is invalid' do
|
262
|
+
track.send(:year=, '1984 ')
|
263
|
+
expect(track.year).to be_nil
|
264
|
+
end
|
265
|
+
|
266
|
+
end
|
267
|
+
|
231
268
|
end
|
data/spec/kagu/tracks_spec.rb
CHANGED
@@ -24,6 +24,8 @@ describe Kagu::Tracks do
|
|
24
24
|
expect(track.path).to include('Music')
|
25
25
|
expect(track.title).to be_a(String)
|
26
26
|
expect(track.title).to be_present
|
27
|
+
expect(track.year).to be_an(Integer)
|
28
|
+
expect(track.year.to_s).to match(/\A\d{4}\z/)
|
27
29
|
end
|
28
30
|
end
|
29
31
|
|
@@ -37,6 +39,13 @@ describe Kagu::Tracks do
|
|
37
39
|
expect(tracks.each {}).to be_nil
|
38
40
|
end
|
39
41
|
|
42
|
+
it 'all tracks must exists and path should not include UTF-8-MAC charset' do
|
43
|
+
library.tracks.each do |track|
|
44
|
+
expect(track.path).not_to include("\u{65}\u{301}")
|
45
|
+
expect(File.file?(track.path)).to be(true)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
40
49
|
end
|
41
50
|
|
42
51
|
describe '#library' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kagu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexis Toulotte
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -79,7 +79,7 @@ dependencies:
|
|
79
79
|
version: 3.2.0
|
80
80
|
- - "<"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 3.
|
82
|
+
version: 3.6.0
|
83
83
|
type: :development
|
84
84
|
prerelease: false
|
85
85
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -89,7 +89,7 @@ dependencies:
|
|
89
89
|
version: 3.2.0
|
90
90
|
- - "<"
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version: 3.
|
92
|
+
version: 3.6.0
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
94
|
name: rake
|
95
95
|
requirement: !ruby/object:Gem::Requirement
|