scene-toolkit 0.1.6 → 0.1.7

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.
data/Rakefile CHANGED
@@ -1,18 +1,19 @@
1
+ # encoding: utf-8
1
2
  require 'rubygems'
2
3
  require 'rake'
3
4
 
4
5
  begin
5
6
  require 'jeweler'
6
7
  Jeweler::Tasks.new do |gem|
7
- gem.name = "scene-toolkit"
8
- gem.summary = %Q{Tool to assist scene MP3 library maintenance}
8
+ gem.name = "scene-toolkit"
9
+ gem.summary = %Q{Tool to assist scene MP3 library maintenance}
9
10
  gem.description = %Q{Tool to assist scene MP3 library maintenance}
10
- gem.email = "knoopx@gmail.com"
11
- gem.homepage = "http://github.com/knoopx/scene-toolkit"
12
- gem.authors = ["Víctor Martínez"]
13
- gem.add_dependency "optitron", "~> 0.0.9"
14
- gem.add_dependency "activesupport", "~> 2.3.5"
11
+ gem.email = "knoopx@gmail.com"
12
+ gem.homepage = "http://github.com/knoopx/scene-toolkit"
13
+ gem.authors = ["Víctor Martínez"]
14
+ gem.add_dependency "activesupport", "~> 3.0.0"
15
15
  gem.add_dependency "rainbow", "~> 1.1"
16
+ gem.add_dependency "optitron", "~> 0.2.2"
16
17
  end
17
18
  Jeweler::GemcutterTasks.new
18
19
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.6
1
+ 0.1.7
data/bin/scene-toolkit CHANGED
@@ -4,22 +4,4 @@ $:.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')))
4
4
 
5
5
  require 'scene_toolkit'
6
6
 
7
- Optitron.dispatch(SceneToolkit::CLI.new) do
8
- help
9
- cmd "verify", "Verify library or release. Executes all validations if none specified" do
10
- arg "directory", "The root directory to verify"
11
- opt "name", "Validate release name"
12
- opt "required-files", "Validate inclusion of required files"
13
- opt "playlist", "Validate playlist against existing files"
14
- opt "checksum", "Validate release CRC-32 checksum"
15
- opt "hide-valid", "Do not display valid releases"
16
- opt "move-invalid-to", "Move INVALID releases to specified folder", :type => :string
17
- opt "move-valid-to", "Move VALID releases to specified folder", :type => :string
18
- end
19
-
20
- cmd "repair", "Repair releases" do
21
- arg "directory", "The root directory to repair"
22
- opt "playlist", "Repair wrong playlist or generate missing ones"
23
- opt "force", "Force the modification of existing files"
24
- end
25
- end
7
+ SceneToolkit::CLI.dispatch
data/lib/scene_toolkit.rb CHANGED
@@ -1,8 +1,7 @@
1
- gem "activesupport", "~> 2.3.5"
2
- require 'active_support'
1
+ gem "activesupport", "~> 3.0.0"
3
2
 
4
- module SceneToolkit
5
- require 'scene_toolkit/ext'
6
- require 'scene_toolkit/release'
7
- require 'scene_toolkit/cli'
8
- end
3
+ require 'active_support/all'
4
+
5
+ require 'scene_toolkit/ext/hash'
6
+ require 'scene_toolkit/release'
7
+ require 'scene_toolkit/cli'
@@ -1,152 +1,168 @@
1
+ # encoding: utf-8
2
+
1
3
  require 'fileutils'
2
4
 
3
5
  gem 'rainbow', "~> 1.1"
4
- gem "optitron", "~> 0.0.9"
6
+ gem "optitron", "~> 0.2.2"
5
7
 
6
8
  require 'optitron'
7
9
  require 'rainbow'
8
10
 
