framecurve 2.2.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (163) hide show
  1. data/Gemfile +0 -1
  2. data/History.txt +4 -0
  3. data/bin/framecurve_validator +3 -2
  4. data/framecurve.gemspec +154 -6
  5. data/lib/framecurve.rb +1 -1
  6. data/lib/framecurve/curve.rb +5 -2
  7. data/lib/framecurve/extractors/fcp_xml.rb +6 -1
  8. data/lib/framecurve/extractors/xml_bridge.rb +9 -0
  9. data/lib/framecurve/validator.rb +8 -0
  10. data/test/fixtures/countdown_standard/countdown_asis 001.png +0 -0
  11. data/test/fixtures/countdown_standard/countdown_asis 002.png +0 -0
  12. data/test/fixtures/countdown_standard/countdown_asis 003.png +0 -0
  13. data/test/fixtures/countdown_standard/countdown_asis 004.png +0 -0
  14. data/test/fixtures/countdown_standard/countdown_asis 005.png +0 -0
  15. data/test/fixtures/countdown_standard/countdown_asis 006.png +0 -0
  16. data/test/fixtures/countdown_standard/countdown_asis 007.png +0 -0
  17. data/test/fixtures/countdown_standard/countdown_asis 008.png +0 -0
  18. data/test/fixtures/countdown_standard/countdown_asis 009.png +0 -0
  19. data/test/fixtures/countdown_standard/countdown_asis 010.png +0 -0
  20. data/test/fixtures/countdown_standard/countdown_asis 011.png +0 -0
  21. data/test/fixtures/countdown_standard/countdown_asis 012.png +0 -0
  22. data/test/fixtures/countdown_standard/countdown_asis 013.png +0 -0
  23. data/test/fixtures/countdown_standard/countdown_asis 014.png +0 -0
  24. data/test/fixtures/countdown_standard/countdown_asis 015.png +0 -0
  25. data/test/fixtures/countdown_standard/countdown_asis 016.png +0 -0
  26. data/test/fixtures/countdown_standard/countdown_asis 017.png +0 -0
  27. data/test/fixtures/countdown_standard/countdown_asis 018.png +0 -0
  28. data/test/fixtures/countdown_standard/countdown_asis 019.png +0 -0
  29. data/test/fixtures/countdown_standard/countdown_asis 020.png +0 -0
  30. data/test/fixtures/countdown_standard/countdown_asis 021.png +0 -0
  31. data/test/fixtures/countdown_standard/countdown_asis 022.png +0 -0
  32. data/test/fixtures/countdown_standard/countdown_asis 023.png +0 -0
  33. data/test/fixtures/countdown_standard/countdown_asis 024.png +0 -0
  34. data/test/fixtures/countdown_standard/countdown_asis 025.png +0 -0
  35. data/test/fixtures/countdown_standard/countdown_asis 026.png +0 -0
  36. data/test/fixtures/countdown_standard/countdown_asis 027.png +0 -0
  37. data/test/fixtures/countdown_standard/countdown_asis 028.png +0 -0
  38. data/test/fixtures/countdown_standard/countdown_asis 029.png +0 -0
  39. data/test/fixtures/countdown_standard/countdown_asis 030.png +0 -0
  40. data/test/fixtures/countdown_standard/countdown_asis 031.png +0 -0
  41. data/test/fixtures/countdown_standard/countdown_asis 032.png +0 -0
  42. data/test/fixtures/countdown_standard/countdown_asis 033.png +0 -0
  43. data/test/fixtures/countdown_standard/countdown_asis 034.png +0 -0
  44. data/test/fixtures/countdown_standard/countdown_asis 035.png +0 -0
  45. data/test/fixtures/countdown_standard/countdown_asis 036.png +0 -0
  46. data/test/fixtures/countdown_standard/countdown_asis 037.png +0 -0
  47. data/test/fixtures/countdown_standard/countdown_asis 038.png +0 -0
  48. data/test/fixtures/countdown_standard/countdown_asis 039.png +0 -0
  49. data/test/fixtures/countdown_standard/countdown_asis 040.png +0 -0
  50. data/test/fixtures/countdown_standard/countdown_asis 041.png +0 -0
  51. data/test/fixtures/countdown_standard/countdown_asis 042.png +0 -0
  52. data/test/fixtures/countdown_standard/countdown_asis 043.png +0 -0
  53. data/test/fixtures/countdown_standard/countdown_asis 044.png +0 -0
  54. data/test/fixtures/countdown_standard/countdown_asis 045.png +0 -0
  55. data/test/fixtures/countdown_standard/countdown_asis 046.png +0 -0
  56. data/test/fixtures/countdown_standard/countdown_asis 047.png +0 -0
  57. data/test/fixtures/countdown_standard/countdown_asis 048.png +0 -0
  58. data/test/fixtures/countdown_standard/countdown_asis 049.png +0 -0
  59. data/test/fixtures/countdown_standard/countdown_asis 050.png +0 -0
  60. data/test/fixtures/countdown_standard/countdown_asis 051.png +0 -0
  61. data/test/fixtures/countdown_standard/countdown_asis 052.png +0 -0
  62. data/test/fixtures/countdown_standard/countdown_asis 053.png +0 -0
  63. data/test/fixtures/countdown_standard/countdown_asis 054.png +0 -0
  64. data/test/fixtures/countdown_standard/countdown_asis 055.png +0 -0
  65. data/test/fixtures/countdown_standard/countdown_asis 056.png +0 -0
  66. data/test/fixtures/countdown_standard/countdown_asis 057.png +0 -0
  67. data/test/fixtures/countdown_standard/countdown_asis 058.png +0 -0
  68. data/test/fixtures/countdown_standard/countdown_asis 059.png +0 -0
  69. data/test/fixtures/countdown_standard/countdown_asis 060.png +0 -0
  70. data/test/fixtures/countdown_standard/countdown_asis 061.png +0 -0
  71. data/test/fixtures/countdown_standard/countdown_asis 062.png +0 -0
  72. data/test/fixtures/countdown_standard/countdown_asis 063.png +0 -0
  73. data/test/fixtures/countdown_standard/countdown_asis 064.png +0 -0
  74. data/test/fixtures/countdown_standard/countdown_asis 065.png +0 -0
  75. data/test/fixtures/countdown_standard/countdown_asis 066.png +0 -0
  76. data/test/fixtures/countdown_standard/countdown_asis 067.png +0 -0
  77. data/test/fixtures/countdown_standard/countdown_asis 068.png +0 -0
  78. data/test/fixtures/countdown_standard/countdown_asis 069.png +0 -0
  79. data/test/fixtures/countdown_standard/countdown_asis 070.png +0 -0
  80. data/test/fixtures/countdown_standard/countdown_asis 071.png +0 -0
  81. data/test/fixtures/countdown_standard/countdown_asis 072.png +0 -0
  82. data/test/fixtures/countdown_standard/countdown_asis 073.png +0 -0
  83. data/test/fixtures/countdown_standard/countdown_asis 074.png +0 -0
  84. data/test/fixtures/countdown_standard/countdown_asis 075.png +0 -0
  85. data/test/fixtures/countdown_standard/countdown_asis 076.png +0 -0
  86. data/test/fixtures/countdown_standard/countdown_asis 077.png +0 -0
  87. data/test/fixtures/countdown_standard/countdown_asis 078.png +0 -0
  88. data/test/fixtures/countdown_standard/countdown_asis 079.png +0 -0
  89. data/test/fixtures/countdown_standard/countdown_asis 080.png +0 -0
  90. data/test/fixtures/countdown_standard/countdown_asis 081.png +0 -0
  91. data/test/fixtures/countdown_standard/countdown_asis 082.png +0 -0
  92. data/test/fixtures/countdown_standard/countdown_asis 083.png +0 -0
  93. data/test/fixtures/countdown_standard/countdown_asis 084.png +0 -0
  94. data/test/fixtures/countdown_standard/countdown_asis 085.png +0 -0
  95. data/test/fixtures/countdown_standard/countdown_asis 086.png +0 -0
  96. data/test/fixtures/countdown_standard/countdown_asis 087.png +0 -0
  97. data/test/fixtures/countdown_standard/countdown_asis 088.png +0 -0
  98. data/test/fixtures/countdown_standard/countdown_asis 089.png +0 -0
  99. data/test/fixtures/countdown_standard/countdown_asis 090.png +0 -0
  100. data/test/fixtures/countdown_standard/countdown_asis 091.png +0 -0
  101. data/test/fixtures/countdown_standard/countdown_asis 092.png +0 -0
  102. data/test/fixtures/countdown_standard/countdown_asis 093.png +0 -0
  103. data/test/fixtures/countdown_standard/countdown_asis 094.png +0 -0
  104. data/test/fixtures/countdown_standard/countdown_asis 095.png +0 -0
  105. data/test/fixtures/countdown_standard/countdown_asis 096.png +0 -0
  106. data/test/fixtures/countdown_standard/countdown_asis 097.png +0 -0
  107. data/test/fixtures/countdown_standard/countdown_asis 098.png +0 -0
  108. data/test/fixtures/countdown_standard/countdown_asis 099.png +0 -0
  109. data/test/fixtures/countdown_standard/countdown_asis 100.png +0 -0
  110. data/test/fixtures/countdown_timewarped/countdown_varispeed 01.png +0 -0
  111. data/test/fixtures/countdown_timewarped/countdown_varispeed 02.png +0 -0
  112. data/test/fixtures/countdown_timewarped/countdown_varispeed 03.png +0 -0
  113. data/test/fixtures/countdown_timewarped/countdown_varispeed 04.png +0 -0
  114. data/test/fixtures/countdown_timewarped/countdown_varispeed 05.png +0 -0
  115. data/test/fixtures/countdown_timewarped/countdown_varispeed 06.png +0 -0
  116. data/test/fixtures/countdown_timewarped/countdown_varispeed 07.png +0 -0
  117. data/test/fixtures/countdown_timewarped/countdown_varispeed 08.png +0 -0
  118. data/test/fixtures/countdown_timewarped/countdown_varispeed 09.png +0 -0
  119. data/test/fixtures/countdown_timewarped/countdown_varispeed 10.png +0 -0
  120. data/test/fixtures/countdown_timewarped/countdown_varispeed 11.png +0 -0
  121. data/test/fixtures/countdown_timewarped/countdown_varispeed 12.png +0 -0
  122. data/test/fixtures/countdown_timewarped/countdown_varispeed 13.png +0 -0
  123. data/test/fixtures/countdown_timewarped/countdown_varispeed 14.png +0 -0
  124. data/test/fixtures/countdown_timewarped/countdown_varispeed 15.png +0 -0
  125. data/test/fixtures/countdown_timewarped/countdown_varispeed 16.png +0 -0
  126. data/test/fixtures/countdown_timewarped/countdown_varispeed 17.png +0 -0
  127. data/test/fixtures/countdown_timewarped/countdown_varispeed 18.png +0 -0
  128. data/test/fixtures/countdown_timewarped/countdown_varispeed 19.png +0 -0
  129. data/test/fixtures/countdown_timewarped/countdown_varispeed 20.png +0 -0
  130. data/test/fixtures/countdown_timewarped/countdown_varispeed 21.png +0 -0
  131. data/test/fixtures/countdown_timewarped/countdown_varispeed 22.png +0 -0
  132. data/test/fixtures/countdown_timewarped/countdown_varispeed 23.png +0 -0
  133. data/test/fixtures/countdown_timewarped/countdown_varispeed 24.png +0 -0
  134. data/test/fixtures/countdown_timewarped/countdown_varispeed 25.png +0 -0
  135. data/test/fixtures/countdown_timewarped/countdown_varispeed 26.png +0 -0
  136. data/test/fixtures/countdown_timewarped/countdown_varispeed 27.png +0 -0
  137. data/test/fixtures/countdown_timewarped/countdown_varispeed 28.png +0 -0
  138. data/test/fixtures/countdown_timewarped/countdown_varispeed 29.png +0 -0
  139. data/test/fixtures/countdown_timewarped/countdown_varispeed 30.png +0 -0
  140. data/test/fixtures/countdown_timewarped/countdown_varispeed 31.png +0 -0
  141. data/test/fixtures/countdown_timewarped/countdown_varispeed 32.png +0 -0
  142. data/test/fixtures/countdown_timewarped/countdown_varispeed 33.png +0 -0
  143. data/test/fixtures/countdown_timewarped/countdown_varispeed 34.png +0 -0
  144. data/test/fixtures/countdown_timewarped/countdown_varispeed 35.png +0 -0
  145. data/test/fixtures/countdown_timewarped/countdown_varispeed 36.png +0 -0
  146. data/test/fixtures/countdown_timewarped/countdown_varispeed 37.png +0 -0
  147. data/test/fixtures/countdown_timewarped/countdown_varispeed 38.png +0 -0
  148. data/test/fixtures/countdown_timewarped/countdown_varispeed 39.png +0 -0
  149. data/test/fixtures/countdown_timewarped/countdown_varispeed 40.png +0 -0
  150. data/test/fixtures/countdown_timewarped/countdown_varispeed 41.png +0 -0
  151. data/test/fixtures/countdown_timewarped/countdown_varispeed 42.png +0 -0
  152. data/test/fixtures/countdown_timewarped/countdown_varispeed 43.png +0 -0
  153. data/test/fixtures/countdown_timewarped/countdown_varispeed 44.png +0 -0
  154. data/test/fixtures/countdown_timewarped/countdown_varispeed 45.png +0 -0
  155. data/test/fixtures/countdown_timewarped/countdown_varispeed 46.png +0 -0
  156. data/test/fixtures/countdown_timewarped/countdown_varispeed 47.png +0 -0
  157. data/test/fixtures/countdown_timewarped/countdown_varispeed 48.png +0 -0
  158. data/test/fixtures/countdown_timewarped/countdown_varispeed 49.png +0 -0
  159. data/test/fixtures/countdown_timewarped/countdown_varispeed 50.png +0 -0
  160. data/test/fixtures/countdown_timewarped/countdown_varispeed.framecurve.txt +11 -0
  161. data/test/test_framecurve_from_fcp_xml_binary.rb +1 -0
  162. data/test/test_framecurve_validator.rb +9 -0
  163. metadata +160 -20
