girl_friday 0.9.2 → 0.9.3
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/History.md +5 -0
- data/lib/girl_friday/version.rb +1 -1
- data/lib/girl_friday/work_queue.rb +1 -1
- data/test/test_girl_friday_immediately.rb +30 -0
- metadata +36 -43
data/History.md
CHANGED
data/lib/girl_friday/version.rb
CHANGED
|
@@ -39,7 +39,7 @@ module GirlFriday
|
|
|
39
39
|
|
|
40
40
|
if defined?(Rails) && Rails.env.development?
|
|
41
41
|
Rails.logger.debug "[girl_friday] Starting in single-threaded mode for Rails autoloading compatibility" if Rails.logger
|
|
42
|
-
|
|
42
|
+
alias_method :push_async, :push_immediately
|
|
43
43
|
else
|
|
44
44
|
def push_async(work, &block)
|
|
45
45
|
@supervisor << Work[work, block]
|
|
@@ -46,4 +46,34 @@ class TestGirlFridayImmediately < MiniTest::Unit::TestCase
|
|
|
46
46
|
assert_equal 3, queue.push(:start => 2)
|
|
47
47
|
assert_equal 3, queue << {:start => 2}
|
|
48
48
|
end
|
|
49
|
+
|
|
50
|
+
def test_should_process_immediately_when_rails_dev
|
|
51
|
+
# remove WorkQueue definitions first, since #push_async is defined
|
|
52
|
+
# as the class definition is executed, and Rails constant is not defined yet
|
|
53
|
+
[:Queue, :WorkQueue].each {|c| GirlFriday.send(:remove_const, c)}
|
|
54
|
+
|
|
55
|
+
# now top-level Rails constant will exist
|
|
56
|
+
Object.send(:include, RailsEnvironment)
|
|
57
|
+
|
|
58
|
+
# re-load class now that Rails constant is defined
|
|
59
|
+
$".delete_if {|f| f =~ %r{work_queue.rb}}
|
|
60
|
+
require 'girl_friday/work_queue'
|
|
61
|
+
|
|
62
|
+
# verify that we process immediately
|
|
63
|
+
queue = GirlFriday::WorkQueue.new('now') do |msg|
|
|
64
|
+
msg[:start] + 1
|
|
65
|
+
end
|
|
66
|
+
assert_equal 4, queue.push(:start => 3)
|
|
67
|
+
assert_equal 4, queue << {:start => 3}
|
|
68
|
+
end
|
|
49
69
|
end
|
|
70
|
+
|
|
71
|
+
module RailsEnvironment
|
|
72
|
+
class Rails
|
|
73
|
+
def self.method_missing(m, *args, &block)
|
|
74
|
+
# swallow every call and return self so that WorkQueue
|
|
75
|
+
# thinks Rails dev environment is loaded
|
|
76
|
+
self
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
metadata
CHANGED
|
@@ -1,50 +1,46 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: girl_friday
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.9.3
|
|
4
5
|
prerelease:
|
|
5
|
-
version: 0.9.2
|
|
6
6
|
platform: ruby
|
|
7
|
-
authors:
|
|
7
|
+
authors:
|
|
8
8
|
- Mike Perham
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
|
|
13
|
-
date: 2011-08-01 00:00:00 -07:00
|
|
12
|
+
date: 2011-08-02 00:00:00.000000000 -07:00
|
|
14
13
|
default_executable:
|
|
15
|
-
dependencies:
|
|
16
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
17
16
|
name: sinatra
|
|
18
|
-
|
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
17
|
+
requirement: &2164886320 !ruby/object:Gem::Requirement
|
|
20
18
|
none: false
|
|
21
|
-
requirements:
|
|
19
|
+
requirements:
|
|
22
20
|
- - ~>
|
|
23
|
-
- !ruby/object:Gem::Version
|
|
24
|
-
version:
|
|
21
|
+
- !ruby/object:Gem::Version
|
|
22
|
+
version: '1.0'
|
|
25
23
|
type: :development
|
|
26
|
-
version_requirements: *id001
|
|
27
|
-
- !ruby/object:Gem::Dependency
|
|
28
|
-
name: rake
|
|
29
24
|
prerelease: false
|
|
30
|
-
|
|
25
|
+
version_requirements: *2164886320
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: rake
|
|
28
|
+
requirement: &2164885900 !ruby/object:Gem::Requirement
|
|
31
29
|
none: false
|
|
32
|
-
requirements:
|
|
33
|
-
- -
|
|
34
|
-
- !ruby/object:Gem::Version
|
|
35
|
-
version:
|
|
30
|
+
requirements:
|
|
31
|
+
- - ! '>='
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0'
|
|
36
34
|
type: :development
|
|
37
|
-
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: *2164885900
|
|
38
37
|
description: Background processing, simplified
|
|
39
|
-
email:
|
|
38
|
+
email:
|
|
40
39
|
- mperham@gmail.com
|
|
41
40
|
executables: []
|
|
42
|
-
|
|
43
41
|
extensions: []
|
|
44
|
-
|
|
45
42
|
extra_rdoc_files: []
|
|
46
|
-
|
|
47
|
-
files:
|
|
43
|
+
files:
|
|
48
44
|
- .gitignore
|
|
49
45
|
- .rvmrc
|
|
50
46
|
- .travis.yml
|
|
@@ -79,32 +75,29 @@ files:
|
|
|
79
75
|
has_rdoc: true
|
|
80
76
|
homepage: http://github.com/mperham/girl_friday
|
|
81
77
|
licenses: []
|
|
82
|
-
|
|
83
78
|
post_install_message:
|
|
84
79
|
rdoc_options: []
|
|
85
|
-
|
|
86
|
-
require_paths:
|
|
80
|
+
require_paths:
|
|
87
81
|
- lib
|
|
88
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
89
83
|
none: false
|
|
90
|
-
requirements:
|
|
91
|
-
- -
|
|
92
|
-
- !ruby/object:Gem::Version
|
|
93
|
-
version:
|
|
94
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
84
|
+
requirements:
|
|
85
|
+
- - ! '>='
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: '0'
|
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
89
|
none: false
|
|
96
|
-
requirements:
|
|
97
|
-
- -
|
|
98
|
-
- !ruby/object:Gem::Version
|
|
99
|
-
version:
|
|
90
|
+
requirements:
|
|
91
|
+
- - ! '>='
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: '0'
|
|
100
94
|
requirements: []
|
|
101
|
-
|
|
102
95
|
rubyforge_project: girl_friday
|
|
103
|
-
rubygems_version: 1.
|
|
96
|
+
rubygems_version: 1.6.2
|
|
104
97
|
signing_key:
|
|
105
98
|
specification_version: 3
|
|
106
99
|
summary: Background processing, simplified
|
|
107
|
-
test_files:
|
|
100
|
+
test_files:
|
|
108
101
|
- test/helper.rb
|
|
109
102
|
- test/test_batch.rb
|
|
110
103
|
- test/test_girl_friday.rb
|