9
- class SceneToolkit::CLI
10
- def repair(directory, opts)
11
- opts.underscore_and_symbolize_keys!
12
-
13
- each_release(directory) do |release|
14
- if opts[:playlist]
15
- unless release.valid_playlist?
16
- puts release.name.foreground(:red)
17
- puts release.path
18
- print_errors(release)
19
-
20
- candidates = release.files.select { |f| %w(.nfo .m3u .sfv).include?(File.extname(f).downcase) }.group_by { |f| File.basename(f, '.*') }
21
- if candidates.none?
22
- puts " ✕ Unable to guess playlist filename".foreground(:red)
23
- next
24
- end
25
-
26
- playlist_filename = [candidates.max { |k, v| v.size }.first, ".m3u"].join
11
+ module SceneToolkit
12
+ class CLI < Optitron::CLI
13
+ desc "Repair releases"
14
+ opt "playlist", "Repair wrong playlist or generate missing ones"
15
+ opt "force", "Force the modification of existing files"
16
+
17
+ def repair(directory_string)
18
+ params.underscore_and_symbolize_keys!
19
+
20
+ each_release(directory_string) do |release|
21
+ if params[:playlist]
22
+ unless release.valid_playlist?
23
+ puts release.name.foreground(:red)
24
+ puts release.path
25
+ print_errors(release)
26
+
27
+ candidates = release.files.select { |f| %w(.nfo .m3u .sfv).include?(File.extname(f).downcase) }.group_by { |f| File.basename(f, '.*') }
28
+ if candidates.none?
29
+ puts " ✕ Unable to guess playlist filename".foreground(:red)
30
+ next
31
+ end
27
32
 
28
- playlist_path = File.join(release.path, playlist_filename)
29
- if File.exist?(playlist_path) and not opts[:force]
30
- puts " ✕ Playlist #{playlist_filename} already exists. Use --force to replace it.".foreground(:red)
31
- else
32
- puts " Generating new playlist: #{playlist_filename}".foreground(:yellow)
33
- File.open(playlist_path, "w") do |playlist_file|
34
- release.mp3_files.map { |f| File.basename(f) }.each do |mp3_file|
35
- playlist_file.puts mp3_file
33
+ playlist_filename = [candidates.max { |k, v| v.size }.first, ".m3u"].join
34
+
35
+ playlist_path = File.join(release.path, playlist_filename)
36
+ if File.exist?(playlist_path) and not params[:force]
37
+ puts " Playlist #{playlist_filename} already exists. Use --force to replace it.".foreground(:red)
38
+ else
39
+ puts " ■ Generating new playlist: #{playlist_filename}".foreground(:yellow)
40
+ File.open(playlist_path, "w") do |playlist_file|
41
+ release.mp3_files.map { |f| File.basename(f) }.each do |mp3_file|
42
+ playlist_file.puts mp3_file
43
+ end
36
44
  end
37
45
  end
46
+ puts
38
47
  end
39
- puts
40
48
  end
41
49
  end
42
50
  end
43
- end
44
-
45
- def verify(directory, opts)
46
- opts.underscore_and_symbolize_keys!
47
- validations = []
48
- SceneToolkit::Release::VALIDATIONS.each do |validation|
49
- validations << validation if opts.delete(validation).eql?(true)
50
- end
51
51
 
52
- if validations.none?
53
- validations = SceneToolkit::Release::VALIDATIONS
54
- end
52
+ desc "Verify library or release. Executes all validations if none specified"
53
+ opt "name", "Validate release name"
54
+ opt "required-files", "Validate inclusion of required files"
55
+ opt "playlist", "Validate playlist against existing files"
56
+ opt "checksum", "Validate release CRC-32 checksum"
57
+ opt "hide-valid", "Do not display valid releases"
58
+ opt "move-invalid-to", "Move INVALID releases to specified folder", :type => :string
59
+ opt "move-valid-to", "Move VALID releases to specified folder", :type => :string
60
+
61
+ def verify(directory_string)
62
+ params.underscore_and_symbolize_keys!
63
+ validations = []
64
+ SceneToolkit::Release::VALIDATIONS.each do |validation|
65
+ validations << validation if params.delete(validation).eql?(true)
66
+ end
55
67
 