data/Gemfile CHANGED
@@ -1,6 +1,5 @@
1
1
  source "http://rubygems.org"
2
2
 
3
- gem "term-ansicolor"
4
3
  group :development do
5
4
  gem "jeweler", "~> 1.6.4"
6
5
  gem "rake"
@@ -1,3 +1,7 @@
1
+ 2.2.1
2
+
3
+ * Remove term-ansicolor dependency
4
+
1
5
  2.2.0
2
6
 
3
7
  * Let Parser add the filename to the curve when parsing
@@ -1,9 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
  require File.dirname(__FILE__) + "/../lib/framecurve"
3
- require 'term/ansicolor'
4
3
 
5
4
  class Color
6
- extend Term::ANSIColor
5
+ def self.method_missing(*a)
6
+ yield
7
+ end
7
8
  end
8
9
 
9
10
  raise "Pass at least one path to a framecurve file as a argument" if ARGV.empty?
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "framecurve"
8
- s.version = "2.2.0"
8
+ s.version = "2.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Julik"]
12
- s.date = "2012-01-10"
12
+ s.date = "2012-01-25"
13
13
  s.description = " Parser, validation and interpolation"
14
14
  s.email = "me@julik.nl"
15
15
  s.executables = ["framecurve_from_fcp_xml", "framecurve_validator"]
