tracksperanto 2.8.5 → 2.8.6

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.
@@ -3,10 +3,12 @@ require File.expand_path(File.dirname(__FILE__)) + '/../helper'
3
3
  class FlameStabilizerCornerpinExportTest < Test::Unit::TestCase
4
4
  include ParabolicTracks
5
5
  P = File.dirname(__FILE__) + "/samples/ref_flameCornerpin.stabilizer"
6
+ P2 = File.dirname(__FILE__) + "/samples/ref_FlameSimpleReorderedCornerpin.stabilizer"
7
+ P3 = File.dirname(__FILE__) + "/samples/ref_FlameProperlyReorderedCornerpin.stabilizer"
6
8
 
7
9
  def test_export_output_written
8
10
  t = Time.local(2010, "Feb", 18, 17, 22, 12)
9
- flexmock(Time).should_receive(:now).once.and_return(t)
11
+ flexmock(Time).should_receive(:now).and_return(t)
10
12
  ensure_same_output Tracksperanto::Export::FlameStabilizerCornerpin, P
11
13
  end
12
14
 
@@ -30,4 +32,36 @@ class FlameStabilizerCornerpinExportTest < Test::Unit::TestCase
30
32
  roundtrip = Tracksperanto::Import::FlameStabilizer.new(:io => s).to_a
31
33
  assert_equal 4, roundtrip.length
32
34
  end
35
+
36
+ def test_roundtrip_with_correct_order
37
+ t = Time.local(2010, "Feb", 18, 17, 22, 12)
38
+ flexmock(Time).should_receive(:now).and_return(t)
39
+
40
+ trackers = File.open(File.dirname(__FILE__) + "/../import/samples/flame_stabilizer/FlameStab_Cornerpin_CorrectOrder.stabilizer") do | f|
41
+ Tracksperanto::Import::FlameStabilizer.new(:io => f).to_a
42
+ end
43
+ assert_equal 4, trackers.length
44
+
45
+ s = StringIO.new
46
+ x = Tracksperanto::Export::FlameStabilizerCornerpin.new(s)
47
+ x.just_export(trackers, 1920, 1080)
48
+
49
+ assert_same_buffer(File.open(P2), s)
50
+ end
51
+
52
+ def test_roundtrip_with_incorrect_order
53
+ t = Time.local(2010, "Feb", 18, 17, 22, 12)
54
+ flexmock(Time).should_receive(:now).and_return(t)
55
+
56
+ trackers = File.open(File.dirname(__FILE__) + "/../import/samples/flame_stabilizer/FlameStab_Cornerpin_IncorrectOrder.stabilizer") do | f|
57
+ Tracksperanto::Import::FlameStabilizer.new(:io => f).to_a
58
+ end
59
+ assert_equal 4, trackers.length
60
+
61
+ s = StringIO.new
62
+ x = Tracksperanto::Export::FlameStabilizerCornerpin.new(s)
63
+ x.just_export(trackers, 1920, 1080)
64
+
65
+ assert_same_buffer(File.open(P3), s)
66
+ end
33
67
  end
data/test/helper.rb CHANGED
@@ -92,22 +92,23 @@ module ParabolicTracks
92
92
  end
93
93
  end
94
94
 
95
+ def assert_same_buffer(ref_buffer, actual_buffer, message = "The line should be identical")
96
+ [ref_buffer, actual_buffer].each{|io| io.rewind }
97
+ at_line = 0
98
+ until ref_buffer.eof? && actual_buffer.eof?
99
+ at_line += 1
100
+ reference_line, output_line = ref_buffer.readline, actual_buffer.readline
101
+ assert_equal reference_line, output_line, "Line #{at_line} - #{message}"
102
+ end
103
+ end
104
+
95
105
  def ensure_same_output(exporter_klass, reference_path, message = "The line should be identical")
96
-
97
106
  io = StringIO.new
98
107
  x = exporter_klass.new(io)
99
108
  yield(x) if block_given?
100
109
  export_parabolics_with(x)
101
- io.rewind
102
110
 
103
- File.open(reference_path, "r") do | f |
104
- at_line = 0
105
- until f.eof? || io.eof?
106
- at_line += 1
107
- reference_line, output_line = f.readline, io.readline
108
- assert_equal reference_line, output_line, "Line #{at_line} - #{message}"
109
- end
110
- end
111
+ assert_same_buffer(File.open(reference_path, "r"), io, message)
111
112
  end
112
113
 
113
114
  def export_parabolics_with(exporter)
