devise-async-stretch 0.0.2 → 0.0.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.
- checksums.yaml +8 -8
- data/.gitignore +1 -0
- data/devise-async-stretch.gemspec +1 -0
- data/lib/devise/async/stretch.rb +1 -0
- data/lib/devise/async/stretch/backend/delayed_job.rb +13 -0
- data/lib/devise/async/stretch/version.rb +1 -1
- data/test/devise/async/stretch/backend/delayed_job_test.rb +31 -0
- data/test/devise/async/stretch/backend_test.rb +8 -0
- data/test/rails_app/db/migrate/20150105232318_create_delayed_jobs.rb +22 -0
- data/test/rails_app/db/schema.rb +18 -2
- metadata +21 -3
- data/log/test.log +0 -0
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MjYwYjhlNmJkMTM3ZjBiOTRjZTcwYTIzNGVhYzJkZWZhOWU3NmM1YQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZDEwMmQzMDAyYTRlOWE4NWE5NzI4MzI0MTQ0M2U3ZjBiYzk1N2Q4YQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZjU2ZGYzZjYxZjE0MjhjYjk4MGE3NzRkN2Y5OGI5NTcyYTVkOTBkZjMzOTZi
|
10
|
+
NmFlYTc2NWY1ZDg4NGEzOGM2MDU0Yzk5MzAxMTY5YzhhYjY0ZjYzZWI0YmY4
|
11
|
+
N2RkZWY5OWY0NDViN2JkNjI2ZmE2OTdjYjg1NTMwNWE1ODc2OTg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NDFjZjE0YjgyZDVhMDdiNjJjNGJjMDk3MmI2MGQxM2Q3ODNhNmEyYWU5YjVk
|
14
|
+
YTRjMGMyMDkzMWQ2OGM0NmEyMDM5ZmUyYmMwMWQzMjQxODA2MjI2NTVkNjg2
|
15
|
+
ZTFmYjIyNjNlYTBhZDZjM2RkNzE5OTJlOWI2NzYwMzRkYTYwYTM=
|
data/.gitignore
CHANGED
data/lib/devise/async/stretch.rb
CHANGED
@@ -20,6 +20,7 @@ module Devise
|
|
20
20
|
autoload :Base, "devise/async/stretch/backend/base"
|
21
21
|
autoload :Sidekiq, "devise/async/stretch/backend/sidekiq"
|
22
22
|
autoload :ActiveJob, "devise/async/stretch/backend/active_job"
|
23
|
+
autoload :DelayedJob, "devise/async/stretch/backend/delayed_job"
|
23
24
|
end
|
24
25
|
|
25
26
|
# Defines the queue backend to be used. Sidekiq by default.
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'delayed_job_active_record'
|
3
|
+
|
4
|
+
module Devise
|
5
|
+
module Async
|
6
|
+
module Stretch
|
7
|
+
module Backend
|
8
|
+
class DelayedJobTest < ActiveSupport::TestCase
|
9
|
+
|
10
|
+
setup do
|
11
|
+
@user = users(:bob)
|
12
|
+
Devise::Async::Stretch.enabled = true
|
13
|
+
Devise::Async::Stretch.backend = :delayed_job
|
14
|
+
end
|
15
|
+
|
16
|
+
test "the job is queued" do
|
17
|
+
assert_difference '::Delayed::Backend::ActiveRecord::Job.count' do
|
18
|
+
DelayedJob.enqueue_job("User", @user.id, "password")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
test "the password gets updated when peformed" do
|
23
|
+
DelayedJob.new.perform("User", @user.id, 'password')
|
24
|
+
assert_not_empty @user.reload.encrypted_password
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -13,6 +13,14 @@ module Devise
|
|
13
13
|
assert_equal Backend::Sidekiq, Backend.for(:sidekiq)
|
14
14
|
end
|
15
15
|
|
16
|
+
test "active_job" do
|
17
|
+
assert_equal Backend::ActiveJob, Backend.for(:active_job)
|
18
|
+
end
|
19
|
+
|
20
|
+
test "delayed_job" do
|
21
|
+
assert_equal Backend::DelayedJob, Backend.for(:delayed_job)
|
22
|
+
end
|
23
|
+
|
16
24
|
test "an error is thrown for unsupported backends" do
|
17
25
|
assert_raises ArgumentError do
|
18
26
|
Backend.for(:fakeerz)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class CreateDelayedJobs < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
create_table :delayed_jobs, force: true do |table|
|
4
|
+
table.integer :priority, default: 0, null: false # Allows some jobs to jump to the front of the queue
|
5
|
+
table.integer :attempts, default: 0, null: false # Provides for retries, but still fail eventually.
|
6
|
+
table.text :handler, null: false # YAML-encoded string of the object that will do work
|
7
|
+
table.text :last_error # reason for last failure (See Note below)
|
8
|
+
table.datetime :run_at # When to run. Could be Time.zone.now for immediately, or sometime in the future.
|
9
|
+
table.datetime :locked_at # Set when a client is working on this object
|
10
|
+
table.datetime :failed_at # Set when all retries have failed (actually, by default, the record is deleted instead)
|
11
|
+
table.string :locked_by # Who is working on this object (if locked)
|
12
|
+
table.string :queue # The name of the queue this job is in
|
13
|
+
table.timestamps null: true
|
14
|
+
end
|
15
|
+
|
16
|
+
add_index :delayed_jobs, [:priority, :run_at], name: "delayed_jobs_priority"
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.down
|
20
|
+
drop_table :delayed_jobs
|
21
|
+
end
|
22
|
+
end
|
data/test/rails_app/db/schema.rb
CHANGED
@@ -11,9 +11,25 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
14
|
+
ActiveRecord::Schema.define(version: 20150105232318) do
|
15
15
|
|
16
|
-
create_table "
|
16
|
+
create_table "delayed_jobs", force: :cascade do |t|
|
17
|
+
t.integer "priority", default: 0, null: false
|
18
|
+
t.integer "attempts", default: 0, null: false
|
19
|
+
t.text "handler", null: false
|
20
|
+
t.text "last_error"
|
21
|
+
t.datetime "run_at"
|
22
|
+
t.datetime "locked_at"
|
23
|
+
t.datetime "failed_at"
|
24
|
+
t.string "locked_by"
|
25
|
+
t.string "queue"
|
26
|
+
t.datetime "created_at"
|
27
|
+
t.datetime "updated_at"
|
28
|
+
end
|
29
|
+
|
30
|
+
add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority"
|
31
|
+
|
32
|
+
create_table "users", force: :cascade do |t|
|
17
33
|
t.string "email", default: "", null: false
|
18
34
|
t.string "encrypted_password", default: "", null: false
|
19
35
|
t.string "reset_password_token"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: devise-async-stretch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Westendorf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: devise
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - ! '>='
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: delayed_job_active_record
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ! '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
125
139
|
description: Uncompromised security for your user's passwords. Move password stretching
|
126
140
|
into a background job for fast user creation, but maintainging safety.
|
127
141
|
email:
|
@@ -141,15 +155,16 @@ files:
|
|
141
155
|
- lib/devise/async/stretch/backend.rb
|
142
156
|
- lib/devise/async/stretch/backend/active_job.rb
|
143
157
|
- lib/devise/async/stretch/backend/base.rb
|
158
|
+
- lib/devise/async/stretch/backend/delayed_job.rb
|
144
159
|
- lib/devise/async/stretch/backend/sidekiq.rb
|
145
160
|
- lib/devise/async/stretch/model.rb
|
146
161
|
- lib/devise/async/stretch/version.rb
|
147
162
|
- lib/devise/async/stretch/worker.rb
|
148
163
|
- lib/generators/devise/async/stretch/install_generator.rb
|
149
164
|
- lib/generators/templates/devise_async_stretch.rb
|
150
|
-
- log/test.log
|
151
165
|
- test/devise/async/stretch/backend/active_job_test.rb
|
152
166
|
- test/devise/async/stretch/backend/base_test.rb
|
167
|
+
- test/devise/async/stretch/backend/delayed_job_test.rb
|
153
168
|
- test/devise/async/stretch/backend/sidekiq_test.rb
|
154
169
|
- test/devise/async/stretch/backend_test.rb
|
155
170
|
- test/devise/async/stretch/model_test.rb
|
@@ -196,6 +211,7 @@ files:
|
|
196
211
|
- test/rails_app/config/routes.rb
|
197
212
|
- test/rails_app/config/secrets.yml
|
198
213
|
- test/rails_app/db/migrate/20141227205721_devise_create_users.rb
|
214
|
+
- test/rails_app/db/migrate/20150105232318_create_delayed_jobs.rb
|
199
215
|
- test/rails_app/db/schema.rb
|
200
216
|
- test/rails_app/db/seeds.rb
|
201
217
|
- test/rails_app/lib/assets/.keep
|
@@ -245,6 +261,7 @@ summary: Move password stretching into a background job for fast user creation.
|
|
245
261
|
test_files:
|
246
262
|
- test/devise/async/stretch/backend/active_job_test.rb
|
247
263
|
- test/devise/async/stretch/backend/base_test.rb
|
264
|
+
- test/devise/async/stretch/backend/delayed_job_test.rb
|
248
265
|
- test/devise/async/stretch/backend/sidekiq_test.rb
|
249
266
|
- test/devise/async/stretch/backend_test.rb
|
250
267
|
- test/devise/async/stretch/model_test.rb
|
@@ -291,6 +308,7 @@ test_files:
|
|
291
308
|
- test/rails_app/config/routes.rb
|
292
309
|
- test/rails_app/config/secrets.yml
|
293
310
|
- test/rails_app/db/migrate/20141227205721_devise_create_users.rb
|
311
|
+
- test/rails_app/db/migrate/20150105232318_create_delayed_jobs.rb
|
294
312
|
- test/rails_app/db/schema.rb
|
295
313
|
- test/rails_app/db/seeds.rb
|
296
314
|
- test/rails_app/lib/assets/.keep
|
data/log/test.log
DELETED
File without changes
|