@@ -36,6 +36,157 @@ Gem::Specification.new do |s|
36
36
  "lib/framecurve/serializer.rb",
37
37
  "lib/framecurve/tuple.rb",
38
38
  "lib/framecurve/validator.rb",
39
+ "test/fixtures/countdown_standard/countdown_asis 001.png",
40
+ "test/fixtures/countdown_standard/countdown_asis 002.png",
41
+ "test/fixtures/countdown_standard/countdown_asis 003.png",
42
+ "test/fixtures/countdown_standard/countdown_asis 004.png",
43
+ "test/fixtures/countdown_standard/countdown_asis 005.png",
44
+ "test/fixtures/countdown_standard/countdown_asis 006.png",
45
+ "test/fixtures/countdown_standard/countdown_asis 007.png",
46
+ "test/fixtures/countdown_standard/countdown_asis 008.png",
47
+ "test/fixtures/countdown_standard/countdown_asis 009.png",
48
+ "test/fixtures/countdown_standard/countdown_asis 010.png",
49
+ "test/fixtures/countdown_standard/countdown_asis 011.png",
50
+ "test/fixtures/countdown_standard/countdown_asis 012.png",
51
+ "test/fixtures/countdown_standard/countdown_asis 013.png",
52
+ "test/fixtures/countdown_standard/countdown_asis 014.png",
53
+ "test/fixtures/countdown_standard/countdown_asis 015.png",
54
+ "test/fixtures/countdown_standard/countdown_asis 016.png",
55
+ "test/fixtures/countdown_standard/countdown_asis 017.png",
56
+ "test/fixtures/countdown_standard/countdown_asis 018.png",
57
+ "test/fixtures/countdown_standard/countdown_asis 019.png",
58
+ "test/fixtures/countdown_standard/countdown_asis 020.png",
59
+ "test/fixtures/countdown_standard/countdown_asis 021.png",
60
+ "test/fixtures/countdown_standard/countdown_asis 022.png",
61
+ "test/fixtures/countdown_standard/countdown_asis 023.png",
62
+ "test/fixtures/countdown_standard/countdown_asis 024.png",
63
+ "test/fixtures/countdown_standard/countdown_asis 025.png",
64
+ "test/fixtures/countdown_standard/countdown_asis 026.png",
65
+ "test/fixtures/countdown_standard/countdown_asis 027.png",
66
+ "test/fixtures/countdown_standard/countdown_asis 028.png",
67
+ "test/fixtures/countdown_standard/countdown_asis 029.png",
68
+ "test/fixtures/countdown_standard/countdown_asis 030.png",
69
+ "test/fixtures/countdown_standard/countdown_asis 031.png",
70
+ "test/fixtures/countdown_standard/countdown_asis 032.png",
71
+ "test/fixtures/countdown_standard/countdown_asis 033.png",
72
+ "test/fixtures/countdown_standard/countdown_asis 034.png",
73
+ "test/fixtures/countdown_standard/countdown_asis 035.png",
74
+ "test/fixtures/countdown_standard/countdown_asis 036.png",
75
+ "test/fixtures/countdown_standard/countdown_asis 037.png",
76
+ "test/fixtures/countdown_standard/countdown_asis 038.png",
77
+ "test/fixtures/countdown_standard/countdown_asis 039.png",
78
+ "test/fixtures/countdown_standard/countdown_asis 040.png",
79
+ "test/fixtures/countdown_standard/countdown_asis 041.png",
80
+ "test/fixtures/countdown_standard/countdown_asis 042.png",
81
+ "test/fixtures/countdown_standard/countdown_asis 043.png",
82
+ "test/fixtures/countdown_standard/countdown_asis 044.png",
83
+ "test/fixtures/countdown_standard/countdown_asis 045.png",
84
+ "test/fixtures/countdown_standard/countdown_asis 046.png",
85
+ "test/fixtures/countdown_standard/countdown_asis 047.png",
86
+ "test/fixtures/countdown_standard/countdown_asis 048.png",
87
+ "test/fixtures/countdown_standard/countdown_asis 049.png",
88
+ "test/fixtures/countdown_standard/countdown_asis 050.png",
89
+ "test/fixtures/countdown_standard/countdown_asis 051.png",
90
+ "test/fixtures/countdown_standard/countdown_asis 052.png",
91
+ "test/fixtures/countdown_standard/countdown_asis 053.png",
92
+ "test/fixtures/countdown_standard/countdown_asis 054.png",
93
+ "test/fixtures/countdown_standard/countdown_asis 055.png",
94
+ "test/fixtures/countdown_standard/countdown_asis 056.png",
95
+ "test/fixtures/countdown_standard/countdown_asis 057.png",
96
+ "test/fixtures/countdown_standard/countdown_asis 058.png",
97
+ "test/fixtures/countdown_standard/countdown_asis 059.png",
98
+ "test/fixtures/countdown_standard/countdown_asis 060.png",
99
+ "test/fixtures/countdown_standard/countdown_asis 061.png",
100
+ "test/fixtures/countdown_standard/countdown_asis 062.png",
101
+ "test/fixtures/countdown_standard/countdown_asis 063.png",
102
+ "test/fixtures/countdown_standard/countdown_asis 064.png",
103
+ "test/fixtures/countdown_standard/countdown_asis 065.png",
104
+ "test/fixtures/countdown_standard/countdown_asis 066.png",
105
+ "test/fixtures/countdown_standard/countdown_asis 067.png",
106
+ "test/fixtures/countdown_standard/countdown_asis 068.png",
107
+ "test/fixtures/countdown_standard/countdown_asis 069.png",
108
+ "test/fixtures/countdown_standard/countdown_asis 070.png",
109
+ "test/fixtures/countdown_standard/countdown_asis 071.png",
110
+ "test/fixtures/countdown_standard/countdown_asis 072.png",
111
+ "test/fixtures/countdown_standard/countdown_asis 073.png",
112
+ "test/fixtures/countdown_standard/countdown_asis 074.png",
113
+ "test/fixtures/countdown_standard/countdown_asis 075.png",
114
+ "test/fixtures/countdown_standard/countdown_asis 076.png",
115
+ "test/fixtures/countdown_standard/countdown_asis 077.png",
116
+ "test/fixtures/countdown_standard/countdown_asis 078.png",
117
+ "test/fixtures/countdown_standard/countdown_asis 079.png",
118
+ "test/fixtures/countdown_standard/countdown_asis 080.png",
119
+ "test/fixtures/countdown_standard/countdown_asis 081.png",
120
+ "test/fixtures/countdown_standard/countdown_asis 082.png",
121
+ "test/fixtures/countdown_standard/countdown_asis 083.png",
122
+ "test/fixtures/countdown_standard/countdown_asis 084.png",
123
+ "test/fixtures/countdown_standard/countdown_asis 085.png",
124
+ "test/fixtures/countdown_standard/countdown_asis 086.png",
125
+ "test/fixtures/countdown_standard/countdown_asis 087.png",
126
+ "test/fixtures/countdown_standard/countdown_asis 088.png",
127
+ "test/fixtures/countdown_standard/countdown_asis 089.png",
128
+ "test/fixtures/countdown_standard/countdown_asis 090.png",
129
+ "test/fixtures/countdown_standard/countdown_asis 091.png",
130
+ "test/fixtures/countdown_standard/countdown_asis 092.png",
131
+ "test/fixtures/countdown_standard/countdown_asis 093.png",
132
+ "test/fixtures/countdown_standard/countdown_asis 094.png",
133
+ "test/fixtures/countdown_standard/countdown_asis 095.png",
134
+ "test/fixtures/countdown_standard/countdown_asis 096.png",
135
+ "test/fixtures/countdown_standard/countdown_asis 097.png",
136
+ "test/fixtures/countdown_standard/countdown_asis 098.png",
137
+ "test/fixtures/countdown_standard/countdown_asis 099.png",
138
+ "test/fixtures/countdown_standard/countdown_asis 100.png",
139
+ "test/fixtures/countdown_timewarped/countdown_varispeed 01.png",
140
+ "test/fixtures/countdown_timewarped/countdown_varispeed 02.png",
141
+ "test/fixtures/countdown_timewarped/countdown_varispeed 03.png",
142
+ "test/fixtures/countdown_timewarped/countdown_varispeed 04.png",
143
+ "test/fixtures/countdown_timewarped/countdown_varispeed 05.png",
144
+ "test/fixtures/countdown_timewarped/countdown_varispeed 06.png",
145
+ "test/fixtures/countdown_timewarped/countdown_varispeed 07.png",
146
+ "test/fixtures/countdown_timewarped/countdown_varispeed 08.png",
147
+ "test/fixtures/countdown_timewarped/countdown_varispeed 09.png",
148
+ "test/fixtures/countdown_timewarped/countdown_varispeed 10.png",
149
+ "test/fixtures/countdown_timewarped/countdown_varispeed 11.png",
150
+ "test/fixtures/countdown_timewarped/countdown_varispeed 12.png",
151
+ "test/fixtures/countdown_timewarped/countdown_varispeed 13.png",
152
+ "test/fixtures/countdown_timewarped/countdown_varispeed 14.png",
153
+ "test/fixtures/countdown_timewarped/countdown_varispeed 15.png",
154
+ "test/fixtures/countdown_timewarped/countdown_varispeed 16.png",
155
+ "test/fixtures/countdown_timewarped/countdown_varispeed 17.png",
156
+ "test/fixtures/countdown_timewarped/countdown_varispeed 18.png",
157
+ "test/fixtures/countdown_timewarped/countdown_varispeed 19.png",
158
+ "test/fixtures/countdown_timewarped/countdown_varispeed 20.png",
159
+ "test/fixtures/countdown_timewarped/countdown_varispeed 21.png",
160
+ "test/fixtures/countdown_timewarped/countdown_varispeed 22.png",
161
+ "test/fixtures/countdown_timewarped/countdown_varispeed 23.png",
162
+ "test/fixtures/countdown_timewarped/countdown_varispeed 24.png",
163
+ "test/fixtures/countdown_timewarped/countdown_varispeed 25.png",
164
+ "test/fixtures/countdown_timewarped/countdown_varispeed 26.png",
165
+ "test/fixtures/countdown_timewarped/countdown_varispeed 27.png",
166
+ "test/fixtures/countdown_timewarped/countdown_varispeed 28.png",
167
+ "test/fixtures/countdown_timewarped/countdown_varispeed 29.png",
168
+ "test/fixtures/countdown_timewarped/countdown_varispeed 30.png",
169
+ "test/fixtures/countdown_timewarped/countdown_varispeed 31.png",
170
+ "test/fixtures/countdown_timewarped/countdown_varispeed 32.png",
171
+ "test/fixtures/countdown_timewarped/countdown_varispeed 33.png",
172
+ "test/fixtures/countdown_timewarped/countdown_varispeed 34.png",
173
+ "test/fixtures/countdown_timewarped/countdown_varispeed 35.png",
174
+ "test/fixtures/countdown_timewarped/countdown_varispeed 36.png",
175
+ "test/fixtures/countdown_timewarped/countdown_varispeed 37.png",
176
+ "test/fixtures/countdown_timewarped/countdown_varispeed 38.png",
177
+ "test/fixtures/countdown_timewarped/countdown_varispeed 39.png",
178
+ "test/fixtures/countdown_timewarped/countdown_varispeed 40.png",
179
+ "test/fixtures/countdown_timewarped/countdown_varispeed 41.png",
180
+ "test/fixtures/countdown_timewarped/countdown_varispeed 42.png",
181
+ "test/fixtures/countdown_timewarped/countdown_varispeed 43.png",
182
+ "test/fixtures/countdown_timewarped/countdown_varispeed 44.png",
183
+ "test/fixtures/countdown_timewarped/countdown_varispeed 45.png",
184
+ "test/fixtures/countdown_timewarped/countdown_varispeed 46.png",
185
+ "test/fixtures/countdown_timewarped/countdown_varispeed 47.png",
186
+ "test/fixtures/countdown_timewarped/countdown_varispeed 48.png",
187
+ "test/fixtures/countdown_timewarped/countdown_varispeed 49.png",
188
+ "test/fixtures/countdown_timewarped/countdown_varispeed 50.png",
189
+ "test/fixtures/countdown_timewarped/countdown_varispeed.framecurve.txt",
39
190
  "test/fixtures/fcp_xml/CountDOWN.xml",
