alacit 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  ## AlacIt
2
2
 
3
- Apple Lossless conversion utility. Converts FLAC and WAV audio files to Apple Lossless (ALAC) files in M4A format for importation into iTunes, iPhones, iPads, and iPods.
3
+ Apple Lossless conversion utility. Converts APE, FLAC, and WAV audio files to Apple Lossless (ALAC) files in M4A format for importation into iTunes, iPhones, iPads, and iPods.
4
4
 
5
5
  * Very Fast. An entire album in 10 to 15 seconds.
6
6
  * No quality loss
@@ -10,7 +10,7 @@ Apple Lossless conversion utility. Converts FLAC and WAV audio files to Apple L
10
10
 
11
11
  ### Install
12
12
 
13
- Ensure you have Ruby 1.9.2 installed, and [FFmpeg](http://ffmpeg.org/), then type:
13
+ Ensure you have Ruby 1.9.2+ installed, and [FFmpeg](http://ffmpeg.org/), then type:
14
14
 
15
15
  gem install alacit
16
16
 
@@ -18,7 +18,7 @@ Ensure you have Ruby 1.9.2 installed, and [FFmpeg](http://ffmpeg.org/), then typ
18
18
 
19
19
  #### Single Files
20
20
 
21
- Convert a single file. This outputs a file called `song.m4v` in same directory.
21
+ Convert a single file. This outputs a file called `song.m4v` in same directory:
22
22
 
23
23
  alacit song.flac
24
24
 
@@ -28,7 +28,7 @@ Convert several individual files:
28
28
 
29
29
  #### Entire Directories
30
30
 
31
- Convert a single directory. This finds and converts all `.flac` and `.wav` files in that directory:
31
+ Convert a single directory. This finds and converts all `.ape`, `.flac`, and `.wav` files in that directory:
32
32
 
33
33
  alacit ~/Music/Artist/Album
34
34
 
@@ -53,8 +53,8 @@ AlacIt won't overwrite existing files by default. If you need to, just force ove
53
53
 
54
54
  ### Dependencies
55
55
 
56
- * **Ruby 1.9.2**
57
- * **FFmpeg 0.8.0+** - As far back as 0.5.0 should work too.
56
+ * **Ruby 1.9.2+**
57
+ * **FFmpeg 0.8.0+**
58
58
  * **On OS X:** Get [Homebrew](http://mxcl.github.com/homebrew/) and type `brew install ffmpeg`.
59
59
  * **On Linux:** `sudo apt-get install flac ffmpeg`
60
60
  * **Windows:** [untested]
@@ -3,11 +3,11 @@
3
3
  # AlacIt
4
4
  # by: Russell Brooks (russbrooks.com)
5
5
  #
6
- # Converts FLAC and WAV files to ALAC (Apple Lossless Audio Codec) files in
7
- # an M4A container for importation into iTunes. Fast. No loss in quality.
8
- # Basic metadata ports as well. Puts converted files in same dir as source.
6
+ # Converts APE, FLAC, and WAV files to ALAC (Apple Lossless Audio Codec) files in
7
+ # an M4A container for importation into iTunes. Fast. No loss in quality.
8
+ # Basic metadata ports as well. Puts converted files in same dir as source.
9
9
  #
10
- # Dependency: FFmpeg 0.8.0+. But as far back as 0.5.0 should work too.
10
+ # Dependency: FFmpeg 0.8.0+.
11
11
  # On OS X : Get Homebrew and type `brew install ffmpeg`.
12
12
  # On Linux: `sudo apt-get install flac ffmpeg`
13
13
  # Windows : [untested]
@@ -40,14 +40,14 @@ module AlacIt
40
40
  end
41
41
 
42
42
  def convert_dir(source_dir)
43
- source_glob = File.join(source_dir, '*.{flac,wav}')
43
+ source_glob = File.join(source_dir, '*.{ape,flac,wav}')
44
44
 
45
45
  unless Dir.glob(source_glob).empty?
46
46
  Dir.glob(source_glob) do |file|
47
47
  m4a_file = file.chomp(File.extname(file)) + '.m4a'
48
48
 
49
49
  if !File.exists?(m4a_file) || @options[:force]
50
- command = 'ffmpeg -y -i "' + file + '" -acodec alac "' + m4a_file + '"'
50
+ command = 'ffmpeg -y -i "' + file + '" -c:a alac "' + m4a_file + '"'
51
51
  stdout_str, stderr_str, status = Open3.capture3(command)
52
52
 
53
53
  if status.success?
@@ -63,13 +63,13 @@ module AlacIt
63
63
  end
64
64
  end
65
65
  else
66
- $stderr.puts 'Error: No FLAC or WAV files found.'
66
+ $stderr.puts 'Error: No APE, FLAC, or WAV files found.'
67
67
  return
68
68
  end
69
69
  end
70
70
 
71
71
  def convert_file(file)
72
- if File.extname(file) =~ /(\.flac|\.wav)/i
72
+ if File.extname(file) =~ /(\.ape|\.flac|\.wav)/i
73
73
  if File.exists? file
74
74
  m4a_file = file.chomp(File.extname(file)) + '.m4a'
75
75
 
@@ -93,7 +93,7 @@ module AlacIt
93
93
  return
94
94
  end
95
95
  else
96
- $stderr.puts "Error: #{file}: Not a FLAC or WAV file."
96
+ $stderr.puts "Error: #{file}: Not an APE, FLAC, or WAV file."
97
97
  return
98
98
  end
99
99
  end
@@ -1,3 +1,3 @@
1
1
  module AlacIt
2
- VERSION = '0.0.3'
2
+ VERSION = '0.1.0'
3
3
  end
Binary file
Binary file
Binary file
@@ -35,12 +35,22 @@ class AlacItTest < MiniTest::Unit::TestCase
35
35
  ARGV.clear
36
36
  end
37
37
 
38
+ def test_single_ape
39
+ FileUtils.cp 'test/fixtures/test.ape', @temp_dir
40
+ ARGV.clear
41
+ ARGV << File.join(@temp_dir, 'test.ape')
42
+ out, = capture_io { @app.convert }
43
+ assert_match /test\.ape converted/, out
44
+ assert_equal File.exists?(File.join(@temp_dir, 'test.m4a')), true
45
+ end
46
+
38
47
  def test_single_flac
39
48
  FileUtils.cp 'test/fixtures/test.flac', @temp_dir
40
49
  ARGV.clear
41
50
  ARGV << File.join(@temp_dir, 'test.flac')
42
51
  out, = capture_io { @app.convert }
43
52
  assert_match /test\.flac converted/, out
53
+ assert_equal File.exists?(File.join(@temp_dir, 'test.m4a')), true
44
54
  end
45
55
 
46
56
  def test_single_wav
@@ -49,6 +59,7 @@ class AlacItTest < MiniTest::Unit::TestCase
49
59
  ARGV << File.join(@temp_dir, 'test2.wav')
50
60
  out, = capture_io { @app.convert }
51
61
  assert_match /test2\.wav converted/, out
62
+ assert_equal File.exists?(File.join(@temp_dir, 'test2.m4a')), true
52
63
  end
53
64
 
54
65
  def test_mixed_directory
@@ -59,6 +70,8 @@ class AlacItTest < MiniTest::Unit::TestCase
59
70
  out, = capture_io { @app.convert }
60
71
  assert_match /test\.flac converted/, out
61
72
  assert_match /test2\.wav converted/, out
73
+ assert_equal File.exists?(File.join(@temp_dir, 'test.m4a')), true
74
+ assert_equal File.exists?(File.join(@temp_dir, 'test2.m4a')), true
62
75
  end
63
76
 
64
77
  def test_single_flac_file_exists
@@ -77,6 +90,7 @@ class AlacItTest < MiniTest::Unit::TestCase
77
90
  ARGV << '--force' << File.join(@temp_dir, 'test.flac')
78
91
  out, = capture_io { @app.convert }
79
92
  assert_match /test\.flac converted/, out
93
+ assert_equal File.exists?(File.join(@temp_dir, 'test.m4a')), true
80
94
  end
81
95
 
82
96
  def test_mixed_directory_file_exists
@@ -88,6 +102,7 @@ class AlacItTest < MiniTest::Unit::TestCase
88
102
  out, err = capture_io { @app.convert }
89
103
  assert_match /test\.m4a exists/, err
90
104
  assert_match /test2\.wav converted/, out
105
+ assert_equal File.exists?(File.join(@temp_dir, 'test2.m4a')), true
91
106
  end
92
107
 
93
108
  def test_mixed_directory_file_exists_force_overwrite
@@ -99,6 +114,8 @@ class AlacItTest < MiniTest::Unit::TestCase
99
114
  out, = capture_io { @app.convert }
100
115
  assert_match /test\.flac converted/, out
101
116
  assert_match /test2\.wav converted/, out
117
+ assert_equal File.exists?(File.join(@temp_dir, 'test.m4a')), true
118
+ assert_equal File.exists?(File.join(@temp_dir, 'test2.m4a')), true
102
119
  end
103
120
 
104
121
  def test_standard_exception_handling_invalid_option
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alacit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-12 00:00:00.000000000Z
12
+ date: 2012-04-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70364347268940 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,12 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70364347268940
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  description: Quickly convert entire directories of FLAC and WAV files to Apple Lossless
26
31
  (ALAC) for importation into iTunes, iPhones, iPads, and iPods.
27
32
  email: me@russbrooks.com
@@ -40,7 +45,11 @@ files:
40
45
  - lib/alacit.rb
41
46
  - lib/application.rb
42
47
  - lib/version.rb
48
+ - pkg/alacit-0.0.2.gem
49
+ - pkg/alacit-0.0.3.gem
50
+ - pkg/alacit-0.1.0.gem
43
51
  - test/converter_test.rb
52
+ - test/fixtures/test.ape
44
53
  - test/fixtures/test.flac
45
54
  - test/fixtures/test.m4a
46
55
  - test/fixtures/test2.wav
@@ -64,12 +73,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
73
  version: '0'
65
74
  requirements: []
66
75
  rubyforge_project:
67
- rubygems_version: 1.8.11
76
+ rubygems_version: 1.8.21
68
77
  signing_key:
69
78
  specification_version: 3
70
79
  summary: FLAC and WAV to Apple Lossless (ALAC) batch conversion utility.
71
80
  test_files:
72
81
  - test/converter_test.rb
82
+ - test/fixtures/test.ape
73
83
  - test/fixtures/test.flac
74
84
  - test/fixtures/test.m4a
75
85
  - test/fixtures/test2.wav