scene-toolkit 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -1,7 +1,23 @@
1
1
  = Scene-Toolkit
2
2
 
3
+ == Description
4
+
3
5
  Tool to assist scene MP3 library maintenance
4
6
 
7
+ == Summary
8
+
9
+ $ scene-toolkit
10
+ Commands
11
+
12
+ verify [directory] # Verify library or release. Executes all validations if none specified
13
+ -n/--name # Validate release name
14
+ -r/--required-files # Validate inclusion of required files
15
+ -c/--checksum # Validate release CRC-32 checksum
16
+ -d/--display-valid # Display valid releases too
17
+ -f/--flush-cache # Flush file modification cache
18
+ -m/--move-invalid-to=[STRING] # Move INVALID releases to specified folder
19
+ -M/--move-valid-to=[STRING] # Move VALID releases to specified folder
20
+
5
21
  == Note on Patches/Pull Requests
6
22
 
7
23
  * Fork the project.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -24,10 +24,10 @@ class SceneToolkit::Cache::Releases
24
24
  end
25
25
  end
26
26
 
27
- def errors(release)
27
+ def errors(release, validations = SceneToolkit::Release::VALIDATIONS)
28
28
  @cache.transaction(true) do
29
29
  if @cache[@cache_key].has_key?(release.path)
30
- @cache[@cache_key][release.path][:errors]
30
+ @cache[@cache_key][release.path][:errors].reject{ |validation, errors| not validations.include?(validation) }
31
31
  else
32
32
  raise RuntimeError.new("Release not catched")
33
33
  end
@@ -24,18 +24,21 @@ class SceneToolkit::Release
24
24
  @path = path
25
25
  @name = File.basename(path)
26
26
  @uid = Digest::MD5.hexdigest(@name.downcase.gsub(/[^A-Z0-9]/i, ' ').gsub(/\s+/, ' '))
27
- @errors = []
27
+ @errors = {}
28
+ VALIDATIONS.each do |validation|
29
+ @errors[validation] = []
30
+ end
28
31
  end
29
32
 
30
- def valid?(validate = VALIDATIONS)
33
+ def valid?(validations = VALIDATIONS)
31
34
  if @cache.releases.modified?(self)
32
35
  @errors = []
33
- validate.each do |validation|
36
+ validations.each do |validation|
34
37
  send("valid_#{validation}?")
35
38
  end
36
39
  @cache.releases.store(self)
37
40
  else
38
- @errors = @cache.releases.errors(self)
41
+ @errors = @cache.releases.errors(self, validations)
39
42
  end
40
43
  @errors.none?
41
44
  end
@@ -43,8 +46,8 @@ class SceneToolkit::Release
43
46
  def valid_required_files?
44
47
  REQUIRED_FILES.each do |ext|
45
48
  file_count = send("#{ext}_files")
46
- @errors << "No #{ext} found." if file_count.none?
47
- @errors << "Multiple #{ext} found." if file_count.size > 1
49
+ @errors[:required_files] << "No #{ext} found." if file_count.none?
50
+ @errors[:required_files] << "Multiple #{ext} found." if file_count.size > 1
48
51
  end
49
52
  end
50
53
 
@@ -74,10 +77,10 @@ class SceneToolkit::Release
74
77
  filename, checksum = match.captures
75
78
  if files_to_check.has_key?(filename.downcase)
76
79
  unless Zlib.crc32(File.read(files_to_check[filename.downcase])).eql?(checksum.hex)
77
- @errors << "#{filename} is corrupted"
80
+ @errors[:checksum] << "#{filename} is corrupted"
78
81
  end
79
82
  else
80
- @errors << "File #{filename} not found"
83
+ @errors[:checksum] << "File #{filename} not found"
81
84
  end
82
85
  matched_something = true
83
86
  end
@@ -85,9 +88,9 @@ class SceneToolkit::Release
85
88
  end
86
89
 
87
90
  def valid_name?
88
- @errors << "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
89
- @errors << "Release name is lowercased" if @name.eql?(@name.downcase)
90
- @errors << "Release name is uppercased" if @name.eql?(@name.upcase)
91
+ @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
92
+ @errors[:name] << "Release name is lowercased" if @name.eql?(@name.downcase)
93
+ @errors[:name] << "Release name is uppercased" if @name.eql?(@name.upcase)
91
94
  end
92
95
  end
93
96
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scene-toolkit
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - "V\xC3\xADctor Mart\xC3\xADnez"