56
- invalid_target_directory = opts.delete(:move_invalid_to)
57
- unless invalid_target_directory.nil?
58
- raise ArgumentError.new("#{invalid_target_directory} does not exist") unless File.directory?(invalid_target_directory)
59
- end
68
+ if validations.none?
69
+ validations = SceneToolkit::Release::VALIDATIONS
70
+ end
60
71
 
61
- valid_target_directory = opts.delete(:move_valid_to)
62
- unless valid_target_directory.nil?
63
- raise ArgumentError.new("#{invalid_target_directory} does not exist") unless File.directory?(valid_target_directory)
64
- end
72
+ invalid_target_directory = params.delete(:move_invalid_to)
73
+ unless invalid_target_directory.nil?
74
+ raise ArgumentError.new("#{invalid_target_directory} does not exist") unless File.directory?(invalid_target_directory)
75
+ end
65
76
 
66
- release_count = 0
67
- valid_releases = 0
68
- invalid_releases = 0
77
+ valid_target_directory = params.delete(:move_valid_to)
78
+ unless valid_target_directory.nil?
79
+ raise ArgumentError.new("#{invalid_target_directory} does not exist") unless File.directory?(valid_target_directory)
80
+ end
69
81
 
70
- each_release(directory) do |release|
71
- release_count += 1
72
- if release.valid?(validations)
73
- valid_releases += 1
74
- if not opts[:hide_valid] or not valid_target_directory.nil?
75
- puts release.name.foreground(:green)
82
+ release_count = 0
83
+ valid_releases = 0
84
+ invalid_releases = 0
85
+
86
+ each_release(directory_string) do |release|
87
+ release_count += 1
88
+ if release.valid?(validations)
89
+ valid_releases += 1
90
+ if not params[:hide_valid] or not valid_target_directory.nil?
91
+ puts release.name.foreground(:green)
92
+ puts release.path
93
+ print_errors(release)
94
+ print_warnings(release)
95
+ unless valid_target_directory.nil?
96
+ move_release(release, valid_target_directory)
97
+ end
98
+ puts
99
+ end
100
+ else
101
+ invalid_releases += 1
102
+ puts release.name.foreground(:red)
76
103
  puts release.path
77
104
  print_errors(release)
78
105
  print_warnings(release)
79
- unless valid_target_directory.nil?
80
- move_release(release, valid_target_directory)
106
+ unless invalid_target_directory.nil?
107
+ move_release(release, invalid_target_directory)
81
108
  end
82
109
  puts
83
110
  end
84
- else
85
- invalid_releases += 1
86
- puts release.name.foreground(:red)
87
- puts release.path
88
- print_errors(release)
89
- print_warnings(release)
90
- unless invalid_target_directory.nil?
91
- move_release(release, invalid_target_directory)
92
- end
93
- puts
94
111
  end
95
- end
96
112
 
97
- puts
98
- puts "#{valid_releases} of #{release_count} releases valid".foreground(:yellow)
99
- puts "#{invalid_releases} of #{release_count} releases invalid".foreground(:yellow)
100
- end
113
+ puts
114
+ puts "#{valid_releases} of #{release_count} releases valid".foreground(:yellow)
115
+ puts "#{invalid_releases} of #{release_count} releases invalid".foreground(:yellow)
116
+ end
101
117
 
102
- protected
118
+ protected
103
119
 
104
- def print_errors(release)
105
- release.errors.each do |validation, errors|
106
- errors.each do |error|
107
- puts " ✕ [#{validation.to_s.humanize}] #{error}".foreground(:red)
120
+ def print_errors(release)
121
+ release.errors.each do |validation, errors|
122
+ errors.each do |error|
123
+ puts " ✕ [#{validation.to_s.humanize}] #{error}".foreground(:red)
124
+ end
108
125
  end
109
126
  end
110
- end
111
127
 
