devise-async 0.7.0 → 0.8.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.
data/.gitignore CHANGED
@@ -3,7 +3,6 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
- Gemfile.lock
7
6
  InstalledFiles
8
7
  _yardoc
9
8
  coverage
data/CHANGELOG.md CHANGED
@@ -1,10 +1,15 @@
1
1
  ## Unreleased
2
2
 
3
+ ## 0.8.0
4
+
5
+ * Support arbitrary number of arguments to mailer (glebm)
6
+ * Added torquebox support (astjohn)
7
+
3
8
  ## 0.7.0
4
9
 
5
10
  * make sure options hash has string keys when enqueued and symbol keys when job runs
6
11
  * stringfy options keys before enqueueing to make queue_classic happy (nickw)
7
- * Added `enable` options to make it easier to skip async processing during tests (mohamedmagdy)
12
+ * Added `Devise::Async.enabled=` options to make it easier to skip async processing during tests (mohamedmagdy)
8
13
 
9
14
  ## 0.6.0
10
15
 
data/Gemfile.lock ADDED
@@ -0,0 +1,144 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ devise-async (0.8.0)
5
+ devise (>= 2.2, < 3.2)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ actionmailer (3.2.14)
11
+ actionpack (= 3.2.14)
12
+ mail (~> 2.5.4)
13
+ actionpack (3.2.14)
14
+ activemodel (= 3.2.14)
15
+ activesupport (= 3.2.14)
16
+ builder (~> 3.0.0)
17
+ erubis (~> 2.7.0)
18
+ journey (~> 1.0.4)
19
+ rack (~> 1.4.5)
20
+ rack-cache (~> 1.2)
21
+ rack-test (~> 0.6.1)
22
+ sprockets (~> 2.2.1)
23
+ activemodel (3.2.14)
24
+ activesupport (= 3.2.14)
25
+ builder (~> 3.0.0)
26
+ activerecord (3.2.14)
27
+ activemodel (= 3.2.14)
28
+ activesupport (= 3.2.14)
29
+ arel (~> 3.0.2)
30
+ tzinfo (~> 0.3.29)
31
+ activesupport (3.2.14)
32
+ i18n (~> 0.6, >= 0.6.4)
33
+ multi_json (~> 1.0)
34
+ arel (3.0.2)
35
+ atomic (1.1.13)
36
+ bcrypt-ruby (3.1.2)
37
+ builder (3.0.4)
38
+ celluloid (0.10.0)
39
+ connection_pool (0.9.3)
40
+ delayed_job (3.0.4)
41
+ activesupport (~> 3.0)
42
+ delayed_job_active_record (0.4.4)
43
+ activerecord (>= 2.1.0, < 4)
44
+ delayed_job (~> 3.0)
45
+ devise (3.1.0)
46
+ bcrypt-ruby (~> 3.0)
47
+ orm_adapter (~> 0.1)
48
+ railties (>= 3.2.6, < 5)
49
+ thread_safe (~> 0.1)
50
+ warden (~> 1.2.3)
51
+ erubis (2.7.0)
52
+ hike (1.2.3)
53
+ i18n (0.6.5)
54
+ journey (1.0.4)
55
+ json (1.8.0)
56
+ mail (2.5.4)
57
+ mime-types (~> 1.16)
58
+ treetop (~> 1.4.8)
59
+ metaclass (0.0.1)
60
+ mime-types (1.25)
61
+ minitest (3.5.0)
62
+ mocha (0.14.0)
63
+ metaclass (~> 0.0.1)
64
+ mono_logger (1.1.0)
65
+ multi_json (1.8.0)
66
+ orm_adapter (0.4.0)
67
+ pg (0.16.0)
68
+ polyglot (0.3.3)
69
+ queue_classic (2.2.2)
70
+ pg (~> 0.16.0)
71
+ rack (1.4.5)
72
+ rack-cache (1.2)
73
+ rack (>= 0.4)
74
+ rack-protection (1.5.0)
75
+ rack
76
+ rack-ssl (1.3.3)
77
+ rack
78
+ rack-test (0.6.2)
79
+ rack (>= 1.0)
80
+ railties (3.2.14)
81
+ actionpack (= 3.2.14)
82
+ activesupport (= 3.2.14)
83
+ rack-ssl (~> 1.3.2)
84
+ rake (>= 0.8.7)
85
+ rdoc (~> 3.4)
86
+ thor (>= 0.14.6, < 2.0)
87
+ rake (10.1.0)
88
+ rdoc (3.12.2)
89
+ json (~> 1.4)
90
+ redis (3.0.4)
91
+ redis-namespace (1.3.1)
92
+ redis (~> 3.0.0)
93
+ resque (1.24.1)
94
+ mono_logger (~> 1.0)
95
+ multi_json (~> 1.0)
96
+ redis-namespace (~> 1.2)
97
+ sinatra (>= 0.9.2)
98
+ vegas (~> 0.1.2)
99
+ sidekiq (1.2.1)
100
+ celluloid (~> 0.10.0)
101
+ connection_pool (~> 0.9.0)
102
+ multi_json (~> 1)
103
+ redis
104
+ redis-namespace
105
+ sinatra (1.4.3)
106
+ rack (~> 1.4)
107
+ rack-protection (~> 1.4)
108
+ tilt (~> 1.3, >= 1.3.4)
109
+ sprockets (2.2.2)
110
+ hike (~> 1.2)
111
+ multi_json (~> 1.0)
112
+ rack (~> 1.0)
113
+ tilt (~> 1.1, != 1.3.0)
114
+ sqlite3 (1.3.8)
115
+ thor (0.18.1)
116
+ thread_safe (0.1.2)
117
+ atomic
118
+ tilt (1.4.1)
119
+ torquebox-no-op (2.3.2)
120
+ treetop (1.4.15)
121
+ polyglot
122
+ polyglot (>= 0.3.1)
123
+ tzinfo (0.3.37)
124
+ vegas (0.1.11)
125
+ rack (>= 1.0.0)
126
+ warden (1.2.3)
127
+ rack (>= 1.0)
128
+
129
+ PLATFORMS
130
+ ruby
131
+
132
+ DEPENDENCIES
133
+ actionmailer (>= 3.2)
134
+ actionpack (>= 3.2)
135
+ activerecord (>= 3.2)
136
+ delayed_job_active_record (~> 0.3)
137
+ devise-async!
138
+ minitest (~> 3.0)
139
+ mocha (~> 0.11)
140
+ queue_classic (~> 2.0)
141
+ resque (~> 1.20)
142
+ sidekiq (~> 1.2)
143
+ sqlite3 (~> 1.3)
144
+ torquebox-no-op (~> 2.3)
data/README.md CHANGED
@@ -8,6 +8,7 @@ Supported backends:
8
8
  * Sidekiq
