resque-batched-job 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010 Daniel Johnston
1
+ Copyright (c) 2011 Daniel Johnston
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
data/README.markdown CHANGED
@@ -15,15 +15,14 @@ Example
15
15
  -------
16
16
 
17
17
  module Job
18
-
19
- extend Resque::Plugins::BatchedJob
20
-
21
- def self.perform(id, *args)
22
- prime(id, args)
23
- end
24
-
25
- def self.after_batch_heavy_lifting(id, *args)
26
- heavy_lifting(id)
27
- end
18
+ extend Resque::Plugins::BatchedJob
19
+
20
+ def self.perform(id, *args)
21
+ prime(id, args)
22
+ end
23
+
24
+ def self.after_batch_heavy_lifting(id, *args)
25
+ heavy_lifting(id)
26
+ end
28
27
 
29
28
  end
data/Rakefile CHANGED
@@ -2,19 +2,16 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'rake/testtask'
4
4
 
5
- $:.unshift(File.dirname(__FILE__))
6
-
7
5
  task :default => :test
8
6
 
9
7
  Rake::TestTask.new do |task|
10
- task.libs << 'lib'
11
8
  task.pattern = 'test/test_*.rb'
12
9
  task.verbose = true
13
10
  end
14
11
 
15
12
  desc "Publish gem and source."
16
13
  task :publish => :build do
17
- require 'lib/resque/plugins/batched_job/version'
14
+ require File.dirname(__FILE__) + '/lib/resque/plugins/batched_job/version'
18
15
  sh "gem push resque-batched-job-#{Resque::Plugins::BatchedJob::VERSION}.gem"
19
16
  sh "git tag v#{Resque::Plugins::BatchedJob::VERSION}"
20
17
  sh "git push origin v#{Resque::Plugins::BatchedJob::VERSION}"
@@ -1,7 +1,7 @@
1
1
  module Resque
2
2
  module Plugins
3
3
  module BatchedJob
4
- VERSION = '0.1.4'
4
+ VERSION = '0.1.5'
5
5
  end
6
6
  end
7
7
  end
@@ -25,7 +25,7 @@ module Resque
25
25
  #
26
26
  # Batch the job. The first argument of a batched job, is the batch id.
27
27
  def after_enqueue_batch(id, *args)
28
- redis.sadd(batch(id), encode(args))
28
+ redis.sadd(batch(id), encode(args.insert(0, self.name)))
29
29
  end
30
30
 
31
31
  =begin
@@ -46,7 +46,7 @@ module Resque
46
46
  begin
47
47
  yield
48
48
  ensure
49
- redis.srem(batch(id), "#{encode(args)}")
49
+ redis.srem(batch(id), "#{encode(args.insert(0, self.name))}")
50
50
  end
51
51
  end
52
52
 
@@ -1,45 +1,62 @@
1
1
  require 'rubygems'
2
2
  require 'test/unit'
3
3
  require 'resque'
4
-
5
- $:.unshift(File.dirname(__FILE__) + '../lib')
6
-
7
- require 'resque/plugins/batched_job'
4
+ require 'resque-batched-job'
8
5
 
9
6
  class Job
10
-
11
7
  extend Resque::Plugins::BatchedJob
12
-
13
8
  @queue = :test
14
9
 
15
- def self.perform(batch_id)
16
- $stdout.puts "perform batch[#{batch_id}]"
17
- sleep 1
10
+ def self.perform(batch_id, arg)
18
11
  end
19
12
 
20
- def self.after_batch_hook(batch_id)
21
- $stdout.puts "after_bactch [#{batch_id}]"
22
- sleep 1
13
+ def self.after_batch_hook(batch_id, arg)
14
+ $batch_complete = true
23
15
  end
24
16
 
25
17
  end
26
18
 
27
19
  class BatchedJobTest < Test::Unit::TestCase
28
20
 
