edl 0.0.7 → 0.0.8

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 CHANGED
@@ -1,23 +1,27 @@
1
- === 0.0.7 / 2000-01-18
1
+ === 0.0.8 / 2009-01-18
2
+
3
+ * Switch Rubyforge project to guerilla-di
4
+
5
+ === 0.0.7 / 2009-01-18
2
6
 
3
7
  * Register line_number in the original EDL for parsed events
4
8
  * Preserve the star in comments that have it
5
9
 
6
- === 0.0.6 / 2000-01-14
10
+ === 0.0.6 / 2009-01-14
7
11
 
8
12
  * Fix comments in events appearing twice
9
13
  * Capture extra comments that have no star at the beginning as fallback
10
14
 
11
- === 0.0.5 / 2000-01-14
15
+ === 0.0.5 / 2009-01-14
12
16
 
13
17
  * EDL::Event#starts_with_transition? is an alias
14
18
  * EDL::Event#incoming_transition_duration works as a shortcut for EDL::Transition#duration
15
19
 
16
- === 0.0.4 / 2000-01-14
20
+ === 0.0.4 / 2009-01-14
17
21
 
18
22
  * EDL::Event#speed works as a shortcut for timewarp speed
19
23
 
20
- === 0.0.2 / 2000-01-14
24
+ === 0.0.2 / 2009-01-14
21
25
 
22
26
  * Fix reverse timewarps
23
27
  * Migrate to specs
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ Hoe::RUBY_FLAGS.replace ENV['RUBY_FLAGS'] || "-I#{%w(lib test).join(File::PATH_S
7
7
  (Hoe::RUBY_DEBUG ? " #{RUBY_DEBUG}" : '')
8
8
 
9
9
  Hoe.new('edl', EDL::VERSION) do |p|
10
- p.rubyforge_name = 'wiretap'
10
+ p.rubyforge_name = 'guerilla-di'
11
11
  p.developer('Julik', 'me@julik.nl')
12
12
  p.extra_deps << "flexmock" << "timecode" << "test-spec"
13
13
  p.remote_rdoc_dir = 'edl'
data/lib/edl.rb CHANGED
@@ -5,10 +5,11 @@ require 'stringio'
5
5
  require File.dirname(__FILE__) + '/edl/event'
6
6
  require File.dirname(__FILE__) + '/edl/transition'
7
7
  require File.dirname(__FILE__) + '/edl/timewarp'
8
+ require File.dirname(__FILE__) + '/edl/parser'
8
9
 
9
10
  # A simplistic EDL parser
10
11
  module EDL
11
- VERSION = "0.0.7"
12
+ VERSION = "0.0.8"
12
13
  DEFAULT_FPS = 25.0
13
14
 
14
15
  # Represents an EDL, is returned from the parser. Traditional operation is functional style, i.e.
@@ -314,51 +315,5 @@ module EDL
314
315
  end
315
316
 
316
317
  #:startdoc:
317
-
318
- # Is used to parse an EDL
319
- class Parser
320
-
321
- attr_reader :fps
322
-
323
- # Initialize an EDL parser. Pass the FPS to it, as the usual EDL does not contain any kind of reference
324
- # to it's framerate
325
- def initialize(with_fps = DEFAULT_FPS)
326
- @fps = with_fps
327
- end
328
-
329
- def get_matchers #:nodoc:
330
- [ EventMatcher.new(@fps), EffectMatcher.new, NameMatcher.new, TimewarpMatcher.new(@fps), CommentMatcher.new ]
331
- end
332
-
333
- # Parse a passed File or IO object line by line, or the whole string
334
- def parse(io)
335
- return parse(StringIO.new(io.to_s)) unless io.respond_to?(:eof?)
336
-
337
- stack, matchers = List.new, get_matchers
338
-
339
- at_line = 0
340
- until io.eof?
341
- at_line += 1
342
-
343
- current_line = io.gets.strip
344
- m = matchers.find{|m| m.matches?(current_line) }
345
- next unless m
346
-
347
- begin
348
- m.apply(stack, current_line)
349
- stack[-1].line_number = at_line if m.is_a?(EventMatcher)
350
- rescue Matcher::ApplyError => e
351
- STDERR.puts "Cannot parse #{current_line} - #{e}"
352
- end
353
- end
354
- stack
355
- end
356
-
357
- # Init a Timecode object from the passed elements with the passed framerate
358
- def self.timecode_from_line_elements(elements, fps) #:nodoc:
359
- args = (0..3).map{|_| elements.shift.to_i} + [fps.to_f]
360
- Timecode.at(*args)
361
- end
362
- end
363
318
 
364
319
  end
data/lib/edl/event.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module EDL
2
- # Represents an edit event
2
+ # Represents an edit event (or, more specifically, an EDL line denoting a clip being part of an EDL event)
3
3
  class Event
4
4
  # Event number as in the EDL
5
5
  attr_accessor :num
@@ -111,7 +111,7 @@ module EDL
111
111
  (rec_end_tc.to_i - rec_start_tc.to_i).to_i
112
112
  end
113
113
 
114
- # Get the record length of the event (how long it occupies in the EDL without an eventual outgoing transition)
114
+ # Get the record length of the event (how long it occupies in the EDL with an eventual outgoing transition)
115
115
  def rec_length_with_transition
116
116
  rec_length + outgoing_transition_duration.to_i
117
117
  end
@@ -135,7 +135,7 @@ module EDL
135
135
 
136
136
  # Speed of this clip in percent relative to the source speed. 100 for non-timewarped events
137
137
  def speed
138
- @timewarp ? @timewarp.speed : 100
138
+ @timewarp ? @timewarp.speed : 100.0
139
139
  end
140
140
 
141
141
  # Returns true if this event is a generator
data/test/test_edl.rb CHANGED
@@ -110,6 +110,11 @@ context "An Event should" do
110
110
  e.src_length.should.equal "2s".tc.to_i
111
111
  end
112
112
 
113
+ specify "support line_number" do
114
+ EDL::Event.new.line_number.should.be.nil
115
+ EDL::Event.new(:line_number => 3).line_number.should.equal 3
116
+ end
117
+
113
118
  specify "support capture_length as an alias to src_length" do
114
119
  tw = flexmock
115
120
  tw.should_receive(:actual_length_of_source).and_return(:something)
@@ -139,7 +144,8 @@ context "An Event should" do
139
144
 
140
145
  specify "report speed as 100 percent without a timewarp" do
141
146
  e = EDL::Event.new
142
- e.speed.should.equal 100
147
+ e.speed.should.be.kind_of Float
148
+ e.speed.should.equal 100.0
143
149
  end
144
150
 
145
151
  specify "consult the timewarp for speed" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: edl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julik
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-01-17 00:00:00 +01:00
12
+ date: 2009-01-18 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  version:
111
111
  requirements: []
112
112
 
113
- rubyforge_project: wiretap
113
+ rubyforge_project: guerilla-di
114
114
  rubygems_version: 1.3.1
115
115
  signing_key:
116
116
  specification_version: 2