activequeue 0.1.1 → 0.1.2

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.
@@ -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