scene-toolkit 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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