sequencer 1.1.2 → 1.2.0
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/History.txt +4 -0
- data/lib/sequencer.rb +24 -2
- data/sequencer.gemspec +3 -3
- data/test/test_sequencer.rb +4 -3
- metadata +18 -8
data/History.txt
CHANGED
data/lib/sequencer.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module Sequencer
|
2
|
-
VERSION = '1.
|
2
|
+
VERSION = '1.2.0'
|
3
3
|
NUMBERS_AT_END = /(\d+)([^\d]+)?$/
|
4
4
|
|
5
5
|
extend self
|
@@ -7,7 +7,14 @@ module Sequencer
|
|
7
7
|
# Detects sequences in the passed directory (same as Dir.entries but returns Sequence objects).
|
8
8
|
# Single files will be upgraded to single-frame Sequences
|
9
9
|
def entries(of_dir)
|
10
|
-
actual_files = Dir.entries(of_dir)
|
10
|
+
actual_files = Dir.entries(of_dir)
|
11
|
+
|
12
|
+
# Remove all dotfiles
|
13
|
+
actual_files.reject!{|f| f =~ /^\./}
|
14
|
+
|
15
|
+
# Ensure files are presorted
|
16
|
+
actual_files.sort!
|
17
|
+
|
11
18
|
groups = {}
|
12
19
|
|
13
20
|
actual_files.each do | e |
|
@@ -28,6 +35,21 @@ module Sequencer
|
|
28
35
|
end
|
29
36
|
end
|
30
37
|
|
38
|
+
# Detects sequences in the passed directory and all of it's subdirectories
|
39
|
+
# It will skip all the entries starting with a dot
|
40
|
+
# TODO: fix symlink handling
|
41
|
+
def recursive_entries(of_dir)
|
42
|
+
detected_sequences = entries(of_dir)
|
43
|
+
possible_subdirs = Dir.entries(of_dir)
|
44
|
+
possible_subdirs.each do | possible_subdir |
|
45
|
+
next if possible_subdir =~ /^\./
|
46
|
+
|
47
|
+
dirpath = File.join(of_dir, possible_subdir)
|
48
|
+
detected_sequences += recursive_entries(dirpath) if File.directory?(dirpath)
|
49
|
+
end
|
50
|
+
detected_sequences.sort
|
51
|
+
end
|
52
|
+
|
31
53
|
# Detect a Sequence from a single file and return a handle to it
|
32
54
|
def from_single_file(path_to_single_file)
|
33
55
|
#File.stat(path_to_single_file)
|
data/sequencer.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "sequencer"
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Julik Tarkhanov"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-08-27"
|
13
13
|
s.email = "me@julik.nl"
|
14
14
|
s.executables = ["rseqls", "rseqpad", "rseqrename"]
|
15
15
|
s.extra_rdoc_files = [
|
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
s.homepage = "http://guerilla-di.org/sequencer"
|
32
32
|
s.licenses = ["MIT"]
|
33
33
|
s.require_paths = ["lib"]
|
34
|
-
s.rubygems_version = "1.8.
|
34
|
+
s.rubygems_version = "1.8.24"
|
35
35
|
s.summary = "Image sequence sorting, scanning and manipulation"
|
36
36
|
|
37
37
|
if s.respond_to? :specification_version then
|
data/test/test_sequencer.rb
CHANGED
@@ -82,9 +82,10 @@ class Sequencer_entries_should < Test::Unit::TestCase
|
|
82
82
|
def setup; emit_test_dirs; end
|
83
83
|
def teardown; teardown_test_dirs; end
|
84
84
|
|
85
|
-
def
|
86
|
-
entries = Sequencer.
|
87
|
-
|
85
|
+
def test_returns_entries_recursive_for_every_sequence_in_a_directory
|
86
|
+
entries = Sequencer.recursive_entries(TEST_DIR + "/many_seqs")
|
87
|
+
names = entries.map{|e| e.to_s }
|
88
|
+
assert_equal ["anotherS [228..312].tif", "seq1.[458..512].tif", "single.tif", "in_subdir [445..471].tif"], names
|
88
89
|
end
|
89
90
|
end
|
90
91
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequencer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-08-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jeweler
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: rake
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,7 +37,12 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :development
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
description:
|
37
47
|
email: me@julik.nl
|
38
48
|
executables:
|
@@ -69,7 +79,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
69
79
|
version: '0'
|
70
80
|
segments:
|
71
81
|
- 0
|
72
|
-
hash: -
|
82
|
+
hash: -3510175113673425325
|
73
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
84
|
none: false
|
75
85
|
requirements:
|
@@ -78,7 +88,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
88
|
version: '0'
|
79
89
|
requirements: []
|
80
90
|
rubyforge_project:
|
81
|
-
rubygems_version: 1.8.
|
91
|
+
rubygems_version: 1.8.24
|
82
92
|
signing_key:
|
83
93
|
specification_version: 3
|
84
94
|
summary: Image sequence sorting, scanning and manipulation
|