flac2mp3 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,7 +1,12 @@
1
+ == 0.2.6 2008-06-25
2
+
3
+ * 1 enhancement:
4
+ * Can now optionally delete the original FLAC file after conversion.
5
+
1
6
  == 0.2.5 2008-05-12
2
7
 
3
8
  * 1 bug fix:
4
- * Composer now actually carried over from FLAC to MP# tags, not just thought to be.
9
+ * Composer now actually carried over from FLAC to MP3 tags, not just thought to be.
5
10
 
6
11
  * 3 enhancements:
7
12
  * Compilation flag carried over.
data/bin/flac2mp3 CHANGED
@@ -11,10 +11,11 @@ end
11
11
 
12
12
  require 'optparse'
13
13
  require 'flac2mp3'
14
+ require 'flac2mp3/version'
14
15
 
15
16
  # NOTE: the option -p/--path= is given as an example, and should probably be replaced in your application.
16
17
 
17
- OPTIONS = {}
18
+ OPTIONS = { :delete => false }
18
19
  MANDATORY_OPTIONS = %w[]
19
20
 
20
21
  parser = OptionParser.new do |opts|
@@ -26,6 +27,9 @@ BANNER
26
27
  opts.separator ''
27
28
  opts.on('-v', '--version',
28
29
  "Show the #{File.basename($0)} version number and exit") { puts "flac2mp3 #{Flac2mp3::VERSION::STRING}"; exit }
30
+ opts.on('-d', '--[no-]delete',
31
+ "Delete the original file after conversion") { |delete| OPTIONS[:delete] = delete }
32
+
29
33
  opts.on('-h', '--help',
30
34
  'Show this help message.') { puts opts; exit }
31
35
  opts.parse!(ARGV)
@@ -43,4 +47,4 @@ unless filename
43
47
  exit
44
48
  end
45
49
 
46
- Flac2mp3.convert(filename.dup)
50
+ Flac2mp3.convert(filename.dup, OPTIONS[:delete])
data/lib/flac2mp3.rb CHANGED
@@ -5,7 +5,7 @@ require 'mp3info'
5
5
 
6
6
  module Flac2mp3
7
7
  class << self
8
- def convert(filename)
8
+ def convert(filename, delete_flac = false)
9
9
  raise TypeError, "'#{filename}' is not a file" unless FileTest.file?(filename)
10
10
  filename.extend(Flac2mp3::StringExtensions)
11
11
  out_filename = output_filename(filename)
@@ -14,6 +14,8 @@ module Flac2mp3
14
14
  system "flac -c -d #{filename.safequote} | lame --preset standard - #{out_filename.safequote}"
15
15
 
16
16
  mp3data(out_filename, flacdata(filename))
17
+
18
+ File.delete(filename) if delete_flac
17
19
  end
18
20
 
19
21
  def output_filename(filename)
@@ -2,7 +2,7 @@ module Flac2mp3 #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 5
5
+ TINY = 6
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
@@ -16,6 +16,10 @@ describe 'flac2mp3 command' do
16
16
 
17
17
  before :each do
18
18
  Flac2mp3.stubs(:convert)
19
+
20
+ [:ARGV, :OPTIONS, :MANDATORY_OPTIONS].each do |const|
21
+ Object.send(:remove_const, const) if Object.const_defined?(const)
22
+ end
19
23
  end
20
24
 
21
25
  it 'should exist' do
@@ -28,7 +32,7 @@ describe 'flac2mp3 command' do
28
32
  end
29
33
 
30
34
  it 'should pass the filename to Flac2mp3 for conversion' do
31
- Flac2mp3.expects(:convert).with('blah')
35
+ Flac2mp3.expects(:convert).with('blah', anything)
32
36
  run_command('blah')
33
37
  end
34
38
 
@@ -37,4 +41,24 @@ describe 'flac2mp3 command' do
37
41
  filename.expects(:dup).returns(filename)