40
191
  "test/fixtures/framecurves/err-neg-frames.framecurve.txt",
41
192
  "test/fixtures/framecurves/err-no-tuples.framecurve.txt",
@@ -54,25 +205,22 @@ Gem::Specification.new do |s|
54
205
  s.homepage = "http://github.com/guerilla-di/framecurve"
55
206
  s.licenses = ["MIT"]
56
207
  s.require_paths = ["lib"]
57
- s.rubygems_version = "1.8.11"
208
+ s.rubygems_version = "1.8.15"
58
209
  s.summary = "Handles Framecurve files"
59
210
 
60
211
  if s.respond_to? :specification_version then
61
212
  s.specification_version = 3
62
213
 
63
214
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
64
- s.add_runtime_dependency(%q<term-ansicolor>, [">= 0"])
65
215
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
66
216
  s.add_development_dependency(%q<rake>, [">= 0"])
67
217
  s.add_development_dependency(%q<cli_test>, [">= 0"])
68
218
  else
69
- s.add_dependency(%q<term-ansicolor>, [">= 0"])
70
219
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
71
220
  s.add_dependency(%q<rake>, [">= 0"])
72
221
  s.add_dependency(%q<cli_test>, [">= 0"])
73
222
  end
74
223
  else
75
- s.add_dependency(%q<term-ansicolor>, [">= 0"])
76
224
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
77
225
  s.add_dependency(%q<rake>, [">= 0"])
