governor_background 0.1.0

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.
Files changed (86) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +28 -0
  4. data/Gemfile.lock +163 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.rdoc +91 -0
  7. data/Rakefile +50 -0
  8. data/VERSION +1 -0
  9. data/app/helpers/governor_background_helper.rb +11 -0
  10. data/governor_background.gemspec +206 -0
  11. data/lib/governor_background/controllers/methods.rb +18 -0
  12. data/lib/governor_background/delayed/job.rb +70 -0
  13. data/lib/governor_background/delayed/performer.rb +13 -0
  14. data/lib/governor_background/handler.rb +34 -0
  15. data/lib/governor_background/job_manager.rb +22 -0
  16. data/lib/governor_background/rails.rb +8 -0
  17. data/lib/governor_background/resque/job.rb +51 -0
  18. data/lib/governor_background/resque/performer.rb +12 -0
  19. data/lib/governor_background/resque/performer_with_state.rb +17 -0
  20. data/lib/governor_background.rb +22 -0
  21. data/spec/governor_background/delayed/job_spec.rb +47 -0
  22. data/spec/governor_background/handler_spec.rb +46 -0
  23. data/spec/governor_background/job_manager_spec.rb +44 -0
  24. data/spec/governor_background/resque/performer_spec.rb +17 -0
  25. data/spec/governor_background/resque/performer_with_state_spec.rb +18 -0
  26. data/spec/governor_background_spec.rb +7 -0
  27. data/spec/rails_app/.gitignore +4 -0
  28. data/spec/rails_app/Gemfile +43 -0
  29. data/spec/rails_app/Gemfile.lock +128 -0
  30. data/spec/rails_app/README +256 -0
  31. data/spec/rails_app/Rakefile +7 -0
  32. data/spec/rails_app/app/controllers/application_controller.rb +3 -0
  33. data/spec/rails_app/app/controllers/home_controller.rb +2 -0
  34. data/spec/rails_app/app/helpers/application_helper.rb +2 -0
  35. data/spec/rails_app/app/helpers/home_helper.rb +2 -0
  36. data/spec/rails_app/app/models/article.rb +5 -0
  37. data/spec/rails_app/app/models/user.rb +9 -0
  38. data/spec/rails_app/app/views/governor/articles/index.xml.builder +5 -0
  39. data/spec/rails_app/app/views/home/index.html.erb +0 -0
  40. data/spec/rails_app/app/views/layouts/application.html.erb +22 -0
  41. data/spec/rails_app/config/application.rb +42 -0
  42. data/spec/rails_app/config/boot.rb +14 -0
  43. data/spec/rails_app/config/database.yml +19 -0
  44. data/spec/rails_app/config/environment.rb +5 -0
  45. data/spec/rails_app/config/environments/development.rb +26 -0
  46. data/spec/rails_app/config/environments/production.rb +49 -0
  47. data/spec/rails_app/config/environments/test.rb +35 -0
  48. data/spec/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  49. data/spec/rails_app/config/initializers/devise.rb +142 -0
  50. data/spec/rails_app/config/initializers/governor.rb +36 -0
  51. data/spec/rails_app/config/initializers/inflections.rb +10 -0
  52. data/spec/rails_app/config/initializers/mime_types.rb +5 -0
  53. data/spec/rails_app/config/initializers/resque.rb +5 -0
  54. data/spec/rails_app/config/initializers/secret_token.rb +7 -0
  55. data/spec/rails_app/config/initializers/session_store.rb +8 -0
  56. data/spec/rails_app/config/locales/devise.en.yml +39 -0
  57. data/spec/rails_app/config/locales/en.yml +5 -0
  58. data/spec/rails_app/config/redis.yml +15 -0
  59. data/spec/rails_app/config/routes.rb +64 -0
  60. data/spec/rails_app/config.ru +4 -0
  61. data/spec/rails_app/db/migrate/20110329032256_devise_create_users.rb +26 -0
  62. data/spec/rails_app/db/migrate/20110330020108_governor_create_articles.rb +15 -0
  63. data/spec/rails_app/db/migrate/20110421014910_create_delayed_jobs.rb +21 -0
  64. data/spec/rails_app/db/schema.rb +59 -0
  65. data/spec/rails_app/db/seeds.rb +7 -0
  66. data/spec/rails_app/lib/tasks/.gitkeep +0 -0
  67. data/spec/rails_app/lib/tasks/resque.rake +2 -0
  68. data/spec/rails_app/public/404.html +26 -0
  69. data/spec/rails_app/public/422.html +26 -0
  70. data/spec/rails_app/public/500.html +26 -0
  71. data/spec/rails_app/public/favicon.ico +0 -0
  72. data/spec/rails_app/public/images/rails.png +0 -0
  73. data/spec/rails_app/public/javascripts/application.js +2 -0
  74. data/spec/rails_app/public/javascripts/controls.js +965 -0
  75. data/spec/rails_app/public/javascripts/dragdrop.js +974 -0
  76. data/spec/rails_app/public/javascripts/effects.js +1123 -0
  77. data/spec/rails_app/public/javascripts/prototype.js +6001 -0
  78. data/spec/rails_app/public/javascripts/rails.js +191 -0
  79. data/spec/rails_app/public/robots.txt +5 -0
  80. data/spec/rails_app/public/stylesheets/.gitkeep +0 -0
  81. data/spec/rails_app/script/delayed_job +5 -0
  82. data/spec/rails_app/script/rails +6 -0
  83. data/spec/rails_app/spec/factories.rb +12 -0
  84. data/spec/rails_app/vendor/plugins/.gitkeep +0 -0
  85. data/spec/spec_helper.rb +36 -0
  86. metadata +417 -0