112
- def print_warnings(release)
113
- release.warnings.each do |validation, warnings|
114
- warnings.each do |warning|
115
- puts " ✕ [#{validation.to_s.humanize}] #{warning}".foreground(:yellow)
128
+ def print_warnings(release)
129
+ release.warnings.each do |validation, warnings|
130
+ warnings.each do |warning|
131
+ puts " ✕ [#{validation.to_s.humanize}] #{warning}".foreground(:yellow)
132
+ end
116
133
  end
117
134
  end
118
- end
119
135
 
120
- def move_release(release, destination)
121
- target_dir = File.join(destination, release.name)
122
- puts " ■ Moving release to #{target_dir}".foreground(:yellow)
123
-
124
- if File.directory?(target_dir)
125
- puts " ✕ Target directory already exists. Skipping.".foreground(:red)
126
- else
127
- begin
128
- FileUtils.mv(release.path, target_dir)
129
- rescue => e
130
- puts e.message.foreground(:red)
136
+ def move_release(release, destination)
137
+ target_dir = File.join(destination, release.name)
138
+ puts " ■ Moving release to #{target_dir}".foreground(:yellow)
139
+
140
+ if File.directory?(target_dir)
141
+ puts " ✕ Target directory already exists. Skipping.".foreground(:red)
142
+ else
143
+ begin
144
+ FileUtils.mv(release.path, target_dir)
145
+ rescue => e
146
+ puts e.message.foreground(:red)
147
+ end
131
148
  end
132
149
  end
133
- end
134
150
 
135
- def each_release(source, &block)
136
- raise ArgumentError unless block_given?
137
- raise ArgumentError("#{source} is not a directory") unless File.directory?(source)
151
+ def each_release(source, &block)
152
+ raise ArgumentError unless block_given?
153
+ raise ArgumentError("#{source} is not a directory") unless File.directory?(source)
138
154
 
139
- releases = []
155
+ releases = []
140
156
 
141
- Dir.glob(File.join(source, "**", "*.mp3")).each do |file|
142
- release_path = File.expand_path(File.dirname(file))
157
+ Dir.glob(File.join(source, "**", "*.mp3")).each do |file|
158
+ release_path = File.expand_path(File.dirname(file))
143
159
 
144
- unless releases.include?(release_path)
145
- release = SceneToolkit::Release.new(release_path)
146
- releases << release_path
147
- yield(release)
160
+ unless releases.include?(release_path)
161
+ release = SceneToolkit::Release.new(release_path)
162
+ releases << release_path
163
+ yield(release)
164
+ end
148
165
  end
149
166
  end
150
167
  end
151
-
152
168
  end
@@ -1,3 +1 @@
1
- module SceneToolkit::Ext
2
- require 'scene_toolkit/ext/hash'
3
- end
1
+ require 'scene_towolkit/ext/hash'
@@ -1,9 +1,14 @@
1
- module SceneToolkit::Ext::Hash
2
- def underscore_and_symbolize_keys!(specials={})
3
- self.each_key do |k|
4
- self[specials.has_key?(k) ? specials[k] : k.underscore] = self.delete(k)
1
+ module SceneToolkit
2
+ module Ext
3
+ module Hash
4
+ def underscore_and_symbolize_keys!
5
+ result = self.dup
6
+ self.each_key do |k|
7
+ result[k.underscore] = self[k]
8
+ end
9
+ result.symbolize_keys!
10
+ end
5
11
  end
6
- self.symbolize_keys!
7
12
  end
8
13
  end
9
14
 
@@ -1,118 +1,119 @@
1
1
  require 'digest/md5'
2
2
  require 'zlib'
3
3
 