78
226
  s.add_dependency(%q<cli_test>, [">= 0"])
@@ -1,5 +1,5 @@
1
1
  module Framecurve
2
- VERSION = "2.2.0"
2
+ VERSION = "2.2.1"
3
3
 
4
4
  # Is raised when a malformed framecurve bit has occurred in the system
5
5
  class Malformed < RuntimeError
@@ -7,7 +7,10 @@ class Framecurve::Curve
7
7
  attr_accessor :filename
8
8
 
9
9
  def initialize(*elements)
10
- @elements = elements.flatten
10
+ @elements = []
11
+ elements.flatten.each do | e |
12
+ @elements.push(e)
13
+ end
11
14
  end
12
15
 
13
16
  # Iterates over all the tuples in the curve
@@ -55,7 +58,7 @@ class Framecurve::Curve
55
58
 
56
59
  # Returns the number of lines in this curve file
57
60
  def length
58
- @elements.length
61
+ @elements.size
59
62
  end
60
63
 
61
64
  # Tells whether the curve contains any elements
@@ -67,7 +67,7 @@ class FCP_XML
67
67
 
68
68
  c.comment!("From FCP XML %s" % source_filename)
69
69
  c.comment!("Information from %s" % clipitem.xpath)
70
-
70
+ # c.comment!("Sequence start TC is %s", timecode_from(param))
71
71
  clip_item_name = @xml.xpath_first_text(clipitem, "name")
