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 CHANGED
@@ -1,6 +1,11 @@
1
1
  Changes
2
2
  ================
3
3
 
4
+ 0.9.3
5
+ ---------
6
+
7
+ * Fix runtime error introduced in last release when running in Rails development environment
8
+
4
9
  0.9.2
5
10
  ---------
6
11
 
@@ -1,3 +1,3 @@
1
1
  module GirlFriday
2
- VERSION = "0.9.2"
2
+ VERSION = "0.9.3"
3
3
  end
@@ -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
- alias :push_async, :push_immediately
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
- prerelease: false
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: "1.0"
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
- requirement: &id002 !ruby/object:Gem::Requirement
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: "0"
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
36
34
  type: :development
37
- version_requirements: *id002
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: "0"
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: "0"
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.5.2
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