4
- class SceneToolkit::Release
5
- REQUIRED_FILES = [:sfv, :nfo, :m3u]
6
- VALIDATIONS = [:name, :required_files, :playlist, :checksum]
7
-
8
- attr_accessor :name, :path, :uid
9
- attr_accessor :errors, :warnings
10
-
11
- def initialize(path)
12
- @path = path
13
- @name = File.basename(path)
14
- @uid = Digest::MD5.hexdigest(@name.downcase.gsub(/[^A-Z0-9]/i, ' ').gsub(/\s+/, ' '))
15
- @errors, @warnings = {}, {}
16
- end
17
-
18
- def valid?(validations = VALIDATIONS)
19
- @errors, @warnings = {}, {}
20
- validations.each do |validation|
21
- send("valid_#{validation}?")
4
+ module SceneToolkit
5
+ class Release
6
+ REQUIRED_FILES = [:sfv, :nfo, :m3u]
7
+ VALIDATIONS = [:name, :required_files, :playlist, :checksum]
8
+
9
+ attr_accessor :name, :path, :uid
10
+ attr_accessor :errors, :warnings
11
+
12
+ def initialize(path)
13
+ @path = path
14
+ @name = File.basename(path)
15
+ @uid = Digest::MD5.hexdigest(@name.downcase.gsub(/[^A-Z0-9]/i, ' ').gsub(/\s+/, ' '))
16
+ @errors, @warnings = {}, {}
22
17
  end
23
- @errors.sum { |validation, errors| errors.size }.zero?
24
- end
25
18
 
26
- def valid_required_files?
27
- @errors[:required_files], @warnings[:required_files] = [], []
28
- REQUIRED_FILES.each do |ext|
29
- file_count = send("#{ext}_files")
30
- @errors[:required_files] << "No *.#{ext} files found." if file_count.none?
31
- @warnings[:required_files] << "Multiple *.#{ext} files found." if file_count.size > 1
19
+ def valid?(validations = VALIDATIONS)
20
+ @errors, @warnings = {}, {}
21
+ validations.each do |validation|
22
+ send("valid_#{validation}?")
23
+ end
24
+ @errors.sum { |validation, errors| errors.size }.zero?
32
25
  end
33
- @warnings[:required_files].empty?
34
- end
35
26
 
36
- def valid_playlist?
37
- @errors[:playlist], @warnings[:playlist] = [], []
38
- if m3u_files.any?
39
- m3u_files.each do |playlist|
40
- File.read(playlist).split(/[\r\n]+/).each do |filename|
41
- filename.strip!
42
- next if filename.blank? or filename.start_with?("#") or filename.start_with?(";")
43
- @errors[:playlist] << "File #{filename} not found" unless File.exist?(File.join(@path, filename))
44
- end
27
+ def valid_required_files?
28
+ @errors[:required_files], @warnings[:required_files] = [], []
29
+ REQUIRED_FILES.each do |ext|
30
+ file_count = send("#{ext}_files")
31
+ @errors[:required_files] << "No *.#{ext} files found." if file_count.none?
32
+ @warnings[:required_files] << "Multiple *.#{ext} files found." if file_count.size > 1
45
33
  end
46
- else
47
- @errors[:playlist] << "No *.m3u files found"
34
+ @warnings[:required_files].empty?
48
35
  end
49
- @errors[:playlist].empty?
50
- end
51
-
52
- def valid_checksum?
53
- @errors[:checksum], @warnings[:checksum] = [], []
54
36
 
55
- if sfv_files.any?
56
- sfv_files.each do |sfv|
57
- files_to_check = files.inject({}) do |collection, file|
58
- collection[File.basename(file).downcase] = File.expand_path(file)
59
- collection
37
+ def valid_playlist?
38
+ @errors[:playlist], @warnings[:playlist] = [], []
39
+ if m3u_files.any?
40
+ m3u_files.each do |playlist|
41
+ File.read(playlist).split(/[\r\n]+/).each do |filename|
42
+ filename.strip!
43
+ next if filename.blank? or filename.start_with?("#") or filename.start_with?(";")
44
+ @errors[:playlist] << "File #{filename} not found" unless File.exist?(File.join(@path, filename))
45
+ end
60
46
  end
47
+ else
48
+ @errors[:playlist] << "No *.m3u files found"
49
+ end
50
+ @errors[:playlist].empty?
51
+ end
61
52
 
62
- matched_something = false
63
- File.read(sfv).split(/[\r\n]+/).each do |line|
64
- line.strip!
53
+ def valid_checksum?
54
+ @errors[:checksum], @warnings[:checksum] = [], []
65
55
 