72
72
 
73
73
  # The clip in point in the edit timeline, also first frame of the TW
@@ -84,6 +84,11 @@ class FCP_XML
84
84
  c
85
85
  end
86
86
 
87
+ def timecode_from(param)
88
+ sequence = @xml.parent_by_name(param, "sequence")
89
+ tc = @xml.xpath_first_text(sequence, "timecode/string")
90
+ end
91
+
87
92
  def write_keyframe(c, kf, in_point, out_point)
88
93
  kf_when, kf_value = @xml.xpath_first_text(kf, "when").to_i, @xml.xpath_first_text(kf, "value").to_f
89
94
  # TODO: should be a flag
@@ -49,6 +49,15 @@ class Framecurve::XMLBridge
49
49
  return ancestor
50
50
  end
51
51
 
52
+ def parent_by_name(of_node, parent_name)
53
+ ancestor = of_node
54
+ until ancestor == ancestor.parent
55
+ return ancestor if ancestor.node_name == parent_name
56
+ ancestor == ancestor.parent
57
+ end
58
+ nil
59
+ end
60
+
52
61
  def element_text(elem)
53
62
  elem.text.to_s
54
63
  end
@@ -70,6 +70,14 @@ class Framecurve::Validator
70
70
  end
71
71
  end
72
72
 
73
+ def verify_no_linebreaks_in_comments(curve)
74
+ curve.each_with_index do | r, i |
75
+ if r.comment? && (r.text.include?("\r") || r.text.include?("\n"))
76
+ @errors.push("The comment at line %d contains a line break" % (i + 1))
77
+ end
78
+ end
79
+ end
80
+
73
81
  def verify_non_negative_source_and_destination_frames(curve)
74
82
  curve.each_with_index do | t, i |
75
83
  next unless t.tuple?
@@ -0,0 +1,11 @@
1
+ # http://framecurve.org/specification-v1
2
+ # at_frame use_frame_of_source
3
+ # From FCP XML CountDOWN.xml
4
+ # Information from /xmeml/project/children/sequence/media/video/track/clipitem[1]
5
+ 1 13.00000
6
+ 17 15.00000
7
+ 29 28.00000
8
+ 34 32.00000
9
+ 41 41.00000
10
+ 47 43.00000
11
+ 51 63.00000
@@ -28,6 +28,7 @@ class TestFramecurveFromFCPXML < Test::Unit::TestCase
28
28
  assert_equal 11, curve.length
29
29
  assert_match /From FCP XML/, curve[2].text
30
30
  assert_equal "Information from /xmeml/project/children/sequence/media/video/track/clipitem[1]", curve[3].text
31
+
31
32
  assert_equal Framecurve::Tuple.new(1, 13.0), curve[4]
32
33
  assert_equal Framecurve::Tuple.new(51, 63.0), curve[-1]
33
34
 
@@ -77,6 +77,15 @@ class TestFramecurveValidator < Test::Unit::TestCase
77
77
  assert_equal ["The frame sequencing is out of order (expected [1, 10] but got [10, 1]). The framecurve spec mandates that frames are recorded sequentially"], v.errors
78
78
  end
79
79
 
80
+ def test_should_error_out_with_linebreaks_in_comment
81
+ c = Framecurve::Curve.new( Framecurve::Comment.new("Foo bar \r\n"), Framecurve::Tuple.new(10, 123.4))
82
+ v = Framecurve::Validator.new
83
+ v.validate(c)
84
+ assert !v.ok?
85
+ assert v.any_errors?
86
+ assert_equal ["The comment at line 1 contains a line break"], v.errors
87
+ end
88
+
80
89
  def test_should_error_out_with_neg_source_and_dest_values
81
90
  c = Framecurve::Curve.new( Framecurve::Tuple.new(-10, 123.4), Framecurve::Tuple.new(1, -345.67) )
82
91
  v = Framecurve::Validator.new
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: framecurve
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-10 00:00:00.000000000 Z
12
+ date: 2012-01-25 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: term-ansicolor
16
- requirement: &11888320 !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: *11888320
25
14
  - !ruby/object:Gem::Dependency
26
15
  name: jeweler
27
- requirement: &11888080 !ruby/object:Gem::Requirement
16
+ requirement: &9476990 !ruby/object:Gem::Requirement
28
17
  none: false
29
18
  requirements:
30
19
  - - ~>
@@ -32,10 +21,10 @@ dependencies:
32
21
  version: 1.6.4
33
22
  type: :development
34
23
  prerelease: false
35
- version_requirements: *11888080
24
+ version_requirements: *9476990
36
25
  - !ruby/object:Gem::Dependency
37
26
  name: rake
38
- requirement: &11887840 !ruby/object:Gem::Requirement
27
+ requirement: &9476710 !ruby/object:Gem::Requirement
39
28
  none: false
40
29
  requirements:
41
30
  - - ! '>='
@@ -43,10 +32,10 @@ dependencies:
43
32
  version: '0'
44
33
  type: :development
45
34
  prerelease: false
46
- version_requirements: *11887840
35
+ version_requirements: *9476710
47
36
  - !ruby/object:Gem::Dependency
48
37
  name: cli_test
49
- requirement: &11887600 !ruby/object:Gem::Requirement
38
+ requirement: &9476440 !ruby/object:Gem::Requirement
50
39
  none: false
51
40
  requirements:
52
41
  - - ! '>='
@@ -54,7 +43,7 @@ dependencies:
54
43
  version: '0'
55
44
  type: :development
56
45
  prerelease: false
57
- version_requirements: *11887600
46
+ version_requirements: *9476440
58
47
  description: ! ' Parser, validation and interpolation'
59
48
  email: me@julik.nl
60
49
  executables:
@@ -83,6 +72,157 @@ files:
83
72
  - lib/framecurve/serializer.rb
84
73
  - lib/framecurve/tuple.rb
85
74
  - lib/framecurve/validator.rb
