paranoia_uniqueness_validator 1.2.0 → 2.0.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.
- 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
|