flacky 1.0.5 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,6 +6,7 @@ require 'thor'
6
6
 
7
7
  require 'flacky'
8
8
  require 'flacky/flac_metadata_importer'
9
+ require 'flacky/flac_track_zero_pad_stripper'
9
10
  require 'flacky/metadata_generator'
10
11
  require 'flacky/mp3_convertor'
11
12
 
@@ -49,6 +50,16 @@ module Flacky
49
50
  end
50
51
  end
51
52
 
53
+ desc "strip_pad [file ...]|[**/*.flac ...]", "Strip zero-padded track numbers in Flac files"
54
+ def strip_pad(*args)
55
+ args.each do |glob|
56
+ Dir.glob(glob).sort.each do |file|
57
+ say("Processing <#{file}>", :cyan)
58
+ Flacky::FlacTrackZeroPadStripper.new(file).strip!
59
+ end
60
+ end
61
+ end
62
+
52
63
  desc "to_mp3 [file ...]|[**/*.flac ...] [options]", "Convert Flac files to MP3 files"
53
64
  method_option :destination, :aliases => "-d",
54
65
  :desc => "Sets optional destination directory"
@@ -68,6 +79,12 @@ module Flacky
68
79
  args.each { |glob| convert_files(glob, mp3izer) }
69
80
  end
70
81
 
82
+ desc "version", "Print Flacky's version information"
83
+ def version
84
+ say "Flacky version #{Flacky::VERSION}"
85
+ end
86
+ map %w(-v --version) => :version
87
+
71
88
  private
72
89
 
73
90
  def convert_files(glob, mp3izer)
@@ -0,0 +1,33 @@
1
+ # -*- encoding: UTF-8 -*-
2
+
3
+ require 'flacky/flac_tagger'
4
+
5
+ module Flacky
6
+
7
+ class FlacTrackZeroPadStripper
8
+
9
+ def initialize(file)
10
+ @file = file
11
+ end
12
+
13
+ def strip!
14
+ number = fetch_tracknumber
15
+ return if number.nil?
16
+
17
+ if number.to_s =~ /^0\d/
18
+ FlacTagger.update(@file) do
19
+ tag 'TRACKNUMBER', number.to_s.sub(/^0/, '')
20
+ end
21
+ end
22
+ end
23
+
24
+ private
25
+
26
+ def fetch_tracknumber
27
+ tagger = FlacTagger.new(@file)
28
+ track = tagger.find(:tracknumber)
29
+ tagger.cleanup
30
+ track
31
+ end
32
+ end
33
+ end
@@ -1,3 +1,3 @@
1
1
  module Flacky
2
- VERSION = "1.0.5"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flacky
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-05 00:00:00.000000000 Z
12
+ date: 2013-02-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -160,6 +160,7 @@ files:
160
160
  - lib/flacky/core_ext.rb
161
161
  - lib/flacky/flac_metadata_importer.rb
162
162
  - lib/flacky/flac_tagger.rb
163
+ - lib/flacky/flac_track_zero_pad_stripper.rb
163
164
  - lib/flacky/metadata_generator.rb
164
165
  - lib/flacky/mp3_convertor.rb
165
166
  - lib/flacky/mp3_tagger.rb