66
- if (/(generated|raped)/i =~ line and not /MorGoTH/i =~ line)
67
- @warnings[:checksum] << "Possibly tampered SFV: #{line.strip}"
56
+ if sfv_files.any?
57
+ sfv_files.each do |sfv|
58
+ files_to_check = files.inject({}) do |collection, file|
59
+ collection[File.basename(file).downcase] = File.expand_path(file)
60
+ collection
68
61
  end
69
62
 
70
- if match = /^(.+?)\s+([\dA-Fa-f]{8})$/.match(line)
71
- matched_something = true
72
- filename, checksum = match.captures
73
- filename.strip!
74
- filename.downcase!
63
+ matched_something = false
64
+ File.read(sfv).split(/[\r\n]+/).each do |line|
65
+ line.strip!
66
+
67
+ if (/(generated|raped)/i =~ line and not /MorGoTH/i =~ line)
68
+ @warnings[:checksum] << "Possibly tampered SFV: #{line.strip}"
69
+ end
75
70
 
76
- if files_to_check.has_key?(filename)
77
- unless Zlib.crc32(File.read(files_to_check[filename])).eql?(checksum.hex)
78
- @errors[:checksum] << "File #{filename} is corrupted"
71
+ if match = /^(.+?)\s+([\dA-Fa-f]{8})$/.match(line)
72
+ matched_something = true
73
+ filename, checksum = match.captures
74
+ filename.strip!
75
+ filename.downcase!
76
+
77
+ if files_to_check.has_key?(filename)
78
+ unless Zlib.crc32(File.read(files_to_check[filename])).eql?(checksum.hex)
79
+ @errors[:checksum] << "File #{filename} is corrupted"
80
+ end
81
+ else
82
+ @errors[:checksum] << "File #{filename} not found"
79
83
  end
80
- else
81
- @errors[:checksum] << "File #{filename} not found"
82
84
  end
83
85
  end
86
+ @warnings[:checksum] << "No files to verify found" unless matched_something
84
87
  end
85
- @warnings[:checksum] << "No files to verify found" unless matched_something
88
+ else
89
+ @errors[:checksum] << "No *.sfv files found"
86
90
  end
87
- else
88
- @errors[:checksum] << "No *.sfv files found"
91
+ @errors[:checksum].empty?
89
92
  end
90
- @errors[:checksum].empty?
91
- end
92
93
 
93
- def valid_name?
94
- @errors[:name], @warnings[:name] = [], []
95
- @errors[:name] << "Release name is not a valid scene release name" unless @name =~ /^([A-Z0-9\-_.()&]+)\-(\d{4}|\d{3}x|\d{2}xx)\-([A-Z0-9_]+)$/i
96
- @errors[:name] << "Release name is lowercased" if @name.eql?(@name.downcase)
97
- @errors[:name] << "Release name is uppercased" if @name.eql?(@name.upcase)
98
- @errors[:name].empty?
99
- end
94
+ def valid_name?
95
+ @errors[:name], @warnings[:name] = [], []
96
+ @errors[:name] << "Release name is not a valid scene release name" unless @name =~ /^([A-Z0-9\-_.()&]+)\-(\d{4}|\d{3}x|\d{2}xx)\-([A-Z0-9_]+)$/i
97
+ @errors[:name] << "Release name is lowercased" if @name.eql?(@name.downcase)
98
+ @errors[:name] << "Release name is uppercased" if @name.eql?(@name.upcase)
99
+ @errors[:name].empty?
100
+ end
100
101
 
101
- def files
102
- Dir.glob(File.join(@path, "*"))
103
- end
102
+ def files
103
+ Dir.glob(File.join(@path, "*"))
104
+ end
104
105
 
105
- class << self
106
- protected
106
+ class << self
107
+ protected
107
108
 