75
+ - test/fixtures/countdown_standard/countdown_asis 001.png
76
+ - test/fixtures/countdown_standard/countdown_asis 002.png
77
+ - test/fixtures/countdown_standard/countdown_asis 003.png
78
+ - test/fixtures/countdown_standard/countdown_asis 004.png
79
+ - test/fixtures/countdown_standard/countdown_asis 005.png
80
+ - test/fixtures/countdown_standard/countdown_asis 006.png
81
+ - test/fixtures/countdown_standard/countdown_asis 007.png
82
+ - test/fixtures/countdown_standard/countdown_asis 008.png
83
+ - test/fixtures/countdown_standard/countdown_asis 009.png
84
+ - test/fixtures/countdown_standard/countdown_asis 010.png
85
+ - test/fixtures/countdown_standard/countdown_asis 011.png
86
+ - test/fixtures/countdown_standard/countdown_asis 012.png
87
+ - test/fixtures/countdown_standard/countdown_asis 013.png
88
+ - test/fixtures/countdown_standard/countdown_asis 014.png
89
+ - test/fixtures/countdown_standard/countdown_asis 015.png
90
+ - test/fixtures/countdown_standard/countdown_asis 016.png
91
+ - test/fixtures/countdown_standard/countdown_asis 017.png
92
+ - test/fixtures/countdown_standard/countdown_asis 018.png
93
+ - test/fixtures/countdown_standard/countdown_asis 019.png
94
+ - test/fixtures/countdown_standard/countdown_asis 020.png
95
+ - test/fixtures/countdown_standard/countdown_asis 021.png
96
+ - test/fixtures/countdown_standard/countdown_asis 022.png
97
+ - test/fixtures/countdown_standard/countdown_asis 023.png
98
+ - test/fixtures/countdown_standard/countdown_asis 024.png
99
+ - test/fixtures/countdown_standard/countdown_asis 025.png
100
+ - test/fixtures/countdown_standard/countdown_asis 026.png
101
+ - test/fixtures/countdown_standard/countdown_asis 027.png
102
+ - test/fixtures/countdown_standard/countdown_asis 028.png
103
+ - test/fixtures/countdown_standard/countdown_asis 029.png
104
+ - test/fixtures/countdown_standard/countdown_asis 030.png
105
+ - test/fixtures/countdown_standard/countdown_asis 031.png
106
+ - test/fixtures/countdown_standard/countdown_asis 032.png
107
+ - test/fixtures/countdown_standard/countdown_asis 033.png
108
+ - test/fixtures/countdown_standard/countdown_asis 034.png
109
+ - test/fixtures/countdown_standard/countdown_asis 035.png
110
+ - test/fixtures/countdown_standard/countdown_asis 036.png
111
+ - test/fixtures/countdown_standard/countdown_asis 037.png
112
+ - test/fixtures/countdown_standard/countdown_asis 038.png
113
+ - test/fixtures/countdown_standard/countdown_asis 039.png
114
+ - test/fixtures/countdown_standard/countdown_asis 040.png
115
+ - test/fixtures/countdown_standard/countdown_asis 041.png
116
+ - test/fixtures/countdown_standard/countdown_asis 042.png
117
+ - test/fixtures/countdown_standard/countdown_asis 043.png
118
+ - test/fixtures/countdown_standard/countdown_asis 044.png
119
+ - test/fixtures/countdown_standard/countdown_asis 045.png
120
+ - test/fixtures/countdown_standard/countdown_asis 046.png
121
+ - test/fixtures/countdown_standard/countdown_asis 047.png
122
+ - test/fixtures/countdown_standard/countdown_asis 048.png
123
+ - test/fixtures/countdown_standard/countdown_asis 049.png
124
+ - test/fixtures/countdown_standard/countdown_asis 050.png
125
+ - test/fixtures/countdown_standard/countdown_asis 051.png
126
+ - test/fixtures/countdown_standard/countdown_asis 052.png
127
+ - test/fixtures/countdown_standard/countdown_asis 053.png
128
+ - test/fixtures/countdown_standard/countdown_asis 054.png
129
+ - test/fixtures/countdown_standard/countdown_asis 055.png
130
+ - test/fixtures/countdown_standard/countdown_asis 056.png
131
+ - test/fixtures/countdown_standard/countdown_asis 057.png
132
+ - test/fixtures/countdown_standard/countdown_asis 058.png
133
+ - test/fixtures/countdown_standard/countdown_asis 059.png
134
+ - test/fixtures/countdown_standard/countdown_asis 060.png
135
+ - test/fixtures/countdown_standard/countdown_asis 061.png
136
+ - test/fixtures/countdown_standard/countdown_asis 062.png
137
+ - test/fixtures/countdown_standard/countdown_asis 063.png
138
+ - test/fixtures/countdown_standard/countdown_asis 064.png
139
+ - test/fixtures/countdown_standard/countdown_asis 065.png
140
+ - test/fixtures/countdown_standard/countdown_asis 066.png
141
+ - test/fixtures/countdown_standard/countdown_asis 067.png
142
+ - test/fixtures/countdown_standard/countdown_asis 068.png
143
+ - test/fixtures/countdown_standard/countdown_asis 069.png
144
+ - test/fixtures/countdown_standard/countdown_asis 070.png
145
+ - test/fixtures/countdown_standard/countdown_asis 071.png
146
+ - test/fixtures/countdown_standard/countdown_asis 072.png
147
+ - test/fixtures/countdown_standard/countdown_asis 073.png
148
+ - test/fixtures/countdown_standard/countdown_asis 074.png
149
+ - test/fixtures/countdown_standard/countdown_asis 075.png
150
+ - test/fixtures/countdown_standard/countdown_asis 076.png
151
+ - test/fixtures/countdown_standard/countdown_asis 077.png
152
+ - test/fixtures/countdown_standard/countdown_asis 078.png
153
+ - test/fixtures/countdown_standard/countdown_asis 079.png
154
+ - test/fixtures/countdown_standard/countdown_asis 080.png
155
+ - test/fixtures/countdown_standard/countdown_asis 081.png
156
+ - test/fixtures/countdown_standard/countdown_asis 082.png
157
+ - test/fixtures/countdown_standard/countdown_asis 083.png
158
+ - test/fixtures/countdown_standard/countdown_asis 084.png
159
+ - test/fixtures/countdown_standard/countdown_asis 085.png
160
+ - test/fixtures/countdown_standard/countdown_asis 086.png
161
+ - test/fixtures/countdown_standard/countdown_asis 087.png
162
+ - test/fixtures/countdown_standard/countdown_asis 088.png
163
+ - test/fixtures/countdown_standard/countdown_asis 089.png
164
+ - test/fixtures/countdown_standard/countdown_asis 090.png
165
+ - test/fixtures/countdown_standard/countdown_asis 091.png
166
+ - test/fixtures/countdown_standard/countdown_asis 092.png
167
+ - test/fixtures/countdown_standard/countdown_asis 093.png
168
+ - test/fixtures/countdown_standard/countdown_asis 094.png
169
+ - test/fixtures/countdown_standard/countdown_asis 095.png
170
+ - test/fixtures/countdown_standard/countdown_asis 096.png
171
+ - test/fixtures/countdown_standard/countdown_asis 097.png
172
+ - test/fixtures/countdown_standard/countdown_asis 098.png
173
+ - test/fixtures/countdown_standard/countdown_asis 099.png
174
+ - test/fixtures/countdown_standard/countdown_asis 100.png
175
+ - test/fixtures/countdown_timewarped/countdown_varispeed 01.png
176
+ - test/fixtures/countdown_timewarped/countdown_varispeed 02.png
177
+ - test/fixtures/countdown_timewarped/countdown_varispeed 03.png
178
+ - test/fixtures/countdown_timewarped/countdown_varispeed 04.png
179
+ - test/fixtures/countdown_timewarped/countdown_varispeed 05.png
180
+ - test/fixtures/countdown_timewarped/countdown_varispeed 06.png
181
+ - test/fixtures/countdown_timewarped/countdown_varispeed 07.png
182
+ - test/fixtures/countdown_timewarped/countdown_varispeed 08.png
183
+ - test/fixtures/countdown_timewarped/countdown_varispeed 09.png
184
+ - test/fixtures/countdown_timewarped/countdown_varispeed 10.png
185
+ - test/fixtures/countdown_timewarped/countdown_varispeed 11.png
186
+ - test/fixtures/countdown_timewarped/countdown_varispeed 12.png
187
+ - test/fixtures/countdown_timewarped/countdown_varispeed 13.png
188
+ - test/fixtures/countdown_timewarped/countdown_varispeed 14.png
189
+ - test/fixtures/countdown_timewarped/countdown_varispeed 15.png
190
+ - test/fixtures/countdown_timewarped/countdown_varispeed 16.png
191
+ - test/fixtures/countdown_timewarped/countdown_varispeed 17.png
192
+ - test/fixtures/countdown_timewarped/countdown_varispeed 18.png
193
+ - test/fixtures/countdown_timewarped/countdown_varispeed 19.png
194
+ - test/fixtures/countdown_timewarped/countdown_varispeed 20.png
195
+ - test/fixtures/countdown_timewarped/countdown_varispeed 21.png
196
+ - test/fixtures/countdown_timewarped/countdown_varispeed 22.png
197
+ - test/fixtures/countdown_timewarped/countdown_varispeed 23.png
198
+ - test/fixtures/countdown_timewarped/countdown_varispeed 24.png
199
+ - test/fixtures/countdown_timewarped/countdown_varispeed 25.png
200
+ - test/fixtures/countdown_timewarped/countdown_varispeed 26.png
201
+ - test/fixtures/countdown_timewarped/countdown_varispeed 27.png
202
+ - test/fixtures/countdown_timewarped/countdown_varispeed 28.png
203
+ - test/fixtures/countdown_timewarped/countdown_varispeed 29.png
204
+ - test/fixtures/countdown_timewarped/countdown_varispeed 30.png
205
+ - test/fixtures/countdown_timewarped/countdown_varispeed 31.png
206
+ - test/fixtures/countdown_timewarped/countdown_varispeed 32.png
207
+ - test/fixtures/countdown_timewarped/countdown_varispeed 33.png
208
+ - test/fixtures/countdown_timewarped/countdown_varispeed 34.png
209
+ - test/fixtures/countdown_timewarped/countdown_varispeed 35.png
210
+ - test/fixtures/countdown_timewarped/countdown_varispeed 36.png
211
+ - test/fixtures/countdown_timewarped/countdown_varispeed 37.png
212
+ - test/fixtures/countdown_timewarped/countdown_varispeed 38.png
213
+ - test/fixtures/countdown_timewarped/countdown_varispeed 39.png
214
+ - test/fixtures/countdown_timewarped/countdown_varispeed 40.png
215
+ - test/fixtures/countdown_timewarped/countdown_varispeed 41.png
216
+ - test/fixtures/countdown_timewarped/countdown_varispeed 42.png
217
+ - test/fixtures/countdown_timewarped/countdown_varispeed 43.png
218
+ - test/fixtures/countdown_timewarped/countdown_varispeed 44.png
219
+ - test/fixtures/countdown_timewarped/countdown_varispeed 45.png
220
+ - test/fixtures/countdown_timewarped/countdown_varispeed 46.png
221
+ - test/fixtures/countdown_timewarped/countdown_varispeed 47.png
222
+ - test/fixtures/countdown_timewarped/countdown_varispeed 48.png
223
+ - test/fixtures/countdown_timewarped/countdown_varispeed 49.png
224
+ - test/fixtures/countdown_timewarped/countdown_varispeed 50.png
225
+ - test/fixtures/countdown_timewarped/countdown_varispeed.framecurve.txt
86
226
  - test/fixtures/fcp_xml/CountDOWN.xml
87
227
  - test/fixtures/framecurves/err-neg-frames.framecurve.txt
88
228
  - test/fixtures/framecurves/err-no-tuples.framecurve.txt
@@ -118,7 +258,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
258
  version: '0'
119
259
  requirements: []
120
260
  rubyforge_project:
121
- rubygems_version: 1.8.11
261
+ rubygems_version: 1.8.15
122
262
  signing_key:
123
263
  specification_version: 3
124
264
  summary: Handles Framecurve files