tracksperanto 1.8.0 → 1.8.1

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.
@@ -1,4 +1,4 @@
1
- === 1.8.0 / 2010-02-18
1
+ === 1.8.1 / 2010-02-18
2
2
 
3
3
  * Add Flame stabilizer export support
4
4
 
@@ -9,7 +9,6 @@ class Tracksperanto::Export::FlameStabilizer < Tracksperanto::Export::Base
9
9
  "Flame/Smoke 2D Stabilizer setup"
10
10
  end
11
11
 
12
- # Builder-like writer for Flame chanels
13
12
  def start_export( img_width, img_height)
14
13
  @counter = 0
15
14
  @width, @height = img_width, img_height
@@ -4,7 +4,7 @@ require 'tempfile'
4
4
 
5
5
  module Tracksperanto
6
6
  PATH = File.expand_path(File.dirname(__FILE__))
7
- VERSION = '1.8.0'
7
+ VERSION = '1.8.1'
8
8
 
9
9
  module Import; end
10
10
  module Export; end
@@ -6,18 +6,18 @@ class Tracksperanto::FlameBuilder
6
6
  @io, @indent = io, indent
7
7
  end
8
8
 
9
- def write_block(name, value = nil, &blk)
10
- value.nil? ? write_loose(name) : write_tuple(name, value)
9
+ def write_block!(name, value = nil, &blk)
10
+ value.nil? ? write_loose!(name) : write_tuple!(name, value)
11
11
  yield(self.class.new(@io, @indent + 1))
12
12
  @io.puts(INDENT * (@indent + 1) + "End")
13
13
  end
14
14
 
15
- def write_tuple(key, value)
16
- @io.puts("%s%s %s" % [INDENT * @indent, camelize(key), flameize(value)])
15
+ def write_tuple!(key, value)
16
+ @io.puts("%s%s %s" % [INDENT * @indent, __camelize(key), __flameize(value)])
17
17
  end
18
18
 
19
- def write_loose(value)
20
- @io.puts("%s%s" % [INDENT * @indent, camelize(value)])
19
+ def write_loose!(value)
20
+ @io.puts("%s%s" % [INDENT * @indent, __camelize(value)])
21
21
  end
22
22
 
23
23
  def linebreak!(how_many = 1)
@@ -25,7 +25,7 @@ class Tracksperanto::FlameBuilder
25
25
  end
26
26
 
27
27
  def color_hash!(name, red, green, blue)
28
- write_loose(name)
28
+ write_loose!(name)
29
29
  n = self.class.new(@io, @indent + 1)
30
30
  n.red(red)
31
31
  n.green(green)
@@ -35,18 +35,27 @@ class Tracksperanto::FlameBuilder
35
35
  private
36
36
 
37
37
  def method_missing(meth, arg = nil)
38
+ self.class.send(:alias_method, meth, :__generic)
38
39
  if block_given?
39
- write_block(meth, arg) { |c| yield(c) }
40
+ __generic(meth, arg) {|*a| yield(*a) if block_given? }
40
41
  else
41
- arg.nil? ? write_loose(meth) : write_tuple(meth, arg)
42
+ __generic(meth, arg)
42
43
  end
43
44
  end
44
45
 
45
- def camelize(s)
46
+ def __generic(meth, arg = nil)
47
+ if block_given?
48
+ write_block!(meth, arg) { |c| yield(c) }
49
+ else
50
+ arg.nil? ? write_loose!(meth) : write_tuple!(meth, arg)
51
+ end
52
+ end
53
+
54
+ def __camelize(s)
46
55
  s.to_s.gsub(/(^|_)(.)/) { $2.upcase }
47
56
  end
48
57
 
49
- def flameize(v)
58
+ def __flameize(v)
50
59
  case v
51
60
  when Float
52
61
  "%.3f" % v
@@ -7,32 +7,42 @@ class FlameBuilderTest < Test::Unit::TestCase
7
7
  end
8
8
 
9
9
  def test_write_loose
10
- @b.write_loose("Foo")
10
+ @b.write_loose!("Foo")
11
11
  assert_equal "Foo\n", @s
12
12
  end
13
13
 
14
14
  def test_write_tuple
15
- @b.write_tuple("Foo", 3)
15
+ @b.write_tuple!("Foo", 3)
16
16
  assert_equal "Foo 3\n", @s
17
17
  end
18
18
 
19
19
  def test_write_tuple_with_true
20
- @b.write_tuple("Foo", true)
20
+ @b.write_tuple!("Foo", true)
21
21
  assert_equal "Foo yes\n", @s
22
22
  end
23
23
 
24
24
  def test_write_tuple_with_false
25
- @b.write_tuple("Foo", false)
25
+ @b.write_tuple!("Foo", false)
26
26
  assert_equal "Foo no\n", @s
27
27
  end
28
28
 
29
29
  def test_write_block
30
- @b.write_block("Foo", 1) do | b |
31
- b.write_tuple("Baz", 2)
30
+ @b.write_block!("Foo", 1) do | b |
31
+ b.write_tuple!("Baz", 2)
32
32
  end
33
33
  assert_equal "Foo 1\n\tBaz 2\n\tEnd\n", @s
34
34
  end
35
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
+
36
46
  def test_automissing_with_values
37
47
  @b.some_key(2)
38
48
  assert_equal "SomeKey 2\n", @s
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: 1.8.0
4
+ version: 1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julik Tarkhanov