data/test/test_cli.rb CHANGED
@@ -29,7 +29,7 @@ class CliTest < Test::Unit::TestCase
29
29
  def test_cli_with_nonexisting_file
30
30
  status, o, e = cli(TEMP_DIR + "/nonexisting.file")
31
31
  assert_equal 1, status
32
- assert_equal "Input file #{TEMP_DIR + "/nonexisting.file"} does not exist\n", e
32
+ assert_match /Input file #{TEMP_DIR + "/nonexisting.file"} does not exist/, e
33
33
  end
34
34
 
35
35
  def test_basic_cli
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "tracksperanto"
8
- s.version = "2.8.5"
8
+ s.version = "2.8.6"
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 = "2011-12-25"
12
+ s.date = "2012-01-13"
13
13
  s.description = "Converts 2D track exports between different apps like Flame, MatchMover, PFTrack..."
14
14
  s.email = "me@julik.nl"
15
15
  s.executables = ["tracksperanto"]
@@ -78,7 +78,6 @@ Gem::Specification.new do |s|
78
78
  "lib/tracksperanto/casts.rb",
79
79
  "lib/tracksperanto/const_name.rb",
80
80
  "lib/tracksperanto/ext_io.rb",
81
- "lib/tracksperanto/flame_builder.rb",
82
81
  "lib/tracksperanto/format_detector.rb",
83
82
  "lib/tracksperanto/keyframe.rb",
84
83
  "lib/tracksperanto/returning.rb",
@@ -88,6 +87,8 @@ Gem::Specification.new do |s|
88
87
  "lib/tracksperanto/uv_coordinates.rb",
89
88
  "lib/tracksperanto/zip_tuples.rb",
90
89
  "test/export/README_EXPORT_TESTS.txt",
90
+ "test/export/samples/ref_FlameProperlyReorderedCornerpin.stabilizer",
91
+ "test/export/samples/ref_FlameSimpleReorderedCornerpin.stabilizer",
91
92
  "test/export/samples/ref_Mayalive.txt",
92
93
  "test/export/samples/ref_Mayalive_CustomAspect.txt",
93
94
  "test/export/samples/ref_NukeScript.nk",
@@ -150,7 +151,6 @@ Gem::Specification.new do |s|
150
151
  "test/test_cli.rb",
151
152
  "test/test_const_name.rb",
152
153
  "test/test_extio.rb",
153
- "test/test_flame_builder.rb",
154
154
  "test/test_format_detector.rb",
155
155
  "test/test_keyframe.rb",
156
156
  "test/test_pipeline.rb",
@@ -169,9 +169,9 @@ Gem::Specification.new do |s|
169
169
  s.specification_version = 3
170
170
 
171
171
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
172
- s.add_runtime_dependency(%q<obuf>, ["~> 1.0.1"])
172
+ s.add_runtime_dependency(%q<obuf>, ["~> 1.0.4"])
173
173
  s.add_runtime_dependency(%q<progressive_io>, ["~> 1.0"])
174
- s.add_runtime_dependency(%q<flame_channel_parser>, ["~> 3.0"])
174
+ s.add_runtime_dependency(%q<flame_channel_parser>, ["~> 4.0"])
175
175
  s.add_runtime_dependency(%q<progressbar>, ["~> 0.9"])
176
176
  s.add_runtime_dependency(%q<update_hints>, ["~> 1.0"])
177
177
  s.add_development_dependency(%q<jeweler>, [">= 0"])
@@ -179,9 +179,9 @@ Gem::Specification.new do |s|
179
179
  s.add_development_dependency(%q<flexmock>, ["~> 0.8"])
180
180
  s.add_development_dependency(%q<cli_test>, ["~> 1.0"])
181
181
  else
182
- s.add_dependency(%q<obuf>, ["~> 1.0.1"])
182
+ s.add_dependency(%q<obuf>, ["~> 1.0.4"])
183
183
  s.add_dependency(%q<progressive_io>, ["~> 1.0"])
184
- s.add_dependency(%q<flame_channel_parser>, ["~> 3.0"])
184
+ s.add_dependency(%q<flame_channel_parser>, ["~> 4.0"])
185
185
  s.add_dependency(%q<progressbar>, ["~> 0.9"])
186
186
  s.add_dependency(%q<update_hints>, ["~> 1.0"])
187
187
  s.add_dependency(%q<jeweler>, [">= 0"])
@@ -190,9 +190,9 @@ Gem::Specification.new do |s|
190
190
  s.add_dependency(%q<cli_test>, ["~> 1.0"])