@@ -0,0 +1,191 @@
1
+ (function() {
2
+ // Technique from Juriy Zaytsev
3
+ // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
4
+ function isEventSupported(eventName) {
5
+ var el = document.createElement('div');
6
+ eventName = 'on' + eventName;
7
+ var isSupported = (eventName in el);
8
+ if (!isSupported) {
9
+ el.setAttribute(eventName, 'return;');
10
+ isSupported = typeof el[eventName] == 'function';
11
+ }
12
+ el = null;
13
+ return isSupported;
14
+ }
15
+
16
+ function isForm(element) {
17
+ return Object.isElement(element) && element.nodeName.toUpperCase() == 'FORM'
18
+ }
19
+
20
+ function isInput(element) {
21
+ if (Object.isElement(element)) {
22
+ var name = element.nodeName.toUpperCase()
23
+ return name == 'INPUT' || name == 'SELECT' || name == 'TEXTAREA'
24
+ }
25
+ else return false
26
+ }
27
+
28
+ var submitBubbles = isEventSupported('submit'),
29
+ changeBubbles = isEventSupported('change')
30
+
31
+ if (!submitBubbles || !changeBubbles) {
32
+ // augment the Event.Handler class to observe custom events when needed
33
+ Event.Handler.prototype.initialize = Event.Handler.prototype.initialize.wrap(
34
+ function(init, element, eventName, selector, callback) {
35
+ init(element, eventName, selector, callback)
36
+ // is the handler being attached to an element that doesn't support this event?
37
+ if ( (!submitBubbles && this.eventName == 'submit' && !isForm(this.element)) ||
38
+ (!changeBubbles && this.eventName == 'change' && !isInput(this.element)) ) {
39
+ // "submit" => "emulated:submit"
40
+ this.eventName = 'emulated:' + this.eventName
41
+ }
42
+ }
43
+ )
44
+ }
45
+
46
+ if (!submitBubbles) {
47
+ // discover forms on the page by observing focus events which always bubble
48
+ document.on('focusin', 'form', function(focusEvent, form) {
49
+ // special handler for the real "submit" event (one-time operation)
50
+ if (!form.retrieve('emulated:submit')) {
51
+ form.on('submit', function(submitEvent) {
52
+ var emulated = form.fire('emulated:submit', submitEvent, true)
53
+ // if custom event received preventDefault, cancel the real one too
54
+ if (emulated.returnValue === false) submitEvent.preventDefault()
55
+ })
56
+ form.store('emulated:submit', true)
57
+ }
58
+ })
59
+ }
60
+
61
+ if (!changeBubbles) {
62
+ // discover form inputs on the page
63
+ document.on('focusin', 'input, select, texarea', function(focusEvent, input) {
64
+ // special handler for real "change" events
65
+ if (!input.retrieve('emulated:change')) {
66
+ input.on('change', function(changeEvent) {
67
+ input.fire('emulated:change', changeEvent, true)
68
+ })
69
+ input.store('emulated:change', true)
70
+ }
71
+ })
72
+ }
73
+
74
+ function handleRemote(element) {
75
+ var method, url, params;
76
+
77
+ var event = element.fire("ajax:before");
78
+ if (event.stopped) return false;
79
+
80
+ if (element.tagName.toLowerCase() === 'form') {
81
+ method = element.readAttribute('method') || 'post';
82
+ url = element.readAttribute('action');
83
+ params = element.serialize();
84
+ } else {
85
+ method = element.readAttribute('data-method') || 'get';
86
+ url = element.readAttribute('href');
87
+ params = {};
88
+ }
89
+
90
+ new Ajax.Request(url, {
91
+ method: method,
92
+ parameters: params,
93
+ evalScripts: true,
94
+
95
+ onComplete: function(request) { element.fire("ajax:complete", request); },
96
+ onSuccess: function(request) { element.fire("ajax:success", request); },
97
+ onFailure: function(request) { element.fire("ajax:failure", request); }
98
+ });
99
+
100
+ element.fire("ajax:after");
101
+ }
102
+
103
+ function handleMethod(element) {
104
+ var method = element.readAttribute('data-method'),
105
+ url = element.readAttribute('href'),
106
+ csrf_param = $$('meta[name=csrf-param]')[0],
107
+ csrf_token = $$('meta[name=csrf-token]')[0];
108
+
109
+ var form = new Element('form', { method: "POST", action: url, style: "display: none;" });
110
+ element.parentNode.insert(form);
111
+
112
+ if (method !== 'post') {
113
+ var field = new Element('input', { type: 'hidden', name: '_method', value: method });
114
+ form.insert(field);
115
+ }
116
+
117
+ if (csrf_param) {
118
+ var param = csrf_param.readAttribute('content'),
119
+ token = csrf_token.readAttribute('content'),
120
+ field = new Element('input', { type: 'hidden', name: param, value: token });
121
+ form.insert(field);
122
+ }
123
+
124
+ form.submit();
125
+ }
126
+
127
+
128
+ document.on("click", "*[data-confirm]", function(event, element) {
129
+ var message = element.readAttribute('data-confirm');
130
+ if (!confirm(message)) event.stop();
131
+ });
132
+
133
+ document.on("click", "a[data-remote]", function(event, element) {
134
+ if (event.stopped) return;
135
+ handleRemote(element);
136
+ event.stop();
137
+ });
138
+
139
+ document.on("click", "a[data-method]", function(event, element) {
140
+ if (event.stopped) return;
141
+ handleMethod(element);
142
+ event.stop();
143
+ });
144
+
145
+ document.on("submit", function(event) {
146
+ var element = event.findElement(),
147
+ message = element.readAttribute('data-confirm');
148
+ if (message && !confirm(message)) {
149
+ event.stop();
150
+ return false;
151
+ }
152
+
153
+ var inputs = element.select("input[type=submit][data-disable-with]");
154
+ inputs.each(function(input) {
155
+ input.disabled = true;
156
+ input.writeAttribute('data-original-value', input.value);
157
+ input.value = input.readAttribute('data-disable-with');
158
+ });
159
+
160
+ var element = event.findElement("form[data-remote]");
161
+ if (element) {
162
+ handleRemote(element);
163
+ event.stop();
164
+ }
165
+ });
166
+
167
+ document.on("ajax:after", "form", function(event, element) {
168
+ var inputs = element.select("input[type=submit][disabled=true][data-disable-with]");
169
+ inputs.each(function(input) {
170
+ input.value = input.readAttribute('data-original-value');
171
+ input.removeAttribute('data-original-value');
172
+ input.disabled = false;
173
+ });
174
+ });
175
+
176
+ Ajax.Responders.register({
177
+ onCreate: function(request) {
178
+ var csrf_meta_tag = $$('meta[name=csrf-token]')[0];
179
+
180
+ if (csrf_meta_tag) {
181
+ var header = 'X-CSRF-Token',
182
+ token = csrf_meta_tag.readAttribute('content');
183
+
184
+ if (!request.options.requestHeaders) {
185
+ request.options.requestHeaders = {};
186
+ }
187
+ request.options.requestHeaders[header] = token;
188
+ }
189
+ }
190
+ });
191
+ })();
@@ -0,0 +1,5 @@
1
+ # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
+ #
3
+ # To ban all spiders from the entire site uncomment the next two lines:
4
+ # User-Agent: *
5
+ # Disallow: /
File without changes
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
4
+ require 'delayed/command'
5
+ Delayed::Command.new(ARGV).daemonize
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,12 @@
1
+ FactoryGirl.define do
2
+ factory :article do |a|
3
+ a.title "Some article"
4
+ a.post "This is the post. It shouldn't be blank."
5
+ end
6
+
7
+ factory :user do |u|
8
+ u.email 'blago@mayor.cityofchicago.org'
9
+ u.password 'ca$hmoney'
10
+ u.password_confirmation 'ca$hmoney'
11
+ end
12
+ end
File without changes
@@ -0,0 +1,36 @@
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+
3
+ require File.expand_path('../rails_app/config/environment.rb', __FILE__)
4
+
5
+ require 'bundler'
6
+ Bundler.setup
7
+
8
+ require 'rspec'
9
+ require 'rspec/rails'
10
+ # require 'active_support/core_ext'
11
+ # require 'rails/test_help'
12
+
13
+ Dir[Rails.root.join('spec/support/**/*.rb')].each {|f| require f}
14
+
15
+ ActiveRecord::Migrator.migrate File.expand_path('../rails_app/db/migrate/', __FILE__)
16
+
17
+ Rspec.configure do |config|
18
+ config.mock_with :mocha
19
+
20
+ config.use_transactional_fixtures = true
21
+ end
22
+
23
+ # for removing plugins added in a test to make sure they don't bleed over
24
+ module Governor
25
+ class PluginManager
26
+ def self.remove_plugin(plugin_or_name)
27
+ case plugin_or_name
28
+ when Plugin then return @@plugins.delete(plugin_or_name)
29
+ else # Plugin Name
30
+ @@plugins.each do |plugin|
31
+ return @@plugins.delete(plugin) if plugin.name == plugin_or_name
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
metadata ADDED
@@ -0,0 +1,417 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: governor_background
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 1
9
+ - 0
10
+ version: 0.1.0
11
+ platform: ruby
12
+ authors:
13
+ - Liam Morley
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-04-24 00:00:00 -04:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ type: :runtime
23
+ prerelease: false
24
+ name: governor
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: :development
37
+ prerelease: false
38
+ name: jeweler
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ~>
43
+ - !ruby/object:Gem::Version
44
+ hash: 7
45
+ segments:
46
+ - 1
47
+ - 5
48
+ - 2
49
+ version: 1.5.2
50
+ requirement: *id002
51
+ - !ruby/object:Gem::Dependency
52
+ type: :development
53
+ prerelease: false
54
+ name: sqlite3
55
+ version_requirements: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
63
+ version: "0"
64
+ requirement: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ type: :development
67
+ prerelease: false
68
+ name: rspec-rails
69
+ version_requirements: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
78
+ requirement: *id004
79
+ - !ruby/object:Gem::Dependency
80
+ type: :development
81
+ prerelease: false
82
+ name: mocha
83
+ version_requirements: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 0
91
+ version: "0"
92
+ requirement: *id005
93
+ - !ruby/object:Gem::Dependency
94
+ type: :development
95
+ prerelease: false
96
+ name: factory_girl
97
+ version_requirements: &id006 !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ hash: 31098209
103
+ segments:
104
+ - 2
105
+ - 0
106
+ - 0
107
+ - beta
108
+ version: 2.0.0.beta
109
+ requirement: *id006
110
+ - !ruby/object:Gem::Dependency
111
+ type: :development
112
+ prerelease: false
113
+ name: factory_girl_rails
114
+ version_requirements: &id007 !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ~>
118
+ - !ruby/object:Gem::Version
119
+ hash: 31098141
120
+ segments:
121
+ - 1
122
+ - 1
123
+ - beta
124
+ version: 1.1.beta
125
+ requirement: *id007
126
+ - !ruby/object:Gem::Dependency
127
+ type: :development
128
+ prerelease: false
129
+ name: activerecord-nulldb-adapter
130
+ version_requirements: &id008 !ruby/object:Gem::Requirement
131
+ none: false
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ hash: 3
136
+ segments:
137
+ - 0
138
+ version: "0"
139
+ requirement: *id008
140
+ - !ruby/object:Gem::Dependency
141
+ type: :development
142
+ prerelease: false
143
+ name: will_paginate
144
+ version_requirements: &id009 !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ hash: 31098121
150
+ segments:
151
+ - 3
152
+ - 0
153
+ - beta
154
+ version: 3.0.beta
155
+ requirement: *id009
156
+ - !ruby/object:Gem::Dependency
157
+ type: :development
158
+ prerelease: false
159
+ name: devise
160
+ version_requirements: &id010 !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ hash: 3
166
+ segments:
167
+ - 0
168
+ version: "0"
169
+ requirement: *id010
170
+ - !ruby/object:Gem::Dependency
171
+ type: :development
172
+ prerelease: false
173
+ name: governor_background
174
+ version_requirements: &id011 !ruby/object:Gem::Requirement
175
+ none: false
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ hash: 3
180
+ segments:
181
+ - 0
182
+ version: "0"
183
+ requirement: *id011
184
+ - !ruby/object:Gem::Dependency
185
+ type: :development
186
+ prerelease: false
187
+ name: delayed_job
188
+ version_requirements: &id012 !ruby/object:Gem::Requirement
189
+ none: false
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ hash: 3
194
+ segments:
195
+ - 0
196
+ version: "0"
197
+ requirement: *id012
198
+ - !ruby/object:Gem::Dependency
199
+ type: :development
200
+ prerelease: false
201
+ name: resque
202
+ version_requirements: &id013 !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ hash: 3
208
+ segments:
209
+ - 0
210
+ version: "0"
211
+ requirement: *id013
212
+ - !ruby/object:Gem::Dependency
213
+ type: :development
214
+ prerelease: false
215
+ name: resque-status
216
+ version_requirements: &id014 !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ hash: 3
222
+ segments:
223
+ - 0
224
+ version: "0"
225
+ requirement: *id014
226
+ - !ruby/object:Gem::Dependency
227
+ type: :development
228
+ prerelease: false
229
+ name: resque_spec
230
+ version_requirements: &id015 !ruby/object:Gem::Requirement
231
+ none: false
232
+ requirements:
233
+ - - ">="
234
+ - !ruby/object:Gem::Version
235
+ hash: 3
236
+ segments:
237
+ - 0
238
+ version: "0"
239
+ requirement: *id015
240
+ - !ruby/object:Gem::Dependency
241
+ type: :development
242
+ prerelease: false
243
+ name: dynamic_form
244
+ version_requirements: &id016 !ruby/object:Gem::Requirement
245
+ none: false
246
+ requirements:
247
+ - - ">="
248
+ - !ruby/object:Gem::Version
249
+ hash: 3
250
+ segments:
251
+ - 0
252
+ version: "0"
253
+ requirement: *id016
254
+ description: A middle-tier plugin for the Rails 3-based Governor blogging system, allowing you to tie in additional services that might want to perform blog-related services in the background.
255
+ email: liam@carpeliam.com
256
+ executables: []
257
+
258
+ extensions: []
259
+
260
+ extra_rdoc_files:
261
+ - LICENSE.txt
262
+ - README.rdoc
263
+ files:
264
+ - .document
265
+ - .rspec
266
+ - Gemfile
267
+ - Gemfile.lock
268
+ - LICENSE.txt
269
+ - README.rdoc
270
+ - Rakefile
271
+ - VERSION
272
+ - app/helpers/governor_background_helper.rb
273
+ - governor_background.gemspec
274
+ - lib/governor_background.rb
275
+ - lib/governor_background/controllers/methods.rb
276
+ - lib/governor_background/delayed/job.rb
277
+ - lib/governor_background/delayed/performer.rb
278
+ - lib/governor_background/handler.rb
279
+ - lib/governor_background/job_manager.rb
280
+ - lib/governor_background/rails.rb
281
+ - lib/governor_background/resque/job.rb
282
+ - lib/governor_background/resque/performer.rb
283
+ - lib/governor_background/resque/performer_with_state.rb
284
+ - spec/governor_background/delayed/job_spec.rb
285
+ - spec/governor_background/handler_spec.rb
286
+ - spec/governor_background/job_manager_spec.rb
287
+ - spec/governor_background/resque/performer_spec.rb
288
+ - spec/governor_background/resque/performer_with_state_spec.rb
289
+ - spec/governor_background_spec.rb
290
+ - spec/rails_app/.gitignore
291
+ - spec/rails_app/Gemfile
292
+ - spec/rails_app/Gemfile.lock
293
+ - spec/rails_app/README
294
+ - spec/rails_app/Rakefile
295
+ - spec/rails_app/app/controllers/application_controller.rb
296
+ - spec/rails_app/app/controllers/home_controller.rb
297
+ - spec/rails_app/app/helpers/application_helper.rb
298
+ - spec/rails_app/app/helpers/home_helper.rb
299
+ - spec/rails_app/app/models/article.rb
300
+ - spec/rails_app/app/models/user.rb
301
+ - spec/rails_app/app/views/governor/articles/index.xml.builder
302
+ - spec/rails_app/app/views/home/index.html.erb
303
+ - spec/rails_app/app/views/layouts/application.html.erb
304
+ - spec/rails_app/config.ru
305
+ - spec/rails_app/config/application.rb
306
+ - spec/rails_app/config/boot.rb
307
+ - spec/rails_app/config/database.yml
308
+ - spec/rails_app/config/environment.rb
309
+ - spec/rails_app/config/environments/development.rb
310
+ - spec/rails_app/config/environments/production.rb
311
+ - spec/rails_app/config/environments/test.rb
312
+ - spec/rails_app/config/initializers/backtrace_silencers.rb
313
+ - spec/rails_app/config/initializers/devise.rb
314
+ - spec/rails_app/config/initializers/governor.rb
315
+ - spec/rails_app/config/initializers/inflections.rb
316
+ - spec/rails_app/config/initializers/mime_types.rb
317
+ - spec/rails_app/config/initializers/resque.rb
318
+ - spec/rails_app/config/initializers/secret_token.rb
319
+ - spec/rails_app/config/initializers/session_store.rb
320
+ - spec/rails_app/config/locales/devise.en.yml
321
+ - spec/rails_app/config/locales/en.yml
322
+ - spec/rails_app/config/redis.yml
323
+ - spec/rails_app/config/routes.rb
324
+ - spec/rails_app/db/migrate/20110329032256_devise_create_users.rb
325
+ - spec/rails_app/db/migrate/20110330020108_governor_create_articles.rb
326
+ - spec/rails_app/db/migrate/20110421014910_create_delayed_jobs.rb
327
+ - spec/rails_app/db/schema.rb
328
+ - spec/rails_app/db/seeds.rb
329
+ - spec/rails_app/lib/tasks/.gitkeep
330
+ - spec/rails_app/lib/tasks/resque.rake
331
+ - spec/rails_app/public/404.html
332
+ - spec/rails_app/public/422.html
333
+ - spec/rails_app/public/500.html
334
+ - spec/rails_app/public/favicon.ico
335
+ - spec/rails_app/public/images/rails.png
336
+ - spec/rails_app/public/javascripts/application.js
337
+ - spec/rails_app/public/javascripts/controls.js
338
+ - spec/rails_app/public/javascripts/dragdrop.js
339
+ - spec/rails_app/public/javascripts/effects.js
340
+ - spec/rails_app/public/javascripts/prototype.js
341
+ - spec/rails_app/public/javascripts/rails.js
342
+ - spec/rails_app/public/robots.txt
343
+ - spec/rails_app/public/stylesheets/.gitkeep
344
+ - spec/rails_app/script/delayed_job
345
+ - spec/rails_app/script/rails
346
+ - spec/rails_app/spec/factories.rb
347
+ - spec/rails_app/vendor/plugins/.gitkeep
348
+ - spec/spec_helper.rb
349
+ has_rdoc: true
350
+ homepage: http://github.com/carpeliam/governor_background
351
+ licenses:
352
+ - MIT
353
+ post_install_message:
354
+ rdoc_options: []
355
+
356
+ require_paths:
357
+ - lib
358
+ required_ruby_version: !ruby/object:Gem::Requirement
359
+ none: false
360
+ requirements:
361
+ - - ">="
362
+ - !ruby/object:Gem::Version
363
+ hash: 3
364
+ segments:
365
+ - 0
366
+ version: "0"
367
+ required_rubygems_version: !ruby/object:Gem::Requirement
368
+ none: false
369
+ requirements:
370
+ - - ">="
371
+ - !ruby/object:Gem::Version
372
+ hash: 3
373
+ segments:
374
+ - 0
375
+ version: "0"
376
+ requirements: []
377
+
378
+ rubyforge_project:
379
+ rubygems_version: 1.3.7
380
+ signing_key:
381
+ specification_version: 3
382
+ summary: Background services plugin for the Rails 3-based Governor blogging system.
383
+ test_files:
384
+ - spec/governor_background/delayed/job_spec.rb
385
+ - spec/governor_background/handler_spec.rb
386
+ - spec/governor_background/job_manager_spec.rb
387
+ - spec/governor_background/resque/performer_spec.rb
388
+ - spec/governor_background/resque/performer_with_state_spec.rb
389
+ - spec/governor_background_spec.rb
390
+ - spec/rails_app/app/controllers/application_controller.rb
391
+ - spec/rails_app/app/controllers/home_controller.rb
392
+ - spec/rails_app/app/helpers/application_helper.rb
393
+ - spec/rails_app/app/helpers/home_helper.rb
394
+ - spec/rails_app/app/models/article.rb
395
+ - spec/rails_app/app/models/user.rb
396
+ - spec/rails_app/config/application.rb
397
+ - spec/rails_app/config/boot.rb
398
+ - spec/rails_app/config/environment.rb
399
+ - spec/rails_app/config/environments/development.rb
400
+ - spec/rails_app/config/environments/production.rb
401
+ - spec/rails_app/config/environments/test.rb
402
+ - spec/rails_app/config/initializers/backtrace_silencers.rb
403
+ - spec/rails_app/config/initializers/devise.rb
404
+ - spec/rails_app/config/initializers/governor.rb
405
+ - spec/rails_app/config/initializers/inflections.rb
406
+ - spec/rails_app/config/initializers/mime_types.rb
407
+ - spec/rails_app/config/initializers/resque.rb
408
+ - spec/rails_app/config/initializers/secret_token.rb
409
+ - spec/rails_app/config/initializers/session_store.rb
410
+ - spec/rails_app/config/routes.rb
411
+ - spec/rails_app/db/migrate/20110329032256_devise_create_users.rb
412
+ - spec/rails_app/db/migrate/20110330020108_governor_create_articles.rb
413
+ - spec/rails_app/db/migrate/20110421014910_create_delayed_jobs.rb
414
+ - spec/rails_app/db/schema.rb
415
+ - spec/rails_app/db/seeds.rb
416
+ - spec/rails_app/spec/factories.rb
417
+ - spec/spec_helper.rb