activequeue 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,7 +3,6 @@ unless defined? Resque
3
3
  end
4
4
  module ActiveQueue
5
5
  module Adapter
6
-
7
6
  class ResqueAdapter
8
7
  def initialize(options = {})
9
8
  @options = options
@@ -5,8 +5,8 @@ module ActiveQueue
5
5
  def adapter_name
6
6
  "insta-queue"
7
7
  end
8
- def enqueue(job_klass, options = { })
9
- job_klass.perform
8
+ def enqueue(job_klass, options={})
9
+ job_klass.new(options).perform
10
10
  end
11
11
  end
12
12
  end
@@ -2,34 +2,58 @@
2
2
  module ActiveQueue
3
3
 
4
4
  class Job
5
+ module ClassMethods
6
+
7
+ def perform(opt = {})
8
+ val = opt["val"] || opt[:val]
9
+ jk = opt["job_klass"] || opt[:job_klass]
10
+ klass = jk.class == String ? eval(jk) : jk
11
+ @v = klass.new(val)
12
+ @v.perform
13
+ end
14
+ end
15
+ extend ClassMethods
5
16
  @queue = :file_queue
6
- attr_accessor :value, :options, :queue_adapter, :queue_name, :perform_action
7
- def initialize(options = {})
17
+ attr_accessor :val, :options, :queue_adapter, :queue_name, :perform_action, :queue, :job_klass
18
+ def initialize(options)
8
19
  @options = options
9
- @value = options[:value]
20
+ @val = options[:val] || options["val"]
21
+ @job_klass = options[:job_klass] || options["job_klass"]
10
22
  @queue = options[:queue_name] ? options[:queue_name].to_sym : :file_queue
11
23
  @queue_adapter = options[:adapter] ? options[:adapter] : Adapter::DefaultAdapter.new
12
24
  if @queue_adapter.class == String
13
25
  @queue_adapter = adapters[@queue_adapter] ? adapters[@queue_adapter].new : nil
14
26
  end
15
27
  end
16
- def enqueue
17
- @queue_adapter.enqueue(self.class, options)
18
- end
19
- def perform(options = nil)
20
- success = true
21
- begin
22
- @value.perform(options)
23
- rescue Exception => e
24
- success = e.message
25
- end
26
- success
28
+ def perform(opt = nil)
29
+ puts "lperf #{opt[:val].respond_to?('perform')}"
30
+ ActiveQueue::Job.perform(opt)
27
31
  end
28
- def adapters
29
- { "resque" => ActiveQueue::Adapter::ResqueAdapter,
30
- "delayed" => ActiveQueue::Adapter::DelayedJobAdapter,
31
- "insta" => ActiveQueue::Adapter::DefaultAdapter }
32
+ def enqueue
33
+ @queue_adapter.enqueue(self.class, :val => @val, :job_klass => @job_klass)
32
34
  end
35
+ #
36
+ # def self.perform(value)
37
+ # #@value ||= options[:value]
38
+ # value.preform
39
+ # #success = true
40
+ # #begin
41
+ # #@options[:value].perform
42
+ # #rescue Exception => e
43
+ # # success = e.message
44
+ # #end
45
+ # #success
46
+ # end
47
+ # def enqueue
48
+ # @queue_adapter.enqueue(ActiveQueue::Job, @value)
49
+ # end
50
+ #
51
+ def adapters
52
+ { "resque" => ActiveQueue::Adapter::ResqueAdapter,
53
+ "delayed" => ActiveQueue::Adapter::DelayedJobAdapter,
54
+ "insta" => ActiveQueue::Adapter::DefaultAdapter }
55
+ end
56
+
33
57
  end
34
58
 
35
59
  end
data/lib/activequeue.rb CHANGED
@@ -1,4 +1,12 @@
1
-
1
+ class AnyClass
2
+ def self.find(i)
3
+ self.new
4
+ end
5
+ def perform
6
+ puts "I did it"
7
+ end
8
+
9
+ end
2
10
  module ActiveQueue
3
11
  autoload :Adapter, 'active_queue/adapter'
4
12
  autoload :Job, 'active_queue/job'
data/spec/job_spec.rb ADDED
@@ -0,0 +1,18 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Job" do
4
+ it "should be any class with an accessable perform method." do
5
+ @any = 1
6
+ job = ActiveQueue::Job.new(:val => @any, :job_klass => AnyClass)
7
+ job.queue_adapter.class.should == ActiveQueue::Adapter::DefaultAdapter
8
+ job.perform(:job_klass => AnyClass, :val => @any)
9
+ end
10
+
11
+ it "should be able to queue on resque." do
12
+ @any = 1
13
+ job = ActiveQueue::Job.new(:val => @any, :job_klass => AnyClass, :adapter => 'resque')
14
+ job.queue_adapter.class.should == ActiveQueue::Adapter::ResqueAdapter
15
+ job.queue_adapter.enqueue(job.class, {:val => @any, :job_klass => AnyClass, :adapter => 'resque'})
16
+ end
17
+
18
+ end
@@ -0,0 +1,12 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..'))
3
+ require 'rubygems'
4
+ require 'spec'
5
+ require 'spec/autorun'
6
+ require 'active_support/inflector'
7
+ require 'lib/activequeue'
8
+
9
+
10
+ Spec::Runner.configure do |config|
11
+
12
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 1
9
- version: 0.1.1
8
+ - 2
9
+ version: 0.1.2
10
10
  platform: ruby
11
11
  authors:
12
12
  - Matthew Jording
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-20 00:00:00 -04:00
17
+ date: 2010-06-02 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies: []
20
20
 
@@ -64,4 +64,6 @@ signing_key:
64
64
  specification_version: 3
65
65
  summary: ActiveQueue is a Rails abstraction of queue configuration and background job creation/specification.
66
66
  test_files:
67
+ - spec/job_spec.rb
68
+ - spec/spec_helper.rb
67
69
  - test/helper.rb