191
191
  end
192
192
  else
193
- s.add_dependency(%q<obuf>, ["~> 1.0.1"])
193
+ s.add_dependency(%q<obuf>, ["~> 1.0.4"])
194
194
  s.add_dependency(%q<progressive_io>, ["~> 1.0"])
195
- s.add_dependency(%q<flame_channel_parser>, ["~> 3.0"])
195
+ s.add_dependency(%q<flame_channel_parser>, ["~> 4.0"])
196
196
  s.add_dependency(%q<progressbar>, ["~> 0.9"])
197
197
  s.add_dependency(%q<update_hints>, ["~> 1.0"])
198
198
  s.add_dependency(%q<jeweler>, [">= 0"])
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tracksperanto
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.5
4
+ version: 2.8.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-25 00:00:00.000000000 Z
12
+ date: 2012-01-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: obuf
16
- requirement: &10793450 !ruby/object:Gem::Requirement
16
+ requirement: &3815360 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 1.0.1
21
+ version: 1.0.4
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *10793450
24
+ version_requirements: *3815360
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: progressive_io
27
- requirement: &10792500 !ruby/object:Gem::Requirement
27
+ requirement: &3814680 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,21 +32,21 @@ dependencies:
32
32
  version: '1.0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *10792500
35
+ version_requirements: *3814680
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: flame_channel_parser
38
- requirement: &10790820 !ruby/object:Gem::Requirement
38
+ requirement: &3814070 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
42
42
  - !ruby/object:Gem::Version
43
- version: '3.0'
43
+ version: '4.0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *10790820
46
+ version_requirements: *3814070
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: progressbar
49
- requirement: &10789080 !ruby/object:Gem::Requirement
49
+ requirement: &3813760 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0.9'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *10789080
57
+ version_requirements: *3813760
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: update_hints
60
- requirement: &10788410 !ruby/object:Gem::Requirement
60
+ requirement: &3813460 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '1.0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *10788410
68
+ version_requirements: *3813460
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
- requirement: &10787690 !ruby/object:Gem::Requirement
71
+ requirement: &3829560 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *10787690
79
+ version_requirements: *3829560
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rake
82
- requirement: &10787260 !ruby/object:Gem::Requirement
82
+ requirement: &3829220 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *10787260
90
+ version_requirements: *3829220
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: flexmock
93
- requirement: &10786840 !ruby/object:Gem::Requirement
93
+ requirement: &3828510 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0.8'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *10786840
101
+ version_requirements: *3828510
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: cli_test
104
- requirement: &10786400 !ruby/object:Gem::Requirement
104
+ requirement: &3827870 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: '1.0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *10786400
112
+ version_requirements: *3827870
113
113
  description: Converts 2D track exports between different apps like Flame, MatchMover,
114
114
  PFTrack...
115
115
  email: me@julik.nl
@@ -180,7 +180,6 @@ files:
180
180
  - lib/tracksperanto/casts.rb
181
181
  - lib/tracksperanto/const_name.rb
182
182
  - lib/tracksperanto/ext_io.rb
183
- - lib/tracksperanto/flame_builder.rb
184
183
  - lib/tracksperanto/format_detector.rb
185
184
  - lib/tracksperanto/keyframe.rb
186
185
  - lib/tracksperanto/returning.rb
@@ -190,6 +189,8 @@ files:
190
189
  - lib/tracksperanto/uv_coordinates.rb
191
190
  - lib/tracksperanto/zip_tuples.rb
192
191
  - test/export/README_EXPORT_TESTS.txt
192
+ - test/export/samples/ref_FlameProperlyReorderedCornerpin.stabilizer
193
+ - test/export/samples/ref_FlameSimpleReorderedCornerpin.stabilizer
193
194
  - test/export/samples/ref_Mayalive.txt
194
195
  - test/export/samples/ref_Mayalive_CustomAspect.txt
195
196
  - test/export/samples/ref_NukeScript.nk
@@ -252,7 +253,6 @@ files:
252
253
  - test/test_cli.rb
253
254
  - test/test_const_name.rb
254
255
  - test/test_extio.rb
255
- - test/test_flame_builder.rb
256
256
  - test/test_format_detector.rb
257
257
  - test/test_keyframe.rb
258
258
  - test/test_pipeline.rb
