Sha256: 42149f9095531c3215fa7671c9bee5d6d3eacc6c62c4891da77aabe0fee79b2e

Contents?: true

Size: 1.45 KB

Versions: 8

Compression:

Stored size: 1.45 KB

Contents

#
# Specifying rufus-scheduler
#
# Tue May  5 14:47:16 JST 2009
#

require 'spec_base'


describe Rufus::Scheduler::Schedulable do

  before(:each) do
    @s = start_scheduler
  end
  after(:each) do
    stop_scheduler(@s)
  end

  class JobAlpha
    attr_reader :value
    def trigger(params)
      @value = params
    end
  end
  class JobBravo
    attr_reader :value
    def call(job)
      @value = job
    end
  end

  it 'schedules via :schedulable' do

    j = JobAlpha.new

    @s.in '1s', :schedulable => j

    sleep 1.4

    j.value.class.should == Hash
    j.value[:job].class.should == Rufus::Scheduler::InJob
  end

  it 'honours schedulables that reply to :call' do

    j = JobBravo.new

    @s.in '1s', :schedulable => j

    sleep 1.4

    j.value.class.should == Rufus::Scheduler::InJob
  end

  it 'accepts trigger schedulables as second param' do

    j = JobAlpha.new

    @s.in '1s', j

    sleep 1.4

    j.value.class.should == Hash
    j.value[:job].class.should == Rufus::Scheduler::InJob
  end

  it 'accepts call schedulables as second param' do

    j = JobBravo.new

    @s.in '1s', j

    sleep 1.4

    j.value.class.should == Rufus::Scheduler::InJob
  end

  class MySchedulable
    def self.job
      @@job
    end
    def self.call(job)
      @@job = job
    end
  end

  it 'accepts schedulable classes as second param' do

    @s.in '1s', MySchedulable

    sleep 1.4

    MySchedulable.job.class.should == Rufus::Scheduler::InJob
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rufus-scheduler-2.0.24 spec/schedulable_spec.rb
rufus-scheduler-2.0.23 spec/schedulable_spec.rb
rufus-scheduler-2.0.22 spec/schedulable_spec.rb
rufus-scheduler-2.0.21 spec/schedulable_spec.rb
rufus-scheduler-2.0.20 spec/schedulable_spec.rb
rufus-scheduler-2.0.19 spec/schedulable_spec.rb
rufus-scheduler-2.0.18 spec/schedulable_spec.rb
rufus-scheduler-2.0.17 spec/schedulable_spec.rb