21
+ def setup
22
+ $batch_complete = false
23
+ @batch_id = :foo
24
+ @batch = "batch:#{@batch_id}"
25
+ @cnt = 5
26
+ @cnt.times { Resque.enqueue(Job, @batch_id, "arg#{rand(100)}") }
27
+ end
28
+
29
+ def teardown
30
+ redis.del(@batch)
31
+ redis.del("queue:test")
32
+ end
33
+
29
34
  def test_list
30
35
  assert_nothing_raised do
31
36
  Resque::Plugin.lint(Resque::Plugins::BatchedJob)
32
37
  end
33
38
  end
34
39
 
35
- def test_version
36
- assert_equal('1.10.0', Resque::Version)
40
+ def test_batch_key
41
+ assert_equal(@batch, Job.batch(@batch_id))
37
42
  end
38
43
 
39
- def test_batched_job
40
- 5.times { Resque.enqueue(Job, 1, "arg#{rand(100)}") }
41
- worker = Resque::Worker.new(:test)
42
- worker.work
44
+ def test_batch_size
45
+ assert_equal(@cnt, redis.smembers(@batch).size)
43
46
  end
47
+
48
+ def test_batch_hook
49
+ assert_nothing_raised do
50
+ @cnt.times { Resque.reserve(:test).perform }
51
+ end
52
+ assert($batch_complete)
53
+ assert_equal(false, redis.exists(@batch))
54
+ end
55
+
56
+ private
57
+
58
+ def redis
59
+ Resque.redis
60
+ end
44
61
 
45
62
  end
metadata CHANGED
@@ -1,47 +1,34 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: resque-batched-job
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 4
9
- version: 0.1.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.5
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Daniel Johnston
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2010-12-11 00:00:00 -06:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2011-10-22 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: resque
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70235562803180 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- segments:
29
- - 1
30
- - 10
31
- - 0
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
32
21
  version: 1.10.0
33
22
  type: :runtime
34
- version_requirements: *id001
35
- description: " Resque plugin for batching jobs. When a batch/group of jobs are complete, \n\
36
- additional work can be performed usings batch hooks.\n"
23
+ prerelease: false
24
+ version_requirements: *70235562803180
25
+ description: ! " Resque plugin for batching jobs. When a batch/group of jobs are
26
+ complete, \nadditional work can be performed usings batch hooks.\n"
37
27
  email: dan@dj-agiledev.com
38
28
  executables: []
39
-
40
29
  extensions: []
41
-
42
30
  extra_rdoc_files: []
43
-
44
- files:
31
+ files:
45
32
  - LICENSE
46
33
  - Rakefile
47
34
  - README.markdown
@@ -49,37 +36,29 @@ files:
49
36
  - lib/resque/plugins/batched_job.rb
50
37
  - lib/resque-batched-job.rb
51
38
  - test/test_batched_job.rb
52
- has_rdoc: true
53
- homepage: http://github.com/djohnston/resque-batched-job
39
+ homepage: https://github.com/drfeelngood/resque-batched-job
54
40
  licenses: []
55
-
56
41
  post_install_message:
57
42
  rdoc_options: []
58
-
59
- require_paths:
43
+ require_paths:
60
44
  - lib
61
- required_ruby_version: !ruby/object:Gem::Requirement
45
+ required_ruby_version: !ruby/object:Gem::Requirement
62
46
  none: false
63
- requirements:
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- segments:
67
- - 0
68
- version: "0"
69
- required_rubygems_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ! '>='
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
70
52
  none: false
71
- requirements:
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- segments:
75
- - 0
76
- version: "0"
53
+ requirements:
54
+ - - ! '>='
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
77
57
  requirements: []
78
-
79
58
  rubyforge_project:
80
- rubygems_version: 1.3.7
59
+ rubygems_version: 1.8.11
81
60
  signing_key:
82
61
  specification_version: 3
83
62
  summary: Resque plugin
84
- test_files:
63
+ test_files:
85
64
  - test/test_batched_job.rb