9
9
  * Delayed::Job
10
10
  * QueueClassic
11
+ * Torquebox
11
12
 
12
13
  ## Installation
13
14
 
@@ -38,7 +39,7 @@ end
38
39
  Set your queuing backend by creating `config/initializers/devise_async.rb`:
39
40
 
40
41
  ```ruby
41
- # Supported options: :resque, :sidekiq, :delayed_job, :queue_classic
42
+ # Supported options: :resque, :sidekiq, :delayed_job, :queue_classic, :torquebox
42
43
  Devise::Async.backend = :resque
43
44
  ```
44
45
 
@@ -46,6 +47,15 @@ Tip: it defaults to Resque. You don't need to create the initializer if using it
46
47
 
47
48
  ## Advanced Options
48
49
 
50
+ ### Enabling via config
51
+
52
+ The gem can be enabled/disabled easily via config, for example based on environment.
53
+
54
+ ```ruby
55
+ # config/initializers/devise_async.rb
56
+ Devise::Async.enabled = true # | false
57
+ ```
58
+
49
59
  ### Custom mailer class
50
60
 
51
61
  Customize `Devise.mailer` at will and `devise-async` will honor it.
@@ -71,6 +81,7 @@ similar do what `Devise` offers.
71
81
  ```ruby
72
82
  # config/initializers/devise_async.rb
73
83
  Devise::Async.setup do |config|
84
+ config.enabled = true
74
85
  config.backend = :resque
75
86
  config.queue = :my_custom_queue
76
87
  end
data/devise-async.gemspec CHANGED
@@ -15,11 +15,11 @@ Gem::Specification.new do |gem|
15
15
  gem.require_paths = ["lib"]
16
16
  gem.version = Devise::Async::VERSION
17
17
 
18
- gem.add_dependency "devise", ">= 2.2"
18
+ gem.add_dependency "devise", ">= 2.2", "< 3.2"
19
19
 
20
- gem.add_development_dependency "activerecord", "~> 3.2"
21
- gem.add_development_dependency "actionpack", "~> 3.2"
22
- gem.add_development_dependency "actionmailer", "~> 3.2"
20
+ gem.add_development_dependency "activerecord", ">= 3.2"
21
+ gem.add_development_dependency "actionpack", ">= 3.2"
22
+ gem.add_development_dependency "actionmailer", ">= 3.2"
23
23
  gem.add_development_dependency "sqlite3", "~> 1.3"
24
24
  gem.add_development_dependency "resque", "~> 1.20"
25
25
  gem.add_development_dependency "sidekiq", "~> 1.2"
@@ -27,4 +27,5 @@ Gem::Specification.new do |gem|
27
27
  gem.add_development_dependency "queue_classic", "~> 2.0"
28
28
  gem.add_development_dependency "mocha", "~> 0.11"
29
29
  gem.add_development_dependency "minitest", "~> 3.0"
30
+ gem.add_development_dependency "torquebox-no-op", "~> 2.3"
30
31
  end
data/lib/devise/async.rb CHANGED
@@ -13,6 +13,7 @@ module Devise
13
13
  autoload :Sidekiq, "devise/async/backend/sidekiq"
14
14
  autoload :DelayedJob, "devise/async/backend/delayed_job"
15
15
  autoload :QueueClassic, "devise/async/backend/queue_classic"
16
+ autoload :Torquebox, "devise/async/backend/torquebox"
16
17
  end
17
18
 
18
19
  # Defines the queue backend to be used. Resque by default.
@@ -10,10 +10,10 @@ module Devise
10
10
  #
11
11
  # It uses `orm_adapter` API to fetch the record in order to enforce
12
12
  # compatibility among diferent ORMs.
13
- def perform(method, resource_class, resource_id, opts)
13
+ def perform(method, resource_class, resource_id, *args)
14
14
  resource = resource_class.constantize.to_adapter.get!(resource_id)
15
- opts.symbolize_keys!
16
- mailer_class.send(method, resource, opts).deliver
15
+ args[-1] = args.last.symbolize_keys if args.last.is_a?(Hash)
16
+ mailer_class.send(method, resource, *args).deliver
17
17
  end
18
18
 
19
19
  private
@@ -11,8 +11,8 @@ module Devise
11
11
  queue.enqueue(*args)
12
12
  end
13
13
 
14
- def self.perform(method, resource_class, resource_id, opts)
15
- new.perform(method, resource_class, resource_id, opts)
14
+ def self.perform(*args)
15
+ new.perform(*args)
16
16
  end
17
17
  end
18
18
  end
@@ -9,8 +9,8 @@ module Devise
9
9
  ::Resque.enqueue(*args)
10
10
  end
11
11
 
12
- def self.perform(method, resource_class, resource_id, opts)
13
- new.perform(method, resource_class, resource_id, opts)
12
+ def self.perform(*args)
13
+ new.perform(*args)
14
14
  end
15
15
  end
16
16
  end
@@ -0,0 +1,14 @@
1
+ module Devise
2
+ module Async
3
+ module Backend
4
+ class Torquebox < Base
5
+ include ::TorqueBox::Messaging::Backgroundable
6
+ always_background :perform
7
+
8
+ def self.enqueue(*args)
9
+ new.perform(*args) # using always_background
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -24,26 +24,26 @@ module Devise
24
24
  # to capture all email notifications and enqueue it for background
25
25
  # processing instead of sending it inline as devise does by
26
26
  # default.
27
- def send_devise_notification(notification, opts = {})
27
+ def send_devise_notification(notification, *args)
28
28
  return super unless Devise::Async.enabled
29
29
 
30
30
  # If the record is dirty we keep pending notifications to be enqueued
31
31
  # by the callback and avoid before commit job processing.
32
32
  if changed?
33
- devise_pending_notifications << [ notification, opts ]
33
+ devise_pending_notifications << [ notification, args ]
34
34
  # If the record isn't dirty (aka has already been saved) enqueue right away
35
35
  # because the callback has already been triggered.
36
36
  else
37
- Devise::Async::Worker.enqueue(notification, self.class.name, self.id.to_s, opts)
37
+ Devise::Async::Worker.enqueue(notification, self.class.name, self.id.to_s, *args)
38
38
  end
39
39
  end
40
40
 
41
41
  # Send all pending notifications.
42
42
  def send_devise_pending_notifications
43
- devise_pending_notifications.each do |notification, opts|
43
+ devise_pending_notifications.each do |notification, args|
44
44
  # Use `id.to_s` to avoid problems with mongoid 2.4.X ids being serialized
45
45
  # wrong with YAJL.
46
- Devise::Async::Worker.enqueue(notification, self.class.name, self.id.to_s, opts)
46
+ Devise::Async::Worker.enqueue(notification, self.class.name, self.id.to_s, *args)
47
47
  end
48
48
  @devise_pending_notifications = []
49
49
  end
@@ -1,5 +1,5 @@
1
1
  module Devise
2
2
  module Async
3
- VERSION = "0.7.0"
3
+ VERSION = "0.8.0"
4
4
  end
5
5
  end
@@ -1,18 +1,35 @@
1
1
  module Devise
2
2
  module Async
3
3
  class Worker
4
+ class << self
5
+
4
6
  # Used is the internal interface for devise-async to enqueue notifications
5
7
  # to the desired backend.
6
- def self.enqueue(method, resource_class, resource_id, opts)
7
- opts.stringify_keys!
8
- backend_class.enqueue(method, resource_class, resource_id, opts)
8
+ def enqueue(method, resource_class, resource_id, *args)
9
+ # convert args to strings and hashes with string keys before passing to backend
10
+ args = stringify_args args
11
+ backend_class.enqueue(method, resource_class, resource_id, *args)
9
12
  end
10
13
 
11
14
  private
12
15
 
13
- def self.backend_class
16
+ def stringify_args(args)
17
+ args.map do |a|
18
+ case a
19
+ when Hash
20
+ a.stringify_keys
21
+ when Symbol
22
+ a.to_s
23
+ else
24
+ a
25
+ end
26
+ end
27
+ end
28
+
29
+ def backend_class
14
30
  Backend.for(Devise::Async.backend)
15
31
  end
32
+ end
16
33
  end
17
34
  end
18
35
  end
@@ -0,0 +1,21 @@
1
+ require "test_helper"
2
+
3
+ module Devise
4
+ module Async
5
+ module Backend
6
+ describe "Torquebox" do
7
+ it "enqueues job" do
8
+ Torquebox.any_instance.expects(:perform).with(:mailer_method, "User", 123, {})
9
+ Torquebox.enqueue(:mailer_method, "User", 123, {})
10
+ end
11
+
12
+ it "delegates to devise mailer when delivering" do
13
+ user = create_user
14
+ ActionMailer::Base.deliveries = []
15
+ Backend::Torquebox.new.perform(:confirmation_instructions, "User", user.id, {})
16
+ ActionMailer::Base.deliveries.size.must_equal 1
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -6,13 +6,19 @@ module Devise
6
6
  it "accumulates notifications to be sent after commit on Model creation" do
7
7
  Admin.transaction do
8
8
  admin = create_admin
9
- admin.send(:devise_pending_notifications).must_equal [[:confirmation_instructions, {}]]
9
+ mailers = admin.send(:devise_pending_notifications) # [:confirmation_instructions, ["RUQUib67wLcCiEyZMwfx", {}]]
10
+ mailers.size.must_equal 1
11
+
12
+ mailer = mailers.first
13
+ mailer.size.must_equal 2
14
+ mailer.first.must_equal :confirmation_instructions
15
+ mailer.last.must_be_instance_of Array
10
16
  end
11
17
  end
12
18
 
13
19
  it "immediately sends notifications when the model has not changed" do
14
20
  admin = create_admin
15
- Worker.expects(:enqueue).with(:confirmation_instructions, "Admin", admin.id.to_s, {})
21
+ Worker.expects(:enqueue).with(:confirmation_instructions, "Admin", admin.id.to_s, instance_of(String), {})
16
22
  admin.send_confirmation_instructions
17
23
  end
18
24
 
@@ -21,7 +27,15 @@ module Devise
21
27
  Admin.transaction do
22
28
  admin[:username] = "changed_username"
23
29
  admin.send_confirmation_instructions
24
- admin.send(:devise_pending_notifications).must_equal [[:confirmation_instructions, {}]]
30
+
31
+ mailers = admin.send(:devise_pending_notifications) # [:confirmation_instructions, ["RUQUib67wLcCiEyZMwfx", {}]]
32
+ mailers.size.must_equal 1
33
+
34
+ mailer = mailers.first
35
+ mailer.size.must_equal 2
36
+ mailer.first.must_equal :confirmation_instructions
37
+ mailer.last.must_be_instance_of Array
38
+
25
39
  Worker.expects(:enqueue).never # after_commit will not fire without save
26
40
  end
27
41
  end
@@ -31,9 +45,17 @@ module Devise
31
45
  Admin.transaction do
32
46
  admin[:username] = "changed_username"
33
47
  admin.send_confirmation_instructions
34
- admin.send(:devise_pending_notifications).must_equal [[:confirmation_instructions, {}]]
48
+
49
+ mailers = admin.send(:devise_pending_notifications) # [:confirmation_instructions, ["RUQUib67wLcCiEyZMwfx", {}]]
50
+ mailers.size.must_equal 1
51
+
52
+ mailer = mailers.first
53
+ mailer.size.must_equal 2
54
+ mailer.first.must_equal :confirmation_instructions
55
+ mailer.last.must_be_instance_of Array
56
+
35
57
  admin.save
36
- Worker.expects(:enqueue).with(:confirmation_instructions, "Admin", admin.id.to_s, {})
58
+ Worker.expects(:enqueue).with(:confirmation_instructions, "Admin", admin.id.to_s, instance_of(String), {})
37
59
  end
38
60
  end
39
61
 
@@ -214,4 +214,6 @@ Devise.setup do |config|
214
214
  # manager.intercept_401 = false
215
215
  # manager.default_strategies(:scope => :user).unshift :some_external_strategy
216
216
  # end
217
+ #
218
+ config.secret_key = 'abc' if config.respond_to? :secret_key # required for devise 3.1
217
219
  end
@@ -0,0 +1,30 @@
1
+ module TestHelpers
2
+ def valid_attributes(attributes={})
3
+ { :username => "usertest",
4
+ :email => generate_unique_email,
5
+ :password => '12345678',
6
+ :password_confirmation => '12345678' }.update(attributes)
7
+ end
8
+
9
+ email_count = 0
10
+ define_method :generate_unique_email do
11
+ email_count += 1
12
+ "test#{email_count}@example.com"
13
+ end
14
+
15
+ def new_user(attributes={})
16
+ User.new(valid_attributes(attributes))
17
+ end
18
+
19
+ def create_user(attributes={})
20
+ User.create!(valid_attributes(attributes))
21
+ end
22
+
23
+ def new_admin(attributes={})
24
+ Admin.new(valid_attributes(attributes))
25
+ end
26
+
27
+ def create_admin(attributes={})
28
+ Admin.create!(valid_attributes(attributes))
29
+ end
30
+ end
data/test/test_helper.rb CHANGED
@@ -12,9 +12,12 @@ require "resque"
12
12
  require "sidekiq"
13
13
  require "delayed_job_active_record"
14
14
  require "sidekiq/testing"
15
+ require "torquebox-no-op"
15
16
 
16
17
  require "support/rails_app"
17
- require "support/helpers"
18
+ require "support/test_helpers"
18
19
  require "support/my_mailer"
19
20
 
21
+ include TestHelpers
22
+
20
23
  load File.dirname(__FILE__) + "/support/rails_app/db/schema.rb"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise-async
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-20 00:00:00.000000000 Z
12
+ date: 2013-09-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: devise
@@ -19,6 +19,9 @@ dependencies:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
21
  version: '2.2'
22
+ - - <
23
+ - !ruby/object:Gem::Version
24
+ version: '3.2'
22
25
  type: :runtime
23
26
  prerelease: false
24
27
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,12 +30,15 @@ dependencies:
27
30
  - - ! '>='
28
31
  - !ruby/object:Gem::Version
29
32
  version: '2.2'
33
+ - - <
34
+ - !ruby/object:Gem::Version
35
+ version: '3.2'
30
36
  - !ruby/object:Gem::Dependency
31
37
  name: activerecord
32
38
  requirement: !ruby/object:Gem::Requirement
33
39
  none: false
34
40
  requirements:
35
- - - ~>
41
+ - - ! '>='
36
42
  - !ruby/object:Gem::Version
37
43
  version: '3.2'
38
44
  type: :development
@@ -40,7 +46,7 @@ dependencies:
40
46
  version_requirements: !ruby/object:Gem::Requirement
41
47
  none: false
42
48
  requirements:
43
- - - ~>
49
+ - - ! '>='
44
50
  - !ruby/object:Gem::Version
45
51
  version: '3.2'
46
52
  - !ruby/object:Gem::Dependency
@@ -48,7 +54,7 @@ dependencies:
48
54
  requirement: !ruby/object:Gem::Requirement
49
55
  none: false
50
56
  requirements:
51
- - - ~>
57
+ - - ! '>='
52
58
  - !ruby/object:Gem::Version
53
59
  version: '3.2'
54
60
  type: :development
@@ -56,7 +62,7 @@ dependencies:
56
62
  version_requirements: !ruby/object:Gem::Requirement
57
63
  none: false
58
64
  requirements:
59
- - - ~>
65
+ - - ! '>='
60
66
  - !ruby/object:Gem::Version
61
67
  version: '3.2'
62
68
  - !ruby/object:Gem::Dependency
@@ -64,7 +70,7 @@ dependencies:
64
70
  requirement: !ruby/object:Gem::Requirement
65
71
  none: false
66
72
  requirements:
67
- - - ~>
73
+ - - ! '>='
68
74
  - !ruby/object:Gem::Version
69
75
  version: '3.2'
70
76
  type: :development
@@ -72,7 +78,7 @@ dependencies:
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
79
  none: false
74
80
  requirements:
75
- - - ~>
81
+ - - ! '>='
76
82
  - !ruby/object:Gem::Version
77
83
  version: '3.2'
78
84
  - !ruby/object:Gem::Dependency
@@ -187,6 +193,22 @@ dependencies:
187
193
  - - ~>
188
194
  - !ruby/object:Gem::Version
189
195
  version: '3.0'
196
+ - !ruby/object:Gem::Dependency
197
+ name: torquebox-no-op
198
+ requirement: !ruby/object:Gem::Requirement
199
+ none: false
200
+ requirements:
201
+ - - ~>
202
+ - !ruby/object:Gem::Version
203
+ version: '2.3'
204
+ type: :development
205
+ prerelease: false
206
+ version_requirements: !ruby/object:Gem::Requirement
207
+ none: false
208
+ requirements:
209
+ - - ~>
210
+ - !ruby/object:Gem::Version
211
+ version: '2.3'
190
212
  description: Send Devise's emails in background. Supports Resque, Sidekiq, Delayed::Job
191
213
  and QueueClassic.
192
214
  email:
@@ -199,6 +221,7 @@ files:
199
221
  - .travis.yml
200
222
  - CHANGELOG.md
201
223
  - Gemfile
224
+ - Gemfile.lock
202
225
  - LICENSE
203
226
  - README.md
204
227
  - Rakefile
@@ -211,6 +234,7 @@ files:
211
234
  - lib/devise/async/backend/queue_classic.rb
212
235
  - lib/devise/async/backend/resque.rb
213
236
  - lib/devise/async/backend/sidekiq.rb
237
+ - lib/devise/async/backend/torquebox.rb
214
238
  - lib/devise/async/model.rb
215
239
  - lib/devise/async/version.rb
216
240
  - lib/devise/async/worker.rb
@@ -219,11 +243,11 @@ files:
219
243
  - test/devise/async/backend/queue_classic_test.rb
220
244
  - test/devise/async/backend/resque_test.rb
221
245
  - test/devise/async/backend/sidekiq_test.rb
246
+ - test/devise/async/backend/torquebox_test.rb
222
247
  - test/devise/async/backend_test.rb
223
248
  - test/devise/async/model_test.rb
224
249
  - test/devise/async/worker_test.rb
225
250
  - test/devise/async_test.rb
226
- - test/support/helpers.rb
227
251
  - test/support/my_mailer.rb
228
252
  - test/support/rails_app.rb
229
253
  - test/support/rails_app/app/models/admin.rb
@@ -234,6 +258,7 @@ files:
234
258
  - test/support/rails_app/config/routes.rb
235
259
  - test/support/rails_app/db/schema.rb
236
260
  - test/support/rails_app/log/development.log
261
+ - test/support/test_helpers.rb
237
262
  - test/test_helper.rb
238
263
  homepage: https://github.com/mhfs/devise-async/
239
264
  licenses: []
@@ -249,7 +274,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
249
274
  version: '0'
250
275
  segments:
251
276
  - 0
252
- hash: 2828079365640681626
277
+ hash: -3289238140870980510
253
278
  required_rubygems_version: !ruby/object:Gem::Requirement
254
279
  none: false
255
280
  requirements:
@@ -258,7 +283,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
258
283
  version: '0'
259
284
  segments:
260
285
  - 0
261
- hash: 2828079365640681626
286
+ hash: -3289238140870980510
262
287
  requirements: []
263
288
  rubyforge_project:
264
289
  rubygems_version: 1.8.23
@@ -273,11 +298,11 @@ test_files:
273
298
  - test/devise/async/backend/queue_classic_test.rb
274
299
  - test/devise/async/backend/resque_test.rb
275
300
  - test/devise/async/backend/sidekiq_test.rb
301
+ - test/devise/async/backend/torquebox_test.rb
276
302
  - test/devise/async/backend_test.rb
277
303
  - test/devise/async/model_test.rb
278
304
  - test/devise/async/worker_test.rb
279
305
  - test/devise/async_test.rb
280
- - test/support/helpers.rb
281
306
  - test/support/my_mailer.rb
282
307
  - test/support/rails_app.rb
283
308
  - test/support/rails_app/app/models/admin.rb
@@ -288,4 +313,5 @@ test_files:
288
313
  - test/support/rails_app/config/routes.rb
289
314
  - test/support/rails_app/db/schema.rb
290
315
  - test/support/rails_app/log/development.log
316
+ - test/support/test_helpers.rb
291
317
  - test/test_helper.rb
@@ -1,28 +0,0 @@
1
- def valid_attributes(attributes={})
2
- { :username => "usertest",
3
- :email => generate_unique_email,
4
- :password => '12345678',
5
- :password_confirmation => '12345678' }.update(attributes)
6
- end
7
-
8
- def generate_unique_email
9
- @@email_count ||= 0
10
- @@email_count += 1
11
- "test#{@@email_count}@example.com"
12
- end
13
-
14
- def new_user(attributes={})
15
- User.new(valid_attributes(attributes))
16
- end
17
-
18
- def create_user(attributes={})
19
- User.create!(valid_attributes(attributes))
20
- end
21
-
22
- def new_admin(attributes={})
23
- Admin.new(valid_attributes(attributes))
24
- end
25
-
26
- def create_admin(attributes={})
27
- Admin.create!(valid_attributes(attributes))
28
- end