delayed_job_groups_mongoid 0.2.4 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source :rubygems
2
2
 
3
3
  gem 'rails'
4
4
  gem 'delayed_job', '2.1.1'
5
- gem 'delayed_job_mongoid', '1.0.0'
5
+ gem 'delayed_job_mongoid', '1.0.1'
6
6
  gem 'mongoid', '2.0.0.beta.20'
7
7
  gem 'bson_ext'
8
8
 
@@ -10,10 +10,14 @@ gem 'bson_ext'
10
10
  group :test do
11
11
  gem 'rspec-rails'
12
12
  gem 'sqlite3-ruby'
13
- gem 'autotest'
14
- gem 'autotest-fsevent'
15
- gem 'autotest-growl'
16
13
  gem 'database_cleaner'
17
14
  gem 'ruby-debug'
18
15
  gem 'awesome_print'
19
- end
16
+ gem 'timecop'
17
+ end
18
+
19
+ group :local do
20
+ gem 'autotest'
21
+ gem 'autotest-fsevent'
22
+ gem 'autotest-growl'
23
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,131 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ abstract (1.0.0)
5
+ actionmailer (3.0.1)
6
+ actionpack (= 3.0.1)
7
+ mail (~> 2.2.5)
8
+ actionpack (3.0.1)
9
+ activemodel (= 3.0.1)
10
+ activesupport (= 3.0.1)
11
+ builder (~> 2.1.2)
12
+ erubis (~> 2.6.6)
13
+ i18n (~> 0.4.1)
14
+ rack (~> 1.2.1)
15
+ rack-mount (~> 0.6.12)
16
+ rack-test (~> 0.5.4)
17
+ tzinfo (~> 0.3.23)
18
+ activemodel (3.0.1)
19
+ activesupport (= 3.0.1)
20
+ builder (~> 2.1.2)
21
+ i18n (~> 0.4.1)
22
+ activerecord (3.0.1)
23
+ activemodel (= 3.0.1)
24
+ activesupport (= 3.0.1)
25
+ arel (~> 1.0.0)
26
+ tzinfo (~> 0.3.23)
27
+ activeresource (3.0.1)
28
+ activemodel (= 3.0.1)
29
+ activesupport (= 3.0.1)
30
+ activesupport (3.0.1)
31
+ arel (1.0.1)
32
+ activesupport (~> 3.0.0)
33
+ autotest (4.4.1)
34
+ autotest-fsevent (0.2.3)
35
+ sys-uname
36
+ autotest-growl (0.2.6)
37
+ awesome_print (0.3.1)
38
+ bson (1.1.2)
39
+ bson_ext (1.1.2)
40
+ builder (2.1.2)
41
+ columnize (0.3.2)
42
+ daemons (1.1.0)
43
+ database_cleaner (0.6.0)
44
+ delayed_job (2.1.1)
45
+ activesupport (~> 3.0)
46
+ daemons
47
+ delayed_job_mongoid (1.0.1)
48
+ delayed_job (~> 2.1.1)
49
+ mongoid (~> 2.0)
50
+ diff-lcs (1.1.2)
51
+ erubis (2.6.6)
52
+ abstract (>= 1.0.0)
53
+ i18n (0.4.2)
54
+ linecache (0.43)
55
+ mail (2.2.9)
56
+ activesupport (>= 2.3.6)
57
+ i18n (~> 0.4.1)
58
+ mime-types (~> 1.16)
59
+ treetop (~> 1.4.8)
60
+ mime-types (1.16)
61
+ mongo (1.1.2)
62
+ bson (>= 1.1.1)
63
+ mongoid (2.0.0.beta.20)
64
+ activemodel (~> 3.0)
65
+ mongo (~> 1.1)
66
+ tzinfo (~> 0.3.22)
67
+ will_paginate (~> 3.0.pre)
68
+ polyglot (0.3.1)
69
+ rack (1.2.1)
70
+ rack-mount (0.6.13)
71
+ rack (>= 1.0.0)
72
+ rack-test (0.5.6)
73
+ rack (>= 1.0)
74
+ rails (3.0.1)
75
+ actionmailer (= 3.0.1)
76
+ actionpack (= 3.0.1)
77
+ activerecord (= 3.0.1)
78
+ activeresource (= 3.0.1)
79
+ activesupport (= 3.0.1)
80
+ bundler (~> 1.0.0)
81
+ railties (= 3.0.1)
82
+ railties (3.0.1)
83
+ actionpack (= 3.0.1)
84
+ activesupport (= 3.0.1)
85
+ rake (>= 0.8.4)
86
+ thor (~> 0.14.0)
87
+ rake (0.8.7)
88
+ rspec (2.0.1)
89
+ rspec-core (~> 2.0.1)
90
+ rspec-expectations (~> 2.0.1)
91
+ rspec-mocks (~> 2.0.1)
92
+ rspec-core (2.0.1)
93
+ rspec-expectations (2.0.1)
94
+ diff-lcs (>= 1.1.2)
95
+ rspec-mocks (2.0.1)
96
+ rspec-core (~> 2.0.1)
97
+ rspec-expectations (~> 2.0.1)
98
+ rspec-rails (2.0.1)
99
+ rspec (~> 2.0.0)
100
+ ruby-debug (0.10.4)
101
+ columnize (>= 0.1)
102
+ ruby-debug-base (~> 0.10.4.0)
103
+ ruby-debug-base (0.10.4)
104
+ linecache (>= 0.3)
105
+ sqlite3-ruby (1.3.1)
106
+ sys-uname (0.8.4)
107
+ thor (0.14.3)
108
+ timecop (0.3.5)
109
+ treetop (1.4.8)
110
+ polyglot (>= 0.3.1)
111
+ tzinfo (0.3.23)
112
+ will_paginate (3.0.pre2)
113
+
114
+ PLATFORMS
115
+ ruby
116
+
117
+ DEPENDENCIES
118
+ autotest
119
+ autotest-fsevent
120
+ autotest-growl
121
+ awesome_print
122
+ bson_ext
123
+ database_cleaner
124
+ delayed_job (= 2.1.1)
125
+ delayed_job_mongoid (= 1.0.1)
126
+ mongoid (= 2.0.0.beta.20)
127
+ rails
128
+ rspec-rails
129
+ ruby-debug
130
+ sqlite3-ruby
131
+ timecop
data/Rakefile.rb ADDED
@@ -0,0 +1,26 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'rspec/core'
4
+ require 'rspec/core/rake_task'
5
+
6
+ begin
7
+ require 'jeweler'
8
+ Jeweler::Tasks.new do |gem|
9
+ gem.name = "delayed_job_groups_mongoid"
10
+ gem.summary = %Q{Adds job groups to delayed_job_mongoid}
11
+ gem.description = %Q{Adds job groups to delayed_job_mongoid}
12
+ gem.email = "oliver@opsb.co.uk"
13
+ gem.homepage = "http://github.com/opsb/delayed_job_groups_mongoid"
14
+ gem.authors = ["opsb"]
15
+ end
16
+ Jeweler::GemcutterTasks.new
17
+ rescue LoadError
18
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
19
+ end
20
+
21
+ desc "run rspec scenarios"
22
+ task :spec do
23
+ RSpec::Core::RakeTask.new do |t|
24
+ t.pattern = "./spec/**/*_spec.rb"
25
+ end
26
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.3.1
data/config.ru ADDED
File without changes
@@ -1,29 +1,43 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile.rb, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile.rb, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{delayed_job_groups_mongoid}
8
- s.version = "0.2.4"
8
+ s.version = "0.3.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["opsb"]
12
- s.date = %q{2010-11-04}
13
- s.description = %q{Adds job groups to delayed_job}
12
+ s.date = %q{2010-12-07}
13
+ s.description = %q{Adds job groups to delayed_job_mongoid}
14
14
  s.email = %q{oliver@opsb.co.uk}