@@ -1,77 +0,0 @@
1
- # A Builder-like class for exporting Flame setups
2
- class Tracksperanto::FlameBuilder
3
- INDENT = "\t"
4
-
5
- def initialize(io, indent = 0)
6
- @io, @indent = io, indent
7
- end
8
-
9
- def write_block!(name, value = nil, &blk)
10
- value.nil? ? write_loose!(name) : write_tuple!(name, value)
11
- yield(self.class.new(@io, @indent + 1))
12
- @io.puts(INDENT * (@indent + 1) + "End")
13
- end
14
-
15
- def write_unterminated_block!(name, value = nil, &blk)
16
- value.nil? ? write_loose!(name) : write_tuple!(name, value)
17
- yield(self.class.new(@io, @indent + 1))
18
- end
19
-
20
- def write_tuple!(key, value)
21
- @io.puts("%s%s %s" % [INDENT * @indent, __camelize(key), __flameize(value)])
22
- end
23
-
24
- def write_loose!(value)
25
- @io.puts("%s%s" % [INDENT * @indent, __camelize(value)])
26
- end
27
-
28
- def linebreak!(how_many = 1)
29
- @io.write("\n" * how_many)
30
- end
31
-
32
- def color_hash!(name, red, green, blue)
33
- write_unterminated_block!(name) do | b |
34
- b.red(red)
35
- b.green(green)
36
- b.blue(blue)
37
- end
38
- end
39
-
40
- def <<(some_verbatim_string)
41
- some_verbatim_string.split("\n").each do | line |
42
- @io.puts(["\t" * @indent, line].join)
43
- end
44
- end
45
-
46
- private
47
-
48
- def method_missing(meth, arg = nil)
49
- if block_given?
50
- write_block!(meth, arg) {|c| yield(c) }
51
- else
52
- if arg.nil?
53
- write_loose!(meth)
54
- else
55
- write_tuple!(meth, arg)
56
- end
57
- end
58
- end
59
-
60
- def __camelize(s)
61
- @@camelizations ||= {}
62
- @@camelizations[s] ||= s.to_s.gsub(/(^|_)(.)/) { $2.upcase }
63
- end
64
-
65
- def __flameize(v)
66
- case v
67
- when Float
68
- "%.3f" % v
69
- when TrueClass
70
- "yes"
71
- when FalseClass
72
- "no"
73
- else
74
- v.to_s
75
- end
76
- end
77
- end
@@ -1,67 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__)) + '/helper'
2
-
3
- class FlameBuilderTest < Test::Unit::TestCase
4
- def setup
5
- @s = ""
6
- @b = Tracksperanto::FlameBuilder.new(StringIO.new(@s))
7
- end
8
-
9
- def test_write_loose
10
- @b.write_loose!("Foo")
11
- assert_equal "Foo\n", @s
12
- end
13
-
14
- def test_write_tuple
15
- @b.write_tuple!("Foo", 3)
16
- assert_equal "Foo 3\n", @s
17
- end
18
-
19
- def test_write_tuple_with_true
20
- @b.write_tuple!("Foo", true)
21
- assert_equal "Foo yes\n", @s
22
- end
23
-
24
- def test_write_tuple_with_false
25
- @b.write_tuple!("Foo", false)
26
- assert_equal "Foo no\n", @s
27
- end
28
-
29
- def test_write_block
30
- @b.write_block!("Foo", 1) do | b |
31
- b.write_tuple!("Baz", 2)
32
- end
33
- assert_equal "Foo 1\n\tBaz 2\n\tEnd\n", @s
34
- end
35
-
36
- def test_write_block_with_no_arg
37
- @b.foo {|c| c.bar }
38
- assert_equal "Foo\n\tBar\n\tEnd\n", @s
39
- end
40
-
41
- def test_write_block_with_args
42
- @b.foo(:bar) {|c| c.bar }
43
- assert_equal "Foo bar\n\tBar\n\tEnd\n", @s
44
- end
45
-
46
- def test_automissing_with_values
47
- @b.some_key(2)
48
- assert_equal "SomeKey 2\n", @s
49
- end
50
-
51
- def test_automissing_with_block
52
- @b.some_key(2) do | b |
53
- b.some_subkey
54
- end
55
- assert_equal "SomeKey 2\n\tSomeSubkey\n\tEnd\n", @s
56
- end
57
-
58
- def test_linebreak
59
- @b.linebreak!(5)
60
- assert_equal "\n" * 5, @s
61
- end
62
-
63
- def test_color_hash
64
- @b.color_hash!(:triplet, 10, 12, 15)
65
- assert_equal "Triplet\n\tRed 10\n\tGreen 12\n\tBlue 15\n", @s
66
- end
67
- end