<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -201,6 +201,13 @@ module Scheduler
 
       @at = Rufus.at_to_f(@t)
     end
+
+    # Returns the next time (or the unique time) this job is meant to trigger
+    #
+    def next_time
+
+      Time.at(@at)
+    end
   end
 
   #
@@ -327,6 +334,13 @@ module Scheduler
       trigger(time) if @cron_line.matches?(time)
     end
 
+    # Returns the next time this job is meant to trigger
+    #
+    def next_time (from=Time.now)
+
+      @cron_line.next_time(from)
+    end
+
     protected
 
     def determine_at</diff>
      <filename>lib/rufus/sc/jobs.rb</filename>
    </modified>
    <modified>
      <diff>@@ -33,7 +33,7 @@ module Rufus::Scheduler
 
   # This gem's version
   #
-  VERSION = '2.0.0'
+  VERSION = '2.0.1'
 
   #
   # It's OK to pass an object responding to :trigger when scheduling a job</diff>
      <filename>lib/rufus/sc/scheduler.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 Gem::Specification.new do |s|
 
   s.name = 'rufus-scheduler'
-  s.version = '2.0.0'
+  s.version = '2.0.1'
   s.authors = [ 'John Mettraux' ]
   s.email = 'jmettraux@gmail.com'
   s.homepage = 'http://rufus.rubyforge.org/'</diff>
      <filename>rufus-scheduler.gemspec</filename>
    </modified>
    <modified>
      <diff>@@ -105,5 +105,15 @@ describe Rufus::Scheduler::AtJob do
 
     @s.jobs.size.should.equal(0)
   end
+
+  it 'should respond to #next_time' do
+
+    t = Time.now + 3 * 3600
+
+    job = @s.at Time.now + 3 * 3600 do
+    end
+
+    job.next_time.to_i.should.equal(t.to_i)
+  end
 end
 </diff>
      <filename>spec/at_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -102,3 +102,21 @@ describe &quot;#{SCHEDULER_CLASS}#cron&quot; do
 
 end
 
+describe Rufus::Scheduler::CronJob do
+
+  before do
+    @s = start_scheduler
+  end
+  after do
+    stop_scheduler(@s)
+  end
+
+  it 'should respond to #next_time' do
+
+    job = @s.cron '* * * * *' do
+    end
+
+    (job.next_time.to_i - Time.now.to_i).should.satisfy { |v| v &lt; 60 }
+  end
+end
+</diff>
      <filename>spec/cron_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -171,3 +171,23 @@ describe &quot;#{SCHEDULER_CLASS}#every&quot; do
 
 end
 
+describe Rufus::Scheduler::EveryJob do
+
+  before do
+    @s = start_scheduler
+  end
+  after do
+    stop_scheduler(@s)
+  end
+
+  it 'should respond to #next_time' do
+
+    t = Time.now + 3 * 3600
+
+    job = @s.every '3h' do
+    end
+
+    job.next_time.to_i.should.equal(t.to_i)
+  end
+end
+</diff>
      <filename>spec/every_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -151,5 +151,15 @@ describe Rufus::Scheduler::InJob do
 
     @s.jobs.size.should.equal(0)
   end
+
+  it 'should respond to #next_time' do
+
+    t = Time.now + 3 * 3600
+
+    job = @s.in '3h' do
+    end
+
+    job.next_time.to_i.should.equal(t.to_i)
+  end
 end
 </diff>
      <filename>spec/in_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>33f1d13ef63553711b3e8a7ef2a2b82cf7003172</id>
    </parent>
  </parents>
  <author>
    <name>John Mettraux</name>
    <email>jmettraux@gmail.com</email>
  </author>
  <url>http://github.com/jmettraux/rufus-scheduler/commit/2d250a8ca082ad798c4a4b839a0b724f6e8ba405</url>
  <id>2d250a8ca082ad798c4a4b839a0b724f6e8ba405</id>
  <committed-date>2009-05-06T23:03:46-07:00</committed-date>
  <authored-date>2009-05-06T23:03:46-07:00</authored-date>
  <message>implemented job #next_time</message>
  <tree>39ef63f867d6f9436f59a4fae0b5c23cc1ef9552</tree>
  <committer>
    <name>John Mettraux</name>
    <email>jmettraux@gmail.com</email>
  </committer>
</commit>