108
- def has_files_with_extension(*exts)
109
- exts.each do |ext|
110
- define_method "#{ext}_files" do
111
- files.select { |f| File.extname(f).downcase.eql?(".#{ext}") }
109
+ def has_files_with_extension(*exts)
110
+ exts.each do |ext|
111
+ define_method "#{ext}_files" do
112
+ files.select { |f| File.extname(f).downcase.eql?(".#{ext}") }
113
+ end
112
114
  end
113
115
  end
114
116
  end
117
+ has_files_with_extension :mp3, :sfv, :nfo, :m3u
115
118
  end
116
- has_files_with_extension :mp3, :sfv, :nfo, :m3u
117
- end
118
-
119
+ end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scene-toolkit
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 1
9
- - 6
10
- version: 0.1.6
8
+ - 7
9
+ version: 0.1.7
11
10
  platform: ruby
12
11
  authors:
13
12
  - "V\xC3\xADctor Mart\xC3\xADnez"
@@ -15,54 +14,51 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-08-25 00:00:00 +02:00
17
+ date: 2010-12-31 00:00:00 +01:00
19
18
  default_executable: scene-toolkit
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- name: optitron
21
+ name: activesupport
23
22
  prerelease: false
24
23
  requirement: &id001 !ruby/object:Gem::Requirement
25
24
  none: false
26
25
  requirements:
27
26
  - - ~>
28
27
  - !ruby/object:Gem::Version
29
- hash: 13
30
28
  segments:
29
+ - 3
31
30
  - 0
32
31
  - 0
33
- - 9
34
- version: 0.0.9
32
+ version: 3.0.0
35
33
  type: :runtime
36
34
  version_requirements: *id001
37
35
  - !ruby/object:Gem::Dependency
38
- name: activesupport
36
+ name: rainbow
39
37
  prerelease: false
40
38
  requirement: &id002 !ruby/object:Gem::Requirement
41
39
  none: false
42
40
  requirements:
43
41
  - - ~>
44
42
  - !ruby/object:Gem::Version
45
- hash: 9
46
43
  segments:
47
- - 2
48
- - 3
49
- - 5
50
- version: 2.3.5
44
+ - 1
45
+ - 1
46
+ version: "1.1"
51
47
  type: :runtime
52
48
  version_requirements: *id002
53
49
  - !ruby/object:Gem::Dependency
54
- name: rainbow
50
+ name: optitron
55
51
  prerelease: false
56
52
  requirement: &id003 !ruby/object:Gem::Requirement
57
53
  none: false
58
54
  requirements:
59
55
  - - ~>
60
56
  - !ruby/object:Gem::Version
61
- hash: 13
62
57
  segments:
63
- - 1
64
- - 1
65
- version: "1.1"
58
+ - 0
59
+ - 2
60
+ - 2
61
+ version: 0.2.2
66
62
  type: :runtime
67
63
  version_requirements: *id003
68
64
  description: Tool to assist scene MP3 library maintenance
@@ -75,7 +71,6 @@ extra_rdoc_files:
75
71
  - LICENSE
76
72
  - README.rdoc
77
73
  files:
78
- - .gitignore
79
74
  - LICENSE
80
75
  - README.rdoc
81
76
  - Rakefile
@@ -91,8 +86,8 @@ homepage: http://github.com/knoopx/scene-toolkit
91
86
  licenses: []
92
87
 
93
88
  post_install_message:
94
- rdoc_options:
95
- - --charset=UTF-8
89
+ rdoc_options: []
90
+
96
91
  require_paths:
97
92
  - lib
98
93
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -100,7 +95,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
100
95
  requirements:
101
96
  - - ">="
102
97
  - !ruby/object:Gem::Version
103
- hash: 3
104
98
  segments:
105
99
  - 0
106
100
  version: "0"
@@ -109,7 +103,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
103
  requirements:
110
104
  - - ">="
111
105
  - !ruby/object:Gem::Version
112
- hash: 3
113
106
  segments:
114
107
  - 0
115
108
  version: "0"
data/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- .DS_Store
2
- coverage
3
- rdoc
4
- pkg