15
15
  s.extra_rdoc_files = [
16
16
  "README.markdown"
17
17
  ]
18
- s.files = Dir.glob("lib/**/*") + %w(Gemfile delayed_job_groups_mongoid.gemspec README.markdown)
19
- s.homepage = %q{http://github.com/opsb/delayed_job_groups}
20
- s.rdoc_options = ["--charset=UTF-8"]
18
+ s.files = [
19
+ "Gemfile",
20
+ "Gemfile.lock",
21
+ "README.markdown",
22
+ "Rakefile.rb",
23
+ "VERSION",
24
+ "config.ru",
25
+ "delayed_job_groups_mongoid.gemspec",
26
+ "lib/delayed_job_groups/init.rb",
27
+ "lib/delayed_job_groups/job_groups.rb",
28
+ "lib/delayed_job_groups/mongoid_groups.rb",
29
+ "lib/delayed_job_groups_mongoid.rb",
30
+ "spec/database.yml",
31
+ "spec/delayed_job_groups_spec.rb",
32
+ "spec/spec_helper.rb"
33
+ ]
34
+ s.homepage = %q{http://github.com/opsb/delayed_job_groups_mongoid}
21
35
  s.require_paths = ["lib"]
22
36
  s.rubygems_version = %q{1.3.7}
23
- s.summary = %q{Adds job groups to delayed_job}
37
+ s.summary = %q{Adds job groups to delayed_job_mongoid}
24
38
  s.test_files = [
25
39
  "spec/delayed_job_groups_spec.rb",
26
- "spec/spec_helper.rb"
40
+ "spec/spec_helper.rb"
27
41
  ]
28
42
 
29
43
  if s.respond_to? :specification_version then
@@ -31,9 +45,24 @@ Gem::Specification.new do |s|
31
45
  s.specification_version = 3
32
46
 
33
47
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
48
+ s.add_runtime_dependency(%q<rails>, [">= 0"])
49
+ s.add_runtime_dependency(%q<delayed_job>, ["= 2.1.1"])
50
+ s.add_runtime_dependency(%q<delayed_job_mongoid>, ["= 1.0.1"])
51
+ s.add_runtime_dependency(%q<mongoid>, ["= 2.0.0.beta.20"])
52
+ s.add_runtime_dependency(%q<bson_ext>, [">= 0"])
34
53
  else
54
+ s.add_dependency(%q<rails>, [">= 0"])
55
+ s.add_dependency(%q<delayed_job>, ["= 2.1.1"])
56
+ s.add_dependency(%q<delayed_job_mongoid>, ["= 1.0.1"])
57
+ s.add_dependency(%q<mongoid>, ["= 2.0.0.beta.20"])
58
+ s.add_dependency(%q<bson_ext>, [">= 0"])
35
59
  end
36
60
  else
61
+ s.add_dependency(%q<rails>, [">= 0"])
62
+ s.add_dependency(%q<delayed_job>, ["= 2.1.1"])
63
+ s.add_dependency(%q<delayed_job_mongoid>, ["= 1.0.1"])
64
+ s.add_dependency(%q<mongoid>, ["= 2.0.0.beta.20"])
65
+ s.add_dependency(%q<bson_ext>, [">= 0"])
37
66
  end
38
67
  end
39
68
 
@@ -5,37 +5,34 @@ module Delayed
5
5
  class Backend::Mongoid::Job
6
6
  field :lock_group
7
7
  scope :in_unlocked_group, lambda{ where(:lock_group.nin => self.locked_groups) }
8
+ scope :locked_jobs, lambda{ where(:locked_at.gt => time_out_threshold ) }
8
9
 
10
+ def self.time_out_threshold
11
+ db_time_now - Delayed::Worker.max_run_time
12
+ end
13
+
9
14
  def self.locked_groups
10
- Delayed::Job.only(:lock_group).where(:locked_by.ne => nil).group.map{ |grouping| grouping["lock_group"] }
15
+ Delayed::Job.locked_jobs.only(:lock_group).group.map{ |grouping| grouping["lock_group"] }
11
16
  end
12
17
 
13
- def self.find_available(worker_name, limit = 5, max_run_time = Worker.max_run_time)
18
+ def self.reserve(worker, max_run_time = Worker.max_run_time)
14
19
  right_now = db_time_now
15
20
 
16
- conditions = {:run_at => {"$lte" => right_now}, :failed_at => nil}
21
+ conditions = {:run_at => {"$lte" => right_now}, :failed_at => nil, :lock_group => { "$nin" => self.locked_groups } }
17
22
  (conditions[:priority] ||= {})['$gte'] = Worker.min_priority.to_i if Worker.min_priority
18
23
  (conditions[:priority] ||= {})['$lte'] = Worker.max_priority.to_i if Worker.max_priority
19
24
 
20
-
21
- where = "this.locked_at == null || this.locked_at < #{make_date(right_now - max_run_time)}"
22
- results = self.in_unlocked_group.where(conditions.merge(:locked_by => worker_name)).limit(-limit).order_by([['priority', 1], ['run_at', 1]]).to_a
23
- results += self.in_unlocked_group.where(conditions.merge('$where' => where)).limit(-limit+results.size).order_by([['priority', 1], ['run_at', 1]]).to_a if results.size < limit
24
- results
25
- end
26
-
25
+ where = "this.locked_by == '#{worker.name}' || this.locked_at == null || this.locked_at < #{make_date(right_now - max_run_time)}"
26
+ conditions.merge!('$where' => where)
27
+
28
+ begin
29
+ result = self.db.collection(self.collection.name).find_and_modify(:query => conditions, :sort => [['locked_by', -1], ['priority', 1], ['run_at', 1]], :update => {"$set" => {:locked_at => right_now, :locked_by => worker.name}})
30
+ # Return result as a Mongoid document.
31
+ # When Mongoid starts supporting findAndModify, this extra step should no longer be necessary.
32
+ self.find(:first, :conditions => {:_id => result["_id"]})
33
+ rescue Mongo::OperationFailure
34
+ nil # no jobs available
35
+ end
36
+ end
27
37
  end
28
- end
29
-
30
- __END__
31
-
32
- scope :in_unlocked_group, lambda{
33
- delayed_jobs = self.table_name
34
- unlocked_groups_select = "select distinct #{delayed_jobs}.lock_group from #{delayed_jobs} where #{delayed_jobs}.locked_by is not null"
35
- where("#{delayed_jobs}.lock_group not in (#{unlocked_groups_select}) or #{delayed_jobs}.lock_group is null")
36
- }
37
- scope :orig_ready_to_run, scopes[:ready_to_run]
38
- scope :ready_to_run, lambda{ |*args|
39
- orig_ready_to_run(*args).
40
- in_unlocked_group
41
- }
38
+ end
data/spec/database.yml ADDED
@@ -0,0 +1,3 @@
1
+ sqlite:
2
+ adapter: sqlite3
3
+ database: delayed_job.sqlite3
@@ -1,6 +1,5 @@
1
1
  require 'spec/spec_helper'
2
2
 
3
-
4
3
  class GroupedJob
5
4
  include Mongoid::Document
6
5
  include JobGroups
@@ -36,9 +35,19 @@ class User
36
35
  end
37
36
  end
38
37
 
38
+ module Delayed
39
+ class Backend::Mongoid::Job
40
+ def lock!(worker, time = Time.now.utc)
41
+ self.locked_by = worker.name
42
+ self.locked_at = time
43
+ save!
44
+ end
45
+ end
46
+ end
47
+
39
48
  describe Delayed::Job do
40
- MAX_RUN_TIME = 4000 # seconds? TBC
41
- WORKER = 'name_of_worker'
49
+ Delayed::Worker.max_run_time = MAX_RUN_TIME = 5.hours
50
+ WORKER = OpenStruct.new.tap{|worker| worker.name = "name_of_worker"}
42
51
 
43
52
  context "a job" do
44
53
  before do
@@ -52,22 +61,23 @@ describe Delayed::Job do
52
61
 
53
62
  context "with 2 jobs in the same group, one locked, one unlocked and 1 job in a different group" do
54
63
  before do
55
- a, b, c = ['repo1', 'repo1', 'repo2'].map{ |repo| GroupedJob.new(:repository => repo) }
56
- job_a, job_b, job_c = [a, b, c].map{ |group_job| Delayed::Job.enqueue group_job }
57
-
58
- 2.times do
59
- GroupedJob.new(:repository => 'repo1')
64
+ 2.times do |n|
65
+ Delayed::Job.enqueue GroupedJob.new(:repository => 'repo1', :priority => n)
60
66
  end
61
- 1.times{ GroupedJob.new(:repository => 'repo2') }
62
- Delayed::Job.where(:lock_group => "repo1").first.lock_exclusively!(MAX_RUN_TIME, WORKER)
67
+ 1.times{ Delayed::Job.enqueue GroupedJob.new(:repository => 'repo2', :priority => 3) }
68
+ Delayed::Job.where(:lock_group => "repo1").first.lock!(WORKER)
69
+ end
70
+
71
+ it "should have one locked job" do
72
+ Delayed::Job.locked_jobs.count.should == 1
63
73
  end
64
74
 
65
75
  it "should have one locked group" do
66
76
  Delayed::Job.locked_groups.should == ['repo1']
67
77
  end
68
78
 
69
- it "should find only the job in the different group" do
70
- Delayed::Job.find_available(WORKER, MAX_RUN_TIME).count.should == 1
79
+ it "should not reserve job from same group" do
80
+ Delayed::Job.reserve(WORKER).lock_group.should_not == "repo1"
71
81
  end
72
82
  end
73
83
 
@@ -76,7 +86,7 @@ describe Delayed::Job do
76
86
  Delayed::Job.enqueue SimpleJob.new
77
87
  end
78
88
  it "should still be queuable" do
79
- Delayed::Job.find_available(WORKER, MAX_RUN_TIME).count.should == 1
89
+ Delayed::Job.reserve(WORKER).should_not be_nil
80
90
  end
81
91
  end
82
92
 
@@ -85,13 +95,12 @@ describe Delayed::Job do
85
95
  2.times do
86
96
  User.create(:role => "admin").send_welcome_email
87
97
  end
88
- 1.times{ User.create(:role => "PA").send_welcome_email }
89
- Delayed::Job.where(:lock_group => "admin").first.lock_exclusively!(MAX_RUN_TIME, WORKER)
98
+ 1.times{ User.create(:role => "PA").send_welcome_email }
99
+ Delayed::Job.where(:lock_group => "admin").first.lock!(WORKER)
90
100
  end
91
101
 
92
102
  it "should only find the job in the different group" do
93
- Delayed::Job.find_available(WORKER, MAX_RUN_TIME).count.should == 1
94
- Delayed::Job.find_available(WORKER, MAX_RUN_TIME).first.lock_group.should == "PA"
103
+ Delayed::Job.reserve(WORKER).lock_group.should == "PA"
95
104
  end
96
105
  end
97
106
 
@@ -100,13 +109,30 @@ describe Delayed::Job do
100
109
  2.times do
101
110
  User.create(:role => "admin").delay.expensive_operation
102
111
  end
103
- 1.times{ Delayed::Job.enqueue GroupedJob.new(:repository => "repo2") }
104
- Delayed::Job.where(:lock_group => "admin").first.lock_exclusively!(MAX_RUN_TIME, WORKER)
112
+ 1.times{ Delayed::Job.enqueue GroupedJob.new(:repository => "repo2") }
113
+ Delayed::Job.where(:lock_group => "admin").each{ |job| job.update :priority => 1}
114
+ Delayed::Job.where(:lock_group => "repo2").each{ |job| job.update :priority => 2}
115
+ Delayed::Job.where(:lock_group => "admin").first.lock!(WORKER)
105
116
  end
106
117
 
107
118
  it "should find only the job in the different group" do
108
- Delayed::Job.find_available(WORKER, MAX_RUN_TIME).count.should == 1
109
- Delayed::Job.find_available(WORKER, MAX_RUN_TIME).first.lock_group.should == "repo2"
119
+ Delayed::Job.reserve(WORKER).lock_group.should == "repo2"
110
120
  end
111
121
  end
122
+
123
+ context "with 2 jobs in the same group, one timed out" do
124
+ before do
125
+ @timed_out, @other = (1..2).map{ Delayed::Job.enqueue GroupedJob.new(:repository => "repo1") }
126
+ @timed_out.lock!(WORKER)
127
+ Timecop.freeze(Time.now.utc + MAX_RUN_TIME + 1.minute)
128
+ end
129
+
130
+ after do
131
+ Timecop.return
132
+ end
133
+
134
+ it "should find no locked jobs" do
135
+ Delayed::Job.locked_jobs(MAX_RUN_TIME).count.should == 0
136
+ end
137
+ end
112
138
  end
data/spec/spec_helper.rb CHANGED
@@ -5,6 +5,7 @@ require 'bundler/setup'
5
5
  require 'logger'
6
6
  require 'mongoid'
7
7
  require 'ap'
8
+ require 'timecop'
8
9
 
9
10
 
10
11
 
@@ -14,10 +15,15 @@ require 'rails'
14
15
  Mongoid.configure do |config|
15
16
  name = "delayed_job_groups_mongoid"
16
17
  host = "localhost"
17
- config.master = Mongo::Connection.new.db(name)
18
- config.slaves = [
19
- Mongo::Connection.new(host, 27017, :slave_ok => true).db(name)
20
- ]
18
+
19
+ if ENV['ZENSLAP_ID']
20
+ config.from_hash("uri" => ENV['MONGOHQ_URL'])
21
+ else
22
+ config.master = Mongo::Connection.new.db(name)
23
+ config.slaves = [
24
+ Mongo::Connection.new(host, 27017, :slave_ok => true).db(name)
25
+ ]
26
+ end
21
27
  config.persist_in_safe_mode = false
22
28
  end
23
29
 
@@ -29,13 +35,13 @@ Delayed::Worker.logger = Logger.new('/tmp/dj.log')
29
35
 
30
36
  Delayed::Worker.backend = :mongoid
31
37
 
32
-
33
38
  require 'delayed_job_groups/init.rb'
34
39
  RSpec.configure do |config|
35
40
  require 'database_cleaner'
36
41
  DatabaseCleaner.strategy = :truncation
37
42
  config.after(:each) do
38
- DatabaseCleaner.clean
43
+ ::Mongoid.database.collections.select{ |c| c.name !~ /^system/ }.each{ |condemned| condemned.remove }
44
+ # DatabaseCleaner.clean
39
45
  end
40
46
  config.filter_run :focus => true
41
47
  config.run_all_when_everything_filtered = true
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: delayed_job_groups_mongoid
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 17
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 4
10
- version: 0.2.4
8
+ - 3
9
+ - 1
10
+ version: 0.3.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - opsb
@@ -15,11 +15,88 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-04 00:00:00 +00:00
18
+ date: 2010-12-07 00:00:00 +00:00
19
19
  default_executable:
20
- dependencies: []
21
-
22
- description: Adds job groups to delayed_job
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ type: :runtime
23
+ prerelease: false
24
+ name: rails
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ hash: 3
31
+ segments:
32
+ - 0
33
+ version: "0"
34
+ requirement: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ type: :runtime
37
+ prerelease: false
38
+ name: delayed_job
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - "="
43
+ - !ruby/object:Gem::Version
44
+ hash: 9
45
+ segments:
46
+ - 2
47
+ - 1
48
+ - 1
49
+ version: 2.1.1
50
+ requirement: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ type: :runtime
53
+ prerelease: false
54
+ name: delayed_job_mongoid
55
+ version_requirements: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - "="
59
+ - !ruby/object:Gem::Version
60
+ hash: 21
61
+ segments:
62
+ - 1
63
+ - 0
64
+ - 1
65
+ version: 1.0.1
66
+ requirement: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ type: :runtime
69
+ prerelease: false
70
+ name: mongoid
71
+ version_requirements: &id004 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - "="
75
+ - !ruby/object:Gem::Version
76
+ hash: 62196427
77
+ segments:
78
+ - 2
79
+ - 0
80
+ - 0
81
+ - beta
82
+ - 20
83
+ version: 2.0.0.beta.20
84
+ requirement: *id004
85
+ - !ruby/object:Gem::Dependency
86
+ type: :runtime
87
+ prerelease: false
88
+ name: bson_ext
89
+ version_requirements: &id005 !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ hash: 3
95
+ segments:
96
+ - 0
97
+ version: "0"
98
+ requirement: *id005
99
+ description: Adds job groups to delayed_job_mongoid
23
100
  email: oliver@opsb.co.uk
24
101
  executables: []
25
102
 
@@ -28,22 +105,27 @@ extensions: []
28
105
  extra_rdoc_files:
29
106
  - README.markdown
30
107
  files:
108
+ - Gemfile
109
+ - Gemfile.lock
110
+ - README.markdown
111
+ - Rakefile.rb
112
+ - VERSION
113
+ - config.ru
114
+ - delayed_job_groups_mongoid.gemspec
31
115
  - lib/delayed_job_groups/init.rb
32
116
  - lib/delayed_job_groups/job_groups.rb
33
117
  - lib/delayed_job_groups/mongoid_groups.rb
34
118
  - lib/delayed_job_groups_mongoid.rb
35
- - Gemfile
36
- - delayed_job_groups_mongoid.gemspec
37
- - README.markdown
119
+ - spec/database.yml
38
120
  - spec/delayed_job_groups_spec.rb
39
121
  - spec/spec_helper.rb
40
122
  has_rdoc: true
41
- homepage: http://github.com/opsb/delayed_job_groups
123
+ homepage: http://github.com/opsb/delayed_job_groups_mongoid
42
124
  licenses: []
43
125
 
44
126
  post_install_message:
45
- rdoc_options:
46
- - --charset=UTF-8
127
+ rdoc_options: []
128
+
47
129
  require_paths:
48
130
  - lib
49
131
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -70,7 +152,7 @@ rubyforge_project:
70
152
  rubygems_version: 1.3.7
71
153
  signing_key:
72
154
  specification_version: 3
73
- summary: Adds job groups to delayed_job
155
+ summary: Adds job groups to delayed_job_mongoid
74
156
  test_files:
75
157
  - spec/delayed_job_groups_spec.rb
76
158
  - spec/spec_helper.rb