backgrounded 0.3.1 → 0.4.1
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/.gitignore +2 -0
- data/README.rdoc +20 -6
- data/Rakefile +4 -0
- data/VERSION.yml +1 -1
- data/backgrounded.gemspec +26 -8
- data/lib/backgrounded.rb +6 -29
- data/lib/backgrounded/class_methods.rb +12 -0
- data/lib/{handler → backgrounded/handler}/delayed_job_handler.rb +0 -0
- data/lib/{handler → backgrounded/handler}/inprocess_handler.rb +0 -0
- data/lib/backgrounded/handler/resque_handler.rb +19 -0
- data/test/backgrounded/handler/delayed_job_handler_test.rb +53 -0
- data/test/backgrounded/handler/resque_handler_test.rb +45 -0
- data/test/database.yml +3 -0
- data/test/test_helper.rb +6 -0
- metadata +87 -10
- data/lib/handler.rb +0 -10
data/README.rdoc
CHANGED
|
@@ -5,7 +5,7 @@ Background processing done right.
|
|
|
5
5
|
= Features
|
|
6
6
|
* clean and concise API
|
|
7
7
|
* testable
|
|
8
|
-
* integrates with any background processing framework (DelayedJob, JobFu, Workling, etc)
|
|
8
|
+
* integrates with any background processing framework (DelayedJob, Resque, JobFu, Workling, etc)
|
|
9
9
|
|
|
10
10
|
= Usage
|
|
11
11
|
|
|
@@ -25,11 +25,15 @@ Background processing done right.
|
|
|
25
25
|
|
|
26
26
|
Command line installation
|
|
27
27
|
|
|
28
|
-
sudo gem install
|
|
28
|
+
sudo gem install backgrounded
|
|
29
29
|
|
|
30
30
|
Rails environment.rb configuration
|
|
31
31
|
|
|
32
|
-
config.gem '
|
|
32
|
+
config.gem 'backgrounded'
|
|
33
|
+
|
|
34
|
+
Gemfile configuration
|
|
35
|
+
|
|
36
|
+
gem 'backgrounded'
|
|
33
37
|
|
|
34
38
|
= Configuration
|
|
35
39
|
|
|
@@ -40,22 +44,32 @@ Backgrounded provides a thin wrapper around any background processing framework
|
|
|
40
44
|
An implementation for DelayedJob is packaged directly with Backgrounded for a slick out of the box experience.
|
|
41
45
|
see http://github.com/tobi/delayed_job/tree/master
|
|
42
46
|
|
|
43
|
-
#
|
|
47
|
+
# config/initializers/backgrounded.rb
|
|
48
|
+
require 'backgrounded/handler/delayed_job_handler'
|
|
44
49
|
Backgrounded.handler = Backgrounded::Handler::DelayedJobHandler.new
|
|
45
50
|
|
|
51
|
+
= Resque
|
|
52
|
+
|
|
53
|
+
An implementation for Resque is packaged directly with Backgrounded for a slick out of the box experience.
|
|
54
|
+
see http://github.com/defunkt/resque/
|
|
55
|
+
|
|
56
|
+
# config/initializers/backgrounded.rb
|
|
57
|
+
require 'backgrounded/handler/resque_handler'
|
|
58
|
+
Backgrounded.handler = Backgrounded::Handler::ResqueHandler.new
|
|
59
|
+
|
|
46
60
|
= JobFu
|
|
47
61
|
|
|
48
62
|
Developers using the JobFu library have it easy as well!
|
|
49
63
|
see http://github.com/jnstq/job_fu/tree
|
|
50
64
|
|
|
51
|
-
#
|
|
65
|
+
# config/initializers/backgrounded.rb
|
|
52
66
|
Backgrounded.handler = JobFu::Backgrounded::Handler.new
|
|
53
67
|
|
|
54
68
|
= Custom Handlers
|
|
55
69
|
|
|
56
70
|
It's trivial to write your own plugin for processing Backgrounded events!
|
|
57
71
|
|
|
58
|
-
#
|
|
72
|
+
# config/initializers/backgrounded.rb
|
|
59
73
|
class MyHandler
|
|
60
74
|
def request(object, method, *args)
|
|
61
75
|
#process the call however you want!
|
data/Rakefile
CHANGED
|
@@ -9,6 +9,10 @@ begin
|
|
|
9
9
|
gem.email = "ryan.sonnek@gmail.com"
|
|
10
10
|
gem.homepage = "http://github.com/wireframe/backgrounded"
|
|
11
11
|
gem.authors = ["Ryan Sonnek"]
|
|
12
|
+
gem.add_runtime_dependency "activerecord", ">= 2.2.3"
|
|
13
|
+
gem.add_runtime_dependency "activesupport", ">= 2.2.3"
|
|
14
|
+
gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
|
|
15
|
+
gem.add_development_dependency 'resque_unit', ">= 0"
|
|
12
16
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
|
13
17
|
end
|
|
14
18
|
Jeweler::GemcutterTasks.new
|
data/VERSION.yml
CHANGED
data/backgrounded.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{backgrounded}
|
|
8
|
-
s.version = "0.
|
|
8
|
+
s.version = "0.4.1"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Ryan Sonnek"]
|
|
12
|
-
s.date = %q{
|
|
12
|
+
s.date = %q{2010-09-27}
|
|
13
13
|
s.email = %q{ryan.sonnek@gmail.com}
|
|
14
14
|
s.extra_rdoc_files = [
|
|
15
15
|
"LICENSE",
|
|
@@ -24,19 +24,25 @@ Gem::Specification.new do |s|
|
|
|
24
24
|
"VERSION.yml",
|
|
25
25
|
"backgrounded.gemspec",
|
|
26
26
|
"lib/backgrounded.rb",
|
|
27
|
-
"lib/
|
|
28
|
-
"lib/handler/delayed_job_handler.rb",
|
|
29
|
-
"lib/handler/inprocess_handler.rb",
|
|
27
|
+
"lib/backgrounded/class_methods.rb",
|
|
28
|
+
"lib/backgrounded/handler/delayed_job_handler.rb",
|
|
29
|
+
"lib/backgrounded/handler/inprocess_handler.rb",
|
|
30
|
+
"lib/backgrounded/handler/resque_handler.rb",
|
|
31
|
+
"test/backgrounded/handler/delayed_job_handler_test.rb",
|
|
32
|
+
"test/backgrounded/handler/resque_handler_test.rb",
|
|
30
33
|
"test/backgrounded_test.rb",
|
|
34
|
+
"test/database.yml",
|
|
31
35
|
"test/test_helper.rb"
|
|
32
36
|
]
|
|
33
37
|
s.homepage = %q{http://github.com/wireframe/backgrounded}
|
|
34
38
|
s.rdoc_options = ["--charset=UTF-8"]
|
|
35
39
|
s.require_paths = ["lib"]
|
|
36
|
-
s.rubygems_version = %q{1.3.
|
|
40
|
+
s.rubygems_version = %q{1.3.7}
|
|
37
41
|
s.summary = %q{Simple API to run Model methods in the background}
|
|
38
42
|
s.test_files = [
|
|
39
|
-
"test/
|
|
43
|
+
"test/backgrounded/handler/delayed_job_handler_test.rb",
|
|
44
|
+
"test/backgrounded/handler/resque_handler_test.rb",
|
|
45
|
+
"test/backgrounded_test.rb",
|
|
40
46
|
"test/test_helper.rb"
|
|
41
47
|
]
|
|
42
48
|
|
|
@@ -44,10 +50,22 @@ Gem::Specification.new do |s|
|
|
|
44
50
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
45
51
|
s.specification_version = 3
|
|
46
52
|
|
|
47
|
-
if Gem::Version.new(Gem::
|
|
53
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
54
|
+
s.add_runtime_dependency(%q<activerecord>, [">= 2.2.3"])
|
|
55
|
+
s.add_runtime_dependency(%q<activesupport>, [">= 2.2.3"])
|
|
56
|
+
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
|
57
|
+
s.add_development_dependency(%q<resque_unit>, [">= 0"])
|
|
48
58
|
else
|
|
59
|
+
s.add_dependency(%q<activerecord>, [">= 2.2.3"])
|
|
60
|
+
s.add_dependency(%q<activesupport>, [">= 2.2.3"])
|
|
61
|
+
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
|
62
|
+
s.add_dependency(%q<resque_unit>, [">= 0"])
|
|
49
63
|
end
|
|
50
64
|
else
|
|
65
|
+
s.add_dependency(%q<activerecord>, [">= 2.2.3"])
|
|
66
|
+
s.add_dependency(%q<activesupport>, [">= 2.2.3"])
|
|
67
|
+
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
|
68
|
+
s.add_dependency(%q<resque_unit>, [">= 0"])
|
|
51
69
|
end
|
|
52
70
|
end
|
|
53
71
|
|
data/lib/backgrounded.rb
CHANGED
|
@@ -1,37 +1,14 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'active_support/all'
|
|
2
|
+
|
|
3
|
+
require File.join(File.dirname(__FILE__), 'backgrounded', 'class_methods')
|
|
4
|
+
require File.join(File.dirname(__FILE__), 'backgrounded', 'handler', 'inprocess_handler')
|
|
5
|
+
|
|
6
|
+
Object.send(:include, Backgrounded::ClassMethods)
|
|
2
7
|
|
|
3
8
|
module Backgrounded
|
|
4
9
|
mattr_accessor :handler
|
|
5
10
|
def self.handler
|
|
6
11
|
@@handler ||= Backgrounded::Handler::InprocessHandler.new
|
|
7
12
|
end
|
|
8
|
-
|
|
9
|
-
autoload :Handler, 'handler'
|
|
10
|
-
|
|
11
|
-
module Model
|
|
12
|
-
def self.included(base)
|
|
13
|
-
base.extend(ClassMethods)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
module ClassMethods
|
|
17
|
-
def backgrounded(*methods)
|
|
18
|
-
methods.each do |method|
|
|
19
|
-
method_basename, punctuation = method.to_s.sub(/([?!=])$/, ''), $1
|
|
20
|
-
define_method :"#{method_basename}_backgrounded#{punctuation}" do |*args|
|
|
21
|
-
Backgrounded.handler.request(self, method, *args)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
include Backgrounded::Model::InstanceMethods
|
|
25
|
-
extend Backgrounded::Model::SingletonMethods
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
module SingletonMethods
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
module InstanceMethods
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
13
|
end
|
|
36
14
|
|
|
37
|
-
Object.send(:include, Backgrounded::Model)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
module Backgrounded
|
|
2
|
+
module ClassMethods
|
|
3
|
+
def backgrounded(*methods)
|
|
4
|
+
methods.each do |method|
|
|
5
|
+
method_basename, punctuation = method.to_s.sub(/([?!=])$/, ''), $1
|
|
6
|
+
define_method "#{method_basename}_backgrounded#{punctuation}" do |*args|
|
|
7
|
+
Backgrounded.handler.request(self, method, *args)
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'resque'
|
|
2
|
+
|
|
3
|
+
module Backgrounded
|
|
4
|
+
module Handler
|
|
5
|
+
#enque requests in resque
|
|
6
|
+
class ResqueHandler
|
|
7
|
+
def request(object, method, *args)
|
|
8
|
+
Resque.enqueue(ResqueHandler, object.class.name, object.id, method, *args)
|
|
9
|
+
end
|
|
10
|
+
def self.queue
|
|
11
|
+
'backgrounded'
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def self.perform(clazz, id, method, *args)
|
|
15
|
+
clazz.constantize.find(id).send(method, *args)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
|
2
|
+
require 'backgrounded/handler/delayed_job_handler'
|
|
3
|
+
require 'delayed/backend/active_record'
|
|
4
|
+
|
|
5
|
+
ActiveRecord::Schema.define(:version => 1) do
|
|
6
|
+
create_table :users, :force => true do |t|
|
|
7
|
+
t.column :name, :string
|
|
8
|
+
end
|
|
9
|
+
create_table :delayed_jobs, :force => true do |table|
|
|
10
|
+
table.integer :priority, :default => 0 # Allows some jobs to jump to the front of the queue
|
|
11
|
+
table.integer :attempts, :default => 0 # Provides for retries, but still fail eventually.
|
|
12
|
+
table.text :handler # YAML-encoded string of the object that will do work
|
|
13
|
+
table.string :last_error # reason for last failure (See Note below)
|
|
14
|
+
table.datetime :run_at # When to run. Could be Time.now for immediately, or sometime in the future.
|
|
15
|
+
table.datetime :locked_at # Set when a client is working on this object
|
|
16
|
+
table.datetime :failed_at # Set when all retries have failed (actually, by default, the record is deleted instead)
|
|
17
|
+
table.string :locked_by # Who is working on this object (if locked)
|
|
18
|
+
table.timestamps
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
class User < ActiveRecord::Base
|
|
23
|
+
backgrounded :do_stuff
|
|
24
|
+
|
|
25
|
+
def do_stuff
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
class DelayedJobHandlerTest < Test::Unit::TestCase
|
|
30
|
+
context 'when backgrounded is configured with delayed_job' do
|
|
31
|
+
setup do
|
|
32
|
+
Delayed::Worker.backend = :active_record
|
|
33
|
+
@handler = Backgrounded::Handler::DelayedJobHandler.new
|
|
34
|
+
Backgrounded.handler = @handler
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
context 'a persisted object with a single backgrounded method' do
|
|
38
|
+
setup do
|
|
39
|
+
@user = User.create
|
|
40
|
+
end
|
|
41
|
+
context "invoking backgrounded method" do
|
|
42
|
+
setup do
|
|
43
|
+
@user.do_stuff_backgrounded
|
|
44
|
+
end
|
|
45
|
+
should_create Delayed::Job
|
|
46
|
+
should 'create delayed job' do
|
|
47
|
+
job = Delayed::Job.last
|
|
48
|
+
puts job.inspect
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
|
2
|
+
require 'backgrounded/handler/resque_handler'
|
|
3
|
+
|
|
4
|
+
ActiveRecord::Schema.define(:version => 1) do
|
|
5
|
+
create_table :users, :force => true do |t|
|
|
6
|
+
t.column :name, :string
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class User < ActiveRecord::Base
|
|
11
|
+
backgrounded :do_stuff
|
|
12
|
+
|
|
13
|
+
def do_stuff
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
class ResqueHandlerTest < Test::Unit::TestCase
|
|
18
|
+
context 'when backgrounded is configured with resque' do
|
|
19
|
+
setup do
|
|
20
|
+
Resque.reset!
|
|
21
|
+
@handler = Backgrounded::Handler::ResqueHandler.new
|
|
22
|
+
Backgrounded.handler = @handler
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
context 'a persisted object with a single backgrounded method' do
|
|
26
|
+
setup do
|
|
27
|
+
@user = User.create
|
|
28
|
+
end
|
|
29
|
+
context "invoking backgrounded method" do
|
|
30
|
+
setup do
|
|
31
|
+
@user.do_stuff_backgrounded
|
|
32
|
+
end
|
|
33
|
+
should "enqueue job to resque" do
|
|
34
|
+
assert_queued Backgrounded::Handler::ResqueHandler
|
|
35
|
+
end
|
|
36
|
+
context "running background job" do
|
|
37
|
+
should "invoke method on user object" do
|
|
38
|
+
User.any_instance.expects(:do_stuff)
|
|
39
|
+
Resque.run!
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
data/test/database.yml
ADDED
data/test/test_helper.rb
CHANGED
|
@@ -2,10 +2,16 @@ require 'rubygems'
|
|
|
2
2
|
require 'test/unit'
|
|
3
3
|
require 'shoulda'
|
|
4
4
|
require 'mocha'
|
|
5
|
+
require 'active_record'
|
|
6
|
+
require 'resque_unit'
|
|
5
7
|
|
|
6
8
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
7
9
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
|
8
10
|
require 'backgrounded'
|
|
9
11
|
|
|
12
|
+
config = YAML::load(IO.read(File.join(File.dirname(__FILE__), 'database.yml')))
|
|
13
|
+
ActiveRecord::Base.logger = Logger.new(File.join(File.dirname(__FILE__), "debug.log"))
|
|
14
|
+
ActiveRecord::Base.establish_connection(config[ENV['DB'] || 'sqlite'])
|
|
15
|
+
|
|
10
16
|
class Test::Unit::TestCase
|
|
11
17
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: backgrounded
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
4
|
+
hash: 13
|
|
5
|
+
prerelease: false
|
|
6
|
+
segments:
|
|
7
|
+
- 0
|
|
8
|
+
- 4
|
|
9
|
+
- 1
|
|
10
|
+
version: 0.4.1
|
|
5
11
|
platform: ruby
|
|
6
12
|
authors:
|
|
7
13
|
- Ryan Sonnek
|
|
@@ -9,10 +15,69 @@ autorequire:
|
|
|
9
15
|
bindir: bin
|
|
10
16
|
cert_chain: []
|
|
11
17
|
|
|
12
|
-
date:
|
|
18
|
+
date: 2010-09-27 00:00:00 -05:00
|
|
13
19
|
default_executable:
|
|
14
|
-
dependencies:
|
|
15
|
-
|
|
20
|
+
dependencies:
|
|
21
|
+
- !ruby/object:Gem::Dependency
|
|
22
|
+
name: activerecord
|
|
23
|
+
prerelease: false
|
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
26
|
+
requirements:
|
|
27
|
+
- - ">="
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
hash: 1
|
|
30
|
+
segments:
|
|
31
|
+
- 2
|
|
32
|
+
- 2
|
|
33
|
+
- 3
|
|
34
|
+
version: 2.2.3
|
|
35
|
+
type: :runtime
|
|
36
|
+
version_requirements: *id001
|
|
37
|
+
- !ruby/object:Gem::Dependency
|
|
38
|
+
name: activesupport
|
|
39
|
+
prerelease: false
|
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
42
|
+
requirements:
|
|
43
|
+
- - ">="
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
hash: 1
|
|
46
|
+
segments:
|
|
47
|
+
- 2
|
|
48
|
+
- 2
|
|
49
|
+
- 3
|
|
50
|
+
version: 2.2.3
|
|
51
|
+
type: :runtime
|
|
52
|
+
version_requirements: *id002
|
|
53
|
+
- !ruby/object:Gem::Dependency
|
|
54
|
+
name: thoughtbot-shoulda
|
|
55
|
+
prerelease: false
|
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
57
|
+
none: false
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
hash: 3
|
|
62
|
+
segments:
|
|
63
|
+
- 0
|
|
64
|
+
version: "0"
|
|
65
|
+
type: :development
|
|
66
|
+
version_requirements: *id003
|
|
67
|
+
- !ruby/object:Gem::Dependency
|
|
68
|
+
name: resque_unit
|
|
69
|
+
prerelease: false
|
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
|
71
|
+
none: false
|
|
72
|
+
requirements:
|
|
73
|
+
- - ">="
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
hash: 3
|
|
76
|
+
segments:
|
|
77
|
+
- 0
|
|
78
|
+
version: "0"
|
|
79
|
+
type: :development
|
|
80
|
+
version_requirements: *id004
|
|
16
81
|
description:
|
|
17
82
|
email: ryan.sonnek@gmail.com
|
|
18
83
|
executables: []
|
|
@@ -31,10 +96,14 @@ files:
|
|
|
31
96
|
- VERSION.yml
|
|
32
97
|
- backgrounded.gemspec
|
|
33
98
|
- lib/backgrounded.rb
|
|
34
|
-
- lib/
|
|
35
|
-
- lib/handler/delayed_job_handler.rb
|
|
36
|
-
- lib/handler/inprocess_handler.rb
|
|
99
|
+
- lib/backgrounded/class_methods.rb
|
|
100
|
+
- lib/backgrounded/handler/delayed_job_handler.rb
|
|
101
|
+
- lib/backgrounded/handler/inprocess_handler.rb
|
|
102
|
+
- lib/backgrounded/handler/resque_handler.rb
|
|
103
|
+
- test/backgrounded/handler/delayed_job_handler_test.rb
|
|
104
|
+
- test/backgrounded/handler/resque_handler_test.rb
|
|
37
105
|
- test/backgrounded_test.rb
|
|
106
|
+
- test/database.yml
|
|
38
107
|
- test/test_helper.rb
|
|
39
108
|
has_rdoc: true
|
|
40
109
|
homepage: http://github.com/wireframe/backgrounded
|
|
@@ -46,24 +115,32 @@ rdoc_options:
|
|
|
46
115
|
require_paths:
|
|
47
116
|
- lib
|
|
48
117
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
118
|
+
none: false
|
|
49
119
|
requirements:
|
|
50
120
|
- - ">="
|
|
51
121
|
- !ruby/object:Gem::Version
|
|
122
|
+
hash: 3
|
|
123
|
+
segments:
|
|
124
|
+
- 0
|
|
52
125
|
version: "0"
|
|
53
|
-
version:
|
|
54
126
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
|
+
none: false
|
|
55
128
|
requirements:
|
|
56
129
|
- - ">="
|
|
57
130
|
- !ruby/object:Gem::Version
|
|
131
|
+
hash: 3
|
|
132
|
+
segments:
|
|
133
|
+
- 0
|
|
58
134
|
version: "0"
|
|
59
|
-
version:
|
|
60
135
|
requirements: []
|
|
61
136
|
|
|
62
137
|
rubyforge_project:
|
|
63
|
-
rubygems_version: 1.3.
|
|
138
|
+
rubygems_version: 1.3.7
|
|
64
139
|
signing_key:
|
|
65
140
|
specification_version: 3
|
|
66
141
|
summary: Simple API to run Model methods in the background
|
|
67
142
|
test_files:
|
|
143
|
+
- test/backgrounded/handler/delayed_job_handler_test.rb
|
|
144
|
+
- test/backgrounded/handler/resque_handler_test.rb
|
|
68
145
|
- test/backgrounded_test.rb
|
|
69
146
|
- test/test_helper.rb
|
data/lib/handler.rb
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
require 'activesupport'
|
|
2
|
-
|
|
3
|
-
module Backgrounded
|
|
4
|
-
module Handler
|
|
5
|
-
Dir["#{File.dirname(__FILE__)}/#{name.demodulize.underscore}/*.rb"].each do |handler_file|
|
|
6
|
-
handler_name = File.basename(handler_file, '.rb').camelize.to_sym
|
|
7
|
-
autoload handler_name, File.expand_path(handler_file)
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
end
|