38
42
  run_command(filename)
39
43
  end
44
+
45
+ it 'should pass on a true flac-deletion option if specified on the command line (using --delete)' do
46
+ Flac2mp3.expects(:convert).with(anything, true)
47
+ run_command('blah', '--delete')
48
+ end
49
+
50
+ it 'should pass on a false flac-deletion option if specified on the command line (using --no-delete)' do
51
+ Flac2mp3.expects(:convert).with(anything, false)
52
+ run_command('blah', '--no-delete')
53
+ end
54
+
55
+ it 'should pass on a true flac-deletion option if specified on the command line (using -d)' do
56
+ Flac2mp3.expects(:convert).with(anything, true)
57
+ run_command('blah', '-d')
58
+ end
59
+
60
+ it 'should pass on a false flac-deletion option if nothing specified on the command line' do
61
+ Flac2mp3.expects(:convert).with(anything, false)
62
+ run_command('blah')
63
+ end
40
64
  end
@@ -27,6 +27,7 @@ describe Flac2mp3, 'when converting' do
27
27
  Flac2mp3.stubs(:system)
28
28
  Flac2mp3.stubs(:flacdata)
29
29
  Flac2mp3.stubs(:mp3data)
30
+ File.stubs(:delete)
30
31
  end
31
32
 
32
33
  it 'should require a filename' do
@@ -48,6 +49,7 @@ describe Flac2mp3, 'when converting and given a filename belonging to a regular
48
49
  before :each do
49
50
  @filename = 'blah.flac'
50
51
  FileTest.stubs(:file?).with(@filename).returns(true)
52
+ File.stubs(:delete)
51
53
  @output_filename = 'blah.mp3'
52
54
  Flac2mp3.stubs(:output_filename).with(@filename).returns(@output_filename)
53
55
  Flac2mp3.stubs(:system)
@@ -90,6 +92,25 @@ describe Flac2mp3, 'when converting and given a filename belonging to a regular
90
92
  Flac2mp3.expects(:mp3data).with(@output_filename, @flacdata)
91
93
  Flac2mp3.convert(@filename)
92
94
  end
95
+
96
+ it 'should accept an option to delete the flac' do
97
+ lambda { Flac2mp3.convert('blah.flac', true) }.should_not raise_error(ArgumentError)
98
+ end
99
+
100
+ it 'should delete the original file if given a true value for the option' do
101
+ File.expects(:delete).with(@filename)
102
+ Flac2mp3.convert(@filename, true)
103
+ end
104
+
105
+ it 'should not delete the original file if given a false value for the option' do
106
+ File.expects(:delete).never
107
+ Flac2mp3.convert(@filename, false)
108
+ end
109
+
110
+ it 'should not delete the original file by default' do
111
+ File.expects(:delete).never
112
+ Flac2mp3.convert(@filename)
113
+ end
93
114
  end
94
115
 
95
116
  describe Flac2mp3, 'when converting and given a filename not belonging to a regular file' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flac2mp3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yossef Mendelssohn
@@ -9,11 +9,12 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-05-12 00:00:00 -05:00
12
+ date: 2008-06-25 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: flacinfo-rb
17
+ type: :runtime
17
18
  version_requirement:
18
19
  version_requirements: !ruby/object:Gem::Requirement
19
20
  requirements:
@@ -23,6 +24,7 @@ dependencies:
23
24
  version:
24
25
  - !ruby/object:Gem::Dependency
25
26
  name: ruby-mp3info
27
+ type: :runtime
26
28
  version_requirement:
27
29
  version_requirements: !ruby/object:Gem::Requirement
28
30
  requirements:
@@ -89,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
91
  requirements: []
90
92
 
91
93
  rubyforge_project: yomendel
92
- rubygems_version: 1.1.1
94
+ rubygems_version: 1.2.0
93
95
  signing_key:
94
96
  specification_version: 2
95
97
  summary: description of gem