paranoia_uniqueness_validator 1.2.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +4 -1
- data/.travis.yml +6 -9
- data/Dockerfile +13 -0
- data/Gemfile +3 -9
- data/README.md +4 -0
- data/docker-compose.yml +11 -0
- data/lib/paranoia_uniqueness_validator/validations/uniqueness_without_deleted.rb +16 -13
- data/lib/paranoia_uniqueness_validator/version.rb +1 -1
- data/paranoia_uniqueness_validator.gemspec +1 -1
- data/spec/dummy/.gitignore +9 -3
- data/spec/dummy/.rspec +1 -0
- data/spec/dummy/{README.rdoc → README.md} +1 -5
- data/spec/dummy/Rakefile +2 -2
- data/spec/dummy/app/assets/config/manifest.js +3 -0
- data/spec/dummy/app/{mailers → assets/images}/.keep +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +4 -4
- data/spec/dummy/app/assets/javascripts/cable.js +13 -0
- data/spec/dummy/app/{models → assets/javascripts/channels}/.keep +0 -0
- data/spec/dummy/app/assets/stylesheets/application.css +6 -4
- data/spec/dummy/app/channels/application_cable/channel.rb +4 -0
- data/spec/dummy/app/channels/application_cable/connection.rb +4 -0
- data/spec/dummy/app/controllers/application_controller.rb +0 -2
- data/spec/dummy/app/jobs/application_job.rb +2 -0
- data/spec/dummy/app/mailers/application_mailer.rb +4 -0
- data/spec/dummy/app/models/application_record.rb +3 -0
- data/spec/dummy/app/models/dummy_model.rb +1 -1
- data/spec/dummy/app/models/dummy_non_nil_model.rb +1 -1
- data/spec/dummy/app/views/layouts/application.html.erb +9 -9
- data/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/spec/dummy/bin/rails +1 -1
- data/spec/dummy/bin/setup +34 -0
- data/spec/dummy/bin/update +29 -0
- data/spec/dummy/config.ru +2 -1
- data/spec/dummy/config/application.rb +8 -10
- data/spec/dummy/config/boot.rb +3 -5
- data/spec/dummy/config/cable.yml +9 -0
- data/spec/dummy/config/database.yml +7 -11
- data/spec/dummy/config/environment.rb +4 -4
- data/spec/dummy/config/environments/development.rb +30 -5
- data/spec/dummy/config/environments/production.rb +37 -31
- data/spec/dummy/config/environments/test.rb +10 -4
- data/spec/dummy/config/initializers/application_controller_renderer.rb +6 -0
- data/spec/dummy/config/initializers/assets.rb +11 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/spec/dummy/config/initializers/mime_types.rb +0 -1
- data/spec/dummy/config/initializers/new_framework_defaults.rb +24 -0
- data/spec/dummy/config/initializers/session_store.rb +1 -1
- data/spec/dummy/config/initializers/wrap_parameters.rb +2 -2
- data/spec/dummy/config/puma.rb +47 -0
- data/spec/dummy/config/routes.rb +2 -48
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/config/spring.rb +6 -0
- data/spec/dummy/db/migrate/20130511080827_create_dummy_models.rb +1 -1
- data/spec/dummy/db/migrate/20160421194241_create_dummy_non_nil_models.rb +1 -1
- data/spec/dummy/db/schema.rb +5 -6
- data/spec/dummy/db/seeds.rb +3 -3
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/public/404.html +20 -11
- data/spec/dummy/public/422.html +20 -11
- data/spec/dummy/public/500.html +19 -10
- data/spec/dummy/public/apple-touch-icon-precomposed.png +0 -0
- data/spec/dummy/public/apple-touch-icon.png +0 -0
- data/spec/dummy/public/robots.txt +1 -1
- data/spec/spec_helper.rb +1 -2
- data/spec/validations/uniqueness_without_deleted_spec.rb +9 -9
- metadata +61 -13
- data/spec/dummy/config/initializers/secret_token.rb +0 -12
data/spec/dummy/config/routes.rb
CHANGED
@@ -1,49 +1,3 @@
|
|
1
|
-
|
2
|
-
#
|
3
|
-
# See how all your routes lay out with "rake routes".
|
4
|
-
|
5
|
-
# You can have the root of your site routed with "root"
|
6
|
-
# root 'welcome#index'
|
7
|
-
|
8
|
-
# Example of regular route:
|
9
|
-
# get 'products/:id' => 'catalog#view'
|
10
|
-
|
11
|
-
# Example of named route that can be invoked with purchase_url(id: product.id)
|
12
|
-
# get 'products/:id/purchase' => 'catalog#purchase', as: :purchase
|
13
|
-
|
14
|
-
# Example resource route (maps HTTP verbs to controller actions automatically):
|
15
|
-
# resources :products
|
16
|
-
|
17
|
-
# Example resource route with options:
|
18
|
-
# resources :products do
|
19
|
-
# member do
|
20
|
-
# get 'short'
|
21
|
-
# post 'toggle'
|
22
|
-
# end
|
23
|
-
#
|
24
|
-
# collection do
|
25
|
-
# get 'sold'
|
26
|
-
# end
|
27
|
-
# end
|
28
|
-
|
29
|
-
# Example resource route with sub-resources:
|
30
|
-
# resources :products do
|
31
|
-
# resources :comments, :sales
|
32
|
-
# resource :seller
|
33
|
-
# end
|
34
|
-
|
35
|
-
# Example resource route with more complex sub-resources:
|
36
|
-
# resources :products do
|
37
|
-
# resources :comments
|
38
|
-
# resources :sales do
|
39
|
-
# get 'recent', on: :collection
|
40
|
-
# end
|
41
|
-
# end
|
42
|
-
|
43
|
-
# Example resource route within a namespace:
|
44
|
-
# namespace :admin do
|
45
|
-
# # Directs /admin/products/* to Admin::ProductsController
|
46
|
-
# # (app/controllers/admin/products_controller.rb)
|
47
|
-
# resources :products
|
48
|
-
# end
|
1
|
+
Rails.application.routes.draw do
|
2
|
+
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
|
49
3
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# Your secret key is used for verifying the integrity of signed cookies.
|
4
|
+
# If you change this key, all old signed cookies will become invalid!
|
5
|
+
|
6
|
+
# Make sure the secret is at least 30 characters and all random,
|
7
|
+
# no regular words or you'll be exposed to dictionary attacks.
|
8
|
+
# You can use `rails secret` to generate a secure secret key.
|
9
|
+
|
10
|
+
# Make sure the secrets in this file are kept private
|
11
|
+
# if you're sharing your code publicly.
|
12
|
+
|
13
|
+
development:
|
14
|
+
secret_key_base: fd37a3a5420ef59574beab326bcce6a4fcb9dd1c54e14ef2f4bdc9612669c88e58f8ce5e60550dbd668f31b57509c66bfe7f63788fc64a63f0ce17ecc30ee456
|
15
|
+
|
16
|
+
test:
|
17
|
+
secret_key_base: a0040c60e0b7303a860e03d85d2af485f2cd732f35433349438987216cb800404c48cd7da767e49002a29174dd9e42eb8fe2bde71e872f3ad96b104fc26ef294
|
18
|
+
|
19
|
+
# Do not keep production secrets in the repository,
|
20
|
+
# instead read values from the environment.
|
21
|
+
production:
|
22
|
+
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# encoding: UTF-8
|
2
1
|
# This file is auto-generated from the current state of the database. Instead
|
3
2
|
# of editing this file, please use the migrations feature of Active Record to
|
4
3
|
# incrementally modify your database, and then regenerate this schema definition.
|
@@ -14,17 +13,17 @@
|
|
14
13
|
ActiveRecord::Schema.define(version: 20160421194241) do
|
15
14
|
|
16
15
|
create_table "dummy_models", force: :cascade do |t|
|
17
|
-
t.string "unique_field"
|
16
|
+
t.string "unique_field"
|
18
17
|
t.datetime "deleted_at"
|
19
|
-
t.datetime "created_at"
|
20
|
-
t.datetime "updated_at"
|
18
|
+
t.datetime "created_at", null: false
|
19
|
+
t.datetime "updated_at", null: false
|
21
20
|
end
|
22
21
|
|
23
22
|
create_table "dummy_non_nil_models", force: :cascade do |t|
|
24
23
|
t.string "unique_field"
|
25
24
|
t.datetime "deleted_at", default: '0000-01-01 00:00:00', null: false
|
26
|
-
t.datetime "created_at"
|
27
|
-
t.datetime "updated_at"
|
25
|
+
t.datetime "created_at", null: false
|
26
|
+
t.datetime "updated_at", null: false
|
28
27
|
end
|
29
28
|
|
30
29
|
end
|
data/spec/dummy/db/seeds.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# This file should contain all the record creation needed to seed the database with its default values.
|
2
|
-
# The data can then be loaded with the
|
2
|
+
# The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
|
3
3
|
#
|
4
4
|
# Examples:
|
5
5
|
#
|
6
|
-
#
|
7
|
-
#
|
6
|
+
# movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
|
7
|
+
# Character.create(name: 'Luke', movie: movies.first)
|
data/spec/dummy/db/test.sqlite3
CHANGED
Binary file
|
data/spec/dummy/public/404.html
CHANGED
@@ -2,17 +2,23 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>The page you were looking for doesn't exist (404)</title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
5
6
|
<style>
|
6
7
|
body {
|
7
8
|
background-color: #EFEFEF;
|
8
9
|
color: #2E2F30;
|
9
10
|
text-align: center;
|
10
11
|
font-family: arial, sans-serif;
|
12
|
+
margin: 0;
|
11
13
|
}
|
12
14
|
|
13
15
|
div.dialog {
|
14
|
-
width:
|
15
|
-
|
16
|
+
width: 95%;
|
17
|
+
max-width: 33em;
|
18
|
+
margin: 4em auto 0;
|
19
|
+
}
|
20
|
+
|
21
|
+
div.dialog > div {
|
16
22
|
border: 1px solid #CCC;
|
17
23
|
border-right-color: #999;
|
18
24
|
border-left-color: #999;
|
@@ -21,7 +27,8 @@
|
|
21
27
|
border-top-left-radius: 9px;
|
22
28
|
border-top-right-radius: 9px;
|
23
29
|
background-color: white;
|
24
|
-
padding: 7px
|
30
|
+
padding: 7px 12% 0;
|
31
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
25
32
|
}
|
26
33
|
|
27
34
|
h1 {
|
@@ -30,19 +37,19 @@
|
|
30
37
|
line-height: 1.5em;
|
31
38
|
}
|
32
39
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
padding: 1em 0;
|
40
|
+
div.dialog > p {
|
41
|
+
margin: 0 0 1em;
|
42
|
+
padding: 1em;
|
37
43
|
background-color: #F7F7F7;
|
38
44
|
border: 1px solid #CCC;
|
39
45
|
border-right-color: #999;
|
46
|
+
border-left-color: #999;
|
40
47
|
border-bottom-color: #999;
|
41
48
|
border-bottom-left-radius: 4px;
|
42
49
|
border-bottom-right-radius: 4px;
|
43
50
|
border-top-color: #DADADA;
|
44
51
|
color: #666;
|
45
|
-
box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
|
52
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
46
53
|
}
|
47
54
|
</style>
|
48
55
|
</head>
|
@@ -50,9 +57,11 @@
|
|
50
57
|
<body>
|
51
58
|
<!-- This file lives in public/404.html -->
|
52
59
|
<div class="dialog">
|
53
|
-
<
|
54
|
-
|
60
|
+
<div>
|
61
|
+
<h1>The page you were looking for doesn't exist.</h1>
|
62
|
+
<p>You may have mistyped the address or the page may have moved.</p>
|
63
|
+
</div>
|
64
|
+
<p>If you are the application owner check the logs for more information.</p>
|
55
65
|
</div>
|
56
|
-
<p>If you are the application owner check the logs for more information.</p>
|
57
66
|
</body>
|
58
67
|
</html>
|
data/spec/dummy/public/422.html
CHANGED
@@ -2,17 +2,23 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>The change you wanted was rejected (422)</title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
5
6
|
<style>
|
6
7
|
body {
|
7
8
|
background-color: #EFEFEF;
|
8
9
|
color: #2E2F30;
|
9
10
|
text-align: center;
|
10
11
|
font-family: arial, sans-serif;
|
12
|
+
margin: 0;
|
11
13
|
}
|
12
14
|
|
13
15
|
div.dialog {
|
14
|
-
width:
|
15
|
-
|
16
|
+
width: 95%;
|
17
|
+
max-width: 33em;
|
18
|
+
margin: 4em auto 0;
|
19
|
+
}
|
20
|
+
|
21
|
+
div.dialog > div {
|
16
22
|
border: 1px solid #CCC;
|
17
23
|
border-right-color: #999;
|
18
24
|
border-left-color: #999;
|
@@ -21,7 +27,8 @@
|
|
21
27
|
border-top-left-radius: 9px;
|
22
28
|
border-top-right-radius: 9px;
|
23
29
|
background-color: white;
|
24
|
-
padding: 7px
|
30
|
+
padding: 7px 12% 0;
|
31
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
25
32
|
}
|
26
33
|
|
27
34
|
h1 {
|
@@ -30,19 +37,19 @@
|
|
30
37
|
line-height: 1.5em;
|
31
38
|
}
|
32
39
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
padding: 1em 0;
|
40
|
+
div.dialog > p {
|
41
|
+
margin: 0 0 1em;
|
42
|
+
padding: 1em;
|
37
43
|
background-color: #F7F7F7;
|
38
44
|
border: 1px solid #CCC;
|
39
45
|
border-right-color: #999;
|
46
|
+
border-left-color: #999;
|
40
47
|
border-bottom-color: #999;
|
41
48
|
border-bottom-left-radius: 4px;
|
42
49
|
border-bottom-right-radius: 4px;
|
43
50
|
border-top-color: #DADADA;
|
44
51
|
color: #666;
|
45
|
-
box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
|
52
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
46
53
|
}
|
47
54
|
</style>
|
48
55
|
</head>
|
@@ -50,9 +57,11 @@
|
|
50
57
|
<body>
|
51
58
|
<!-- This file lives in public/422.html -->
|
52
59
|
<div class="dialog">
|
53
|
-
<
|
54
|
-
|
60
|
+
<div>
|
61
|
+
<h1>The change you wanted was rejected.</h1>
|
62
|
+
<p>Maybe you tried to change something you didn't have access to.</p>
|
63
|
+
</div>
|
64
|
+
<p>If you are the application owner check the logs for more information.</p>
|
55
65
|
</div>
|
56
|
-
<p>If you are the application owner check the logs for more information.</p>
|
57
66
|
</body>
|
58
67
|
</html>
|
data/spec/dummy/public/500.html
CHANGED
@@ -2,17 +2,23 @@
|
|
2
2
|
<html>
|
3
3
|
<head>
|
4
4
|
<title>We're sorry, but something went wrong (500)</title>
|
5
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
5
6
|
<style>
|
6
7
|
body {
|
7
8
|
background-color: #EFEFEF;
|
8
9
|
color: #2E2F30;
|
9
10
|
text-align: center;
|
10
11
|
font-family: arial, sans-serif;
|
12
|
+
margin: 0;
|
11
13
|
}
|
12
14
|
|
13
15
|
div.dialog {
|
14
|
-
width:
|
15
|
-
|
16
|
+
width: 95%;
|
17
|
+
max-width: 33em;
|
18
|
+
margin: 4em auto 0;
|
19
|
+
}
|
20
|
+
|
21
|
+
div.dialog > div {
|
16
22
|
border: 1px solid #CCC;
|
17
23
|
border-right-color: #999;
|
18
24
|
border-left-color: #999;
|
@@ -21,7 +27,8 @@
|
|
21
27
|
border-top-left-radius: 9px;
|
22
28
|
border-top-right-radius: 9px;
|
23
29
|
background-color: white;
|
24
|
-
padding: 7px
|
30
|
+
padding: 7px 12% 0;
|
31
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
25
32
|
}
|
26
33
|
|
27
34
|
h1 {
|
@@ -30,19 +37,19 @@
|
|
30
37
|
line-height: 1.5em;
|
31
38
|
}
|
32
39
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
padding: 1em 0;
|
40
|
+
div.dialog > p {
|
41
|
+
margin: 0 0 1em;
|
42
|
+
padding: 1em;
|
37
43
|
background-color: #F7F7F7;
|
38
44
|
border: 1px solid #CCC;
|
39
45
|
border-right-color: #999;
|
46
|
+
border-left-color: #999;
|
40
47
|
border-bottom-color: #999;
|
41
48
|
border-bottom-left-radius: 4px;
|
42
49
|
border-bottom-right-radius: 4px;
|
43
50
|
border-top-color: #DADADA;
|
44
51
|
color: #666;
|
45
|
-
box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
|
52
|
+
box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
|
46
53
|
}
|
47
54
|
</style>
|
48
55
|
</head>
|
@@ -50,8 +57,10 @@
|
|
50
57
|
<body>
|
51
58
|
<!-- This file lives in public/500.html -->
|
52
59
|
<div class="dialog">
|
53
|
-
<
|
60
|
+
<div>
|
61
|
+
<h1>We're sorry, but something went wrong.</h1>
|
62
|
+
</div>
|
63
|
+
<p>If you are the application owner check the logs for more information.</p>
|
54
64
|
</div>
|
55
|
-
<p>If you are the application owner check the logs for more information.</p>
|
56
65
|
</body>
|
57
66
|
</html>
|
File without changes
|
File without changes
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# See http://www.robotstxt.org/
|
1
|
+
# See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
|
2
2
|
#
|
3
3
|
# To ban all spiders from the entire site uncomment the next two lines:
|
4
4
|
# User-agent: *
|
data/spec/spec_helper.rb
CHANGED
@@ -4,11 +4,10 @@ require 'coveralls'
|
|
4
4
|
Coveralls.wear!
|
5
5
|
|
6
6
|
# Require dummy Rails app
|
7
|
-
|
7
|
+
require_relative '../spec/dummy/config/environment'
|
8
8
|
|
9
9
|
require 'database_cleaner'
|
10
10
|
require 'rspec/rails'
|
11
|
-
require 'rspec/autorun'
|
12
11
|
|
13
12
|
# Requires supporting ruby files with custom matchers and macros, etc,
|
14
13
|
# in spec/support/ and its subdirectories.
|
@@ -5,21 +5,17 @@ require 'paranoia'
|
|
5
5
|
describe ParanoiaUniquenessValidator::Validations::UniquenessWithoutDeletedValidator do
|
6
6
|
|
7
7
|
context 'with nil default_sentinel_value' do
|
8
|
-
|
9
|
-
before(:all) do
|
10
|
-
Paranoia.default_sentinel_value = nil
|
11
|
-
end
|
12
|
-
|
13
8
|
it "should validate uniqueness" do
|
14
9
|
DummyModel.create(:unique_field => "unique")
|
15
|
-
|
10
|
+
|
11
|
+
expect(DummyModel.new(:unique_field => "unique")).to_not be_valid
|
16
12
|
end
|
17
13
|
|
18
14
|
it "should should be valid if not unique with a deleted record" do
|
19
15
|
dummy_model = DummyModel.create(:unique_field => "unique")
|
20
16
|
dummy_model.destroy
|
21
|
-
|
22
|
-
|
17
|
+
|
18
|
+
expect(DummyModel.new(:unique_field => "unique")).to be_valid
|
23
19
|
end
|
24
20
|
|
25
21
|
end
|
@@ -27,7 +23,11 @@ describe ParanoiaUniquenessValidator::Validations::UniquenessWithoutDeletedValid
|
|
27
23
|
context 'with datetime (non nil) default_sentinel_value' do
|
28
24
|
|
29
25
|
before(:all) do
|
30
|
-
Paranoia.default_sentinel_value
|
26
|
+
if Paranoia.respond_to?(:default_sentinel_value)
|
27
|
+
Paranoia.default_sentinel_value = DateTime.new(0)
|
28
|
+
else
|
29
|
+
skip('Version of paranoia does not support default_sentinel_value')
|
30
|
+
end
|
31
31
|
end
|
32
32
|
|
33
33
|
it "should validate uniqueness" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paranoia_uniqueness_validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anthony Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
@@ -16,14 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 5.0.0
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '5.1'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
29
|
+
version: 5.0.0
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '5.1'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: paranoia
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -76,49 +82,69 @@ extra_rdoc_files: []
|
|
76
82
|
files:
|
77
83
|
- ".gitignore"
|
78
84
|
- ".travis.yml"
|
85
|
+
- Dockerfile
|
79
86
|
- Gemfile
|
80
87
|
- LICENSE.txt
|
81
88
|
- README.md
|
82
89
|
- Rakefile
|
90
|
+
- docker-compose.yml
|
83
91
|
- lib/paranoia_uniqueness_validator.rb
|
84
92
|
- lib/paranoia_uniqueness_validator/validations/uniqueness_without_deleted.rb
|
85
93
|
- lib/paranoia_uniqueness_validator/version.rb
|
86
94
|
- paranoia_uniqueness_validator.gemspec
|
87
95
|
- spec/dummy/.gitignore
|
88
96
|
- spec/dummy/.rspec
|
89
|
-
- spec/dummy/README.
|
97
|
+
- spec/dummy/README.md
|
90
98
|
- spec/dummy/Rakefile
|
99
|
+
- spec/dummy/app/assets/config/manifest.js
|
100
|
+
- spec/dummy/app/assets/images/.keep
|
91
101
|
- spec/dummy/app/assets/javascripts/application.js
|
102
|
+
- spec/dummy/app/assets/javascripts/cable.js
|
103
|
+
- spec/dummy/app/assets/javascripts/channels/.keep
|
92
104
|
- spec/dummy/app/assets/stylesheets/application.css
|
105
|
+
- spec/dummy/app/channels/application_cable/channel.rb
|
106
|
+
- spec/dummy/app/channels/application_cable/connection.rb
|
93
107
|
- spec/dummy/app/controllers/application_controller.rb
|
94
108
|
- spec/dummy/app/controllers/concerns/.keep
|
95
109
|
- spec/dummy/app/helpers/application_helper.rb
|
96
|
-
- spec/dummy/app/
|
97
|
-
- spec/dummy/app/
|
110
|
+
- spec/dummy/app/jobs/application_job.rb
|
111
|
+
- spec/dummy/app/mailers/application_mailer.rb
|
112
|
+
- spec/dummy/app/models/application_record.rb
|
98
113
|
- spec/dummy/app/models/concerns/.keep
|
99
114
|
- spec/dummy/app/models/dummy_model.rb
|
100
115
|
- spec/dummy/app/models/dummy_non_nil_model.rb
|
101
116
|
- spec/dummy/app/views/layouts/application.html.erb
|
117
|
+
- spec/dummy/app/views/layouts/mailer.html.erb
|
118
|
+
- spec/dummy/app/views/layouts/mailer.text.erb
|
102
119
|
- spec/dummy/bin/bundle
|
103
120
|
- spec/dummy/bin/rails
|
104
121
|
- spec/dummy/bin/rake
|
122
|
+
- spec/dummy/bin/setup
|
123
|
+
- spec/dummy/bin/update
|
105
124
|
- spec/dummy/config.ru
|
106
125
|
- spec/dummy/config/application.rb
|
107
126
|
- spec/dummy/config/boot.rb
|
127
|
+
- spec/dummy/config/cable.yml
|
108
128
|
- spec/dummy/config/database.yml
|
109
129
|
- spec/dummy/config/environment.rb
|
110
130
|
- spec/dummy/config/environments/development.rb
|
111
131
|
- spec/dummy/config/environments/production.rb
|
112
132
|
- spec/dummy/config/environments/test.rb
|
133
|
+
- spec/dummy/config/initializers/application_controller_renderer.rb
|
134
|
+
- spec/dummy/config/initializers/assets.rb
|
113
135
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
136
|
+
- spec/dummy/config/initializers/cookies_serializer.rb
|
114
137
|
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
115
138
|
- spec/dummy/config/initializers/inflections.rb
|
116
139
|
- spec/dummy/config/initializers/mime_types.rb
|
117
|
-
- spec/dummy/config/initializers/
|
140
|
+
- spec/dummy/config/initializers/new_framework_defaults.rb
|
118
141
|
- spec/dummy/config/initializers/session_store.rb
|
119
142
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
120
143
|
- spec/dummy/config/locales/en.yml
|
144
|
+
- spec/dummy/config/puma.rb
|
121
145
|
- spec/dummy/config/routes.rb
|
146
|
+
- spec/dummy/config/secrets.yml
|
147
|
+
- spec/dummy/config/spring.rb
|
122
148
|
- spec/dummy/db/migrate/20130511080827_create_dummy_models.rb
|
123
149
|
- spec/dummy/db/migrate/20160421194241_create_dummy_non_nil_models.rb
|
124
150
|
- spec/dummy/db/schema.rb
|
@@ -130,6 +156,8 @@ files:
|
|
130
156
|
- spec/dummy/public/404.html
|
131
157
|
- spec/dummy/public/422.html
|
132
158
|
- spec/dummy/public/500.html
|
159
|
+
- spec/dummy/public/apple-touch-icon-precomposed.png
|
160
|
+
- spec/dummy/public/apple-touch-icon.png
|
133
161
|
- spec/dummy/public/favicon.ico
|
134
162
|
- spec/dummy/public/robots.txt
|
135
163
|
- spec/dummy/vendor/assets/javascripts/.keep
|
@@ -155,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
155
183
|
version: '0'
|
156
184
|
requirements: []
|
157
185
|
rubyforge_project:
|
158
|
-
rubygems_version: 2.
|
186
|
+
rubygems_version: 2.6.4
|
159
187
|
signing_key:
|
160
188
|
specification_version: 4
|
161
189
|
summary: Validate unique fields without letting those pesky deleted records get in
|
@@ -163,39 +191,57 @@ summary: Validate unique fields without letting those pesky deleted records get
|
|
163
191
|
test_files:
|
164
192
|
- spec/dummy/.gitignore
|
165
193
|
- spec/dummy/.rspec
|
166
|
-
- spec/dummy/README.
|
194
|
+
- spec/dummy/README.md
|
167
195
|
- spec/dummy/Rakefile
|
196
|
+
- spec/dummy/app/assets/config/manifest.js
|
197
|
+
- spec/dummy/app/assets/images/.keep
|
168
198
|
- spec/dummy/app/assets/javascripts/application.js
|
199
|
+
- spec/dummy/app/assets/javascripts/cable.js
|
200
|
+
- spec/dummy/app/assets/javascripts/channels/.keep
|
169
201
|
- spec/dummy/app/assets/stylesheets/application.css
|
202
|
+
- spec/dummy/app/channels/application_cable/channel.rb
|
203
|
+
- spec/dummy/app/channels/application_cable/connection.rb
|
170
204
|
- spec/dummy/app/controllers/application_controller.rb
|
171
205
|
- spec/dummy/app/controllers/concerns/.keep
|
172
206
|
- spec/dummy/app/helpers/application_helper.rb
|
173
|
-
- spec/dummy/app/
|
174
|
-
- spec/dummy/app/
|
207
|
+
- spec/dummy/app/jobs/application_job.rb
|
208
|
+
- spec/dummy/app/mailers/application_mailer.rb
|
209
|
+
- spec/dummy/app/models/application_record.rb
|
175
210
|
- spec/dummy/app/models/concerns/.keep
|
176
211
|
- spec/dummy/app/models/dummy_model.rb
|
177
212
|
- spec/dummy/app/models/dummy_non_nil_model.rb
|
178
213
|
- spec/dummy/app/views/layouts/application.html.erb
|
214
|
+
- spec/dummy/app/views/layouts/mailer.html.erb
|
215
|
+
- spec/dummy/app/views/layouts/mailer.text.erb
|
179
216
|
- spec/dummy/bin/bundle
|
180
217
|
- spec/dummy/bin/rails
|
181
218
|
- spec/dummy/bin/rake
|
219
|
+
- spec/dummy/bin/setup
|
220
|
+
- spec/dummy/bin/update
|
182
221
|
- spec/dummy/config.ru
|
183
222
|
- spec/dummy/config/application.rb
|
184
223
|
- spec/dummy/config/boot.rb
|
224
|
+
- spec/dummy/config/cable.yml
|
185
225
|
- spec/dummy/config/database.yml
|
186
226
|
- spec/dummy/config/environment.rb
|
187
227
|
- spec/dummy/config/environments/development.rb
|
188
228
|
- spec/dummy/config/environments/production.rb
|
189
229
|
- spec/dummy/config/environments/test.rb
|
230
|
+
- spec/dummy/config/initializers/application_controller_renderer.rb
|
231
|
+
- spec/dummy/config/initializers/assets.rb
|
190
232
|
- spec/dummy/config/initializers/backtrace_silencers.rb
|
233
|
+
- spec/dummy/config/initializers/cookies_serializer.rb
|
191
234
|
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
192
235
|
- spec/dummy/config/initializers/inflections.rb
|
193
236
|
- spec/dummy/config/initializers/mime_types.rb
|
194
|
-
- spec/dummy/config/initializers/
|
237
|
+
- spec/dummy/config/initializers/new_framework_defaults.rb
|
195
238
|
- spec/dummy/config/initializers/session_store.rb
|
196
239
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
197
240
|
- spec/dummy/config/locales/en.yml
|
241
|
+
- spec/dummy/config/puma.rb
|
198
242
|
- spec/dummy/config/routes.rb
|
243
|
+
- spec/dummy/config/secrets.yml
|
244
|
+
- spec/dummy/config/spring.rb
|
199
245
|
- spec/dummy/db/migrate/20130511080827_create_dummy_models.rb
|
200
246
|
- spec/dummy/db/migrate/20160421194241_create_dummy_non_nil_models.rb
|
201
247
|
- spec/dummy/db/schema.rb
|
@@ -207,6 +253,8 @@ test_files:
|
|
207
253
|
- spec/dummy/public/404.html
|
208
254
|
- spec/dummy/public/422.html
|
209
255
|
- spec/dummy/public/500.html
|
256
|
+
- spec/dummy/public/apple-touch-icon-precomposed.png
|
257
|
+
- spec/dummy/public/apple-touch-icon.png
|
210
258
|
- spec/dummy/public/favicon.ico
|
211
259
|
- spec/dummy/public/robots.txt
|
212
260
|
- spec/dummy/vendor/assets/javascripts/.keep
|