paranoia_uniqueness_validator-cmoran92 1.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 (62) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.travis.yml +18 -0
  4. data/Gemfile +41 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +52 -0
  7. data/Rakefile +9 -0
  8. data/lib/paranoia_uniqueness_validator/validations/uniqueness_without_deleted.rb +36 -0
  9. data/lib/paranoia_uniqueness_validator/version.rb +3 -0
  10. data/lib/paranoia_uniqueness_validator.rb +10 -0
  11. data/paranoia_uniqueness_validator.gemspec +25 -0
  12. data/spec/dummy/.gitignore +15 -0
  13. data/spec/dummy/.rspec +1 -0
  14. data/spec/dummy/README.rdoc +28 -0
  15. data/spec/dummy/Rakefile +6 -0
  16. data/spec/dummy/app/assets/javascripts/application.js +16 -0
  17. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  18. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  19. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  20. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  21. data/spec/dummy/app/mailers/.keep +0 -0
  22. data/spec/dummy/app/models/.keep +0 -0
  23. data/spec/dummy/app/models/concerns/.keep +0 -0
  24. data/spec/dummy/app/models/dummy_model.rb +3 -0
  25. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  26. data/spec/dummy/bin/bundle +3 -0
  27. data/spec/dummy/bin/rails +4 -0
  28. data/spec/dummy/bin/rake +4 -0
  29. data/spec/dummy/config/application.rb +29 -0
  30. data/spec/dummy/config/boot.rb +7 -0
  31. data/spec/dummy/config/database.yml +25 -0
  32. data/spec/dummy/config/environment.rb +5 -0
  33. data/spec/dummy/config/environments/development.rb +29 -0
  34. data/spec/dummy/config/environments/production.rb +80 -0
  35. data/spec/dummy/config/environments/test.rb +36 -0
  36. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  37. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  38. data/spec/dummy/config/initializers/inflections.rb +16 -0
  39. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  40. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  41. data/spec/dummy/config/initializers/session_store.rb +3 -0
  42. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  43. data/spec/dummy/config/locales/en.yml +23 -0
  44. data/spec/dummy/config/routes.rb +49 -0
  45. data/spec/dummy/config.ru +4 -0
  46. data/spec/dummy/db/migrate/20130511080827_create_dummy_models.rb +10 -0
  47. data/spec/dummy/db/schema.rb +23 -0
  48. data/spec/dummy/db/seeds.rb +7 -0
  49. data/spec/dummy/db/test.sqlite3 +0 -0
  50. data/spec/dummy/lib/assets/.keep +0 -0
  51. data/spec/dummy/lib/tasks/.keep +0 -0
  52. data/spec/dummy/log/.keep +0 -0
  53. data/spec/dummy/public/404.html +58 -0
  54. data/spec/dummy/public/422.html +58 -0
  55. data/spec/dummy/public/500.html +57 -0
  56. data/spec/dummy/public/favicon.ico +0 -0
  57. data/spec/dummy/public/robots.txt +5 -0
  58. data/spec/dummy/vendor/assets/javascripts/.keep +0 -0
  59. data/spec/dummy/vendor/assets/stylesheets/.keep +0 -0
  60. data/spec/spec_helper.rb +36 -0
  61. data/spec/validations/uniqueness_without_deleted_spec.rb +15 -0
  62. metadata +211 -0
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/422.html -->
52
+ <div class="dialog">
53
+ <h1>The change you wanted was rejected.</h1>
54
+ <p>Maybe you tried to change something you didn't have access to.</p>
55
+ </div>
56
+ <p>If you are the application owner check the logs for more information.</p>
57
+ </body>
58
+ </html>
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style>
6
+ body {
7
+ background-color: #EFEFEF;
8
+ color: #2E2F30;
9
+ text-align: center;
10
+ font-family: arial, sans-serif;
11
+ }
12
+
13
+ div.dialog {
14
+ width: 25em;
15
+ margin: 4em auto 0 auto;
16
+ border: 1px solid #CCC;
17
+ border-right-color: #999;
18
+ border-left-color: #999;
19
+ border-bottom-color: #BBB;
20
+ border-top: #B00100 solid 4px;
21
+ border-top-left-radius: 9px;
22
+ border-top-right-radius: 9px;
23
+ background-color: white;
24
+ padding: 7px 4em 0 4em;
25
+ }
26
+
27
+ h1 {
28
+ font-size: 100%;
29
+ color: #730E15;
30
+ line-height: 1.5em;
31
+ }
32
+
33
+ body > p {
34
+ width: 33em;
35
+ margin: 0 auto 1em;
36
+ padding: 1em 0;
37
+ background-color: #F7F7F7;
38
+ border: 1px solid #CCC;
39
+ border-right-color: #999;
40
+ border-bottom-color: #999;
41
+ border-bottom-left-radius: 4px;
42
+ border-bottom-right-radius: 4px;
43
+ border-top-color: #DADADA;
44
+ color: #666;
45
+ box-shadow:0 3px 8px rgba(50, 50, 50, 0.17);
46
+ }
47
+ </style>
48
+ </head>
49
+
50
+ <body>
51
+ <!-- This file lives in public/500.html -->
52
+ <div class="dialog">
53
+ <h1>We're sorry, but something went wrong.</h1>
54
+ </div>
55
+ <p>If you are the application owner check the logs for more information.</p>
56
+ </body>
57
+ </html>
File without changes
@@ -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
File without changes
@@ -0,0 +1,36 @@
1
+ ENV["RAILS_ENV"] = 'test'
2
+
3
+ require 'coveralls'
4
+ Coveralls.wear!
5
+
6
+ # Require dummy Rails app
7
+ require File.expand_path("../../spec/dummy/config/environment", __FILE__)
8
+
9
+ require 'database_cleaner'
10
+ require 'rspec/rails'
11
+ require 'rspec/autorun'
12
+
13
+ # Requires supporting ruby files with custom matchers and macros, etc,
14
+ # in spec/support/ and its subdirectories.
15
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
16
+
17
+ DatabaseCleaner.strategy = :transaction
18
+
19
+ RSpec.configure do |config|
20
+ # If true, the base class of anonymous controllers will be inferred
21
+ # automatically. This will be the default behavior in future versions of
22
+ # rspec-rails.
23
+ config.infer_base_class_for_anonymous_controllers = false
24
+
25
+ config.before :suite do
26
+ DatabaseCleaner.clean_with :truncation
27
+ end
28
+
29
+ config.before :each do
30
+ DatabaseCleaner.start
31
+ end
32
+
33
+ config.after :each do
34
+ DatabaseCleaner.clean
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe ParanoiaUniquenessValidator::Validations::UniquenessWithoutDeletedValidator do
4
+ it "should validate uniqueness" do
5
+ DummyModel.create(:unique_field => "unique")
6
+ DummyModel.new(:unique_field => "unique").should_not be_valid
7
+ end
8
+
9
+ it "should should be valid if not unqiue with a deleted record" do
10
+ dummy_model = DummyModel.create(:unique_field => "unique")
11
+ dummy_model.destroy
12
+ dummy_model = DummyModel.new(:unique_field => "unique")
13
+ dummy_model.should be_valid
14
+ end
15
+ end
metadata ADDED
@@ -0,0 +1,211 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: paranoia_uniqueness_validator-cmoran92
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Anthony Smith
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-04-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activerecord
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 4.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 4.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: paranoia
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: database_cleaner
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec-rails
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Adds the validates_uniqueness_without_deleted validator to ignore deleted
70
+ fields when validating for uniqueness.
71
+ email:
72
+ - anthony@sticksnleaves.com
73
+ executables: []
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".gitignore"
78
+ - ".travis.yml"
79
+ - Gemfile
80
+ - LICENSE.txt
81
+ - README.md
82
+ - Rakefile
83
+ - lib/paranoia_uniqueness_validator.rb
84
+ - lib/paranoia_uniqueness_validator/validations/uniqueness_without_deleted.rb
85
+ - lib/paranoia_uniqueness_validator/version.rb
86
+ - paranoia_uniqueness_validator.gemspec
87
+ - spec/dummy/.gitignore
88
+ - spec/dummy/.rspec
89
+ - spec/dummy/README.rdoc
90
+ - spec/dummy/Rakefile
91
+ - spec/dummy/app/assets/javascripts/application.js
92
+ - spec/dummy/app/assets/stylesheets/application.css
93
+ - spec/dummy/app/controllers/application_controller.rb
94
+ - spec/dummy/app/controllers/concerns/.keep
95
+ - spec/dummy/app/helpers/application_helper.rb
96
+ - spec/dummy/app/mailers/.keep
97
+ - spec/dummy/app/models/.keep
98
+ - spec/dummy/app/models/concerns/.keep
99
+ - spec/dummy/app/models/dummy_model.rb
100
+ - spec/dummy/app/views/layouts/application.html.erb
101
+ - spec/dummy/bin/bundle
102
+ - spec/dummy/bin/rails
103
+ - spec/dummy/bin/rake
104
+ - spec/dummy/config.ru
105
+ - spec/dummy/config/application.rb
106
+ - spec/dummy/config/boot.rb
107
+ - spec/dummy/config/database.yml
108
+ - spec/dummy/config/environment.rb
109
+ - spec/dummy/config/environments/development.rb
110
+ - spec/dummy/config/environments/production.rb
111
+ - spec/dummy/config/environments/test.rb
112
+ - spec/dummy/config/initializers/backtrace_silencers.rb
113
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
114
+ - spec/dummy/config/initializers/inflections.rb
115
+ - spec/dummy/config/initializers/mime_types.rb
116
+ - spec/dummy/config/initializers/secret_token.rb
117
+ - spec/dummy/config/initializers/session_store.rb
118
+ - spec/dummy/config/initializers/wrap_parameters.rb
119
+ - spec/dummy/config/locales/en.yml
120
+ - spec/dummy/config/routes.rb
121
+ - spec/dummy/db/migrate/20130511080827_create_dummy_models.rb
122
+ - spec/dummy/db/schema.rb
123
+ - spec/dummy/db/seeds.rb
124
+ - spec/dummy/db/test.sqlite3
125
+ - spec/dummy/lib/assets/.keep
126
+ - spec/dummy/lib/tasks/.keep
127
+ - spec/dummy/log/.keep
128
+ - spec/dummy/public/404.html
129
+ - spec/dummy/public/422.html
130
+ - spec/dummy/public/500.html
131
+ - spec/dummy/public/favicon.ico
132
+ - spec/dummy/public/robots.txt
133
+ - spec/dummy/vendor/assets/javascripts/.keep
134
+ - spec/dummy/vendor/assets/stylesheets/.keep
135
+ - spec/spec_helper.rb
136
+ - spec/validations/uniqueness_without_deleted_spec.rb
137
+ homepage: ''
138
+ licenses: []
139
+ metadata: {}
140
+ post_install_message:
141
+ rdoc_options: []
142
+ require_paths:
143
+ - lib
144
+ required_ruby_version: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ required_rubygems_version: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ requirements: []
155
+ rubyforge_project:
156
+ rubygems_version: 2.4.7
157
+ signing_key:
158
+ specification_version: 4
159
+ summary: Validate unique fields without letting those pesky deleted records get in
160
+ the way. Great for use with Paranoia.
161
+ test_files:
162
+ - spec/dummy/.gitignore
163
+ - spec/dummy/.rspec
164
+ - spec/dummy/README.rdoc
165
+ - spec/dummy/Rakefile
166
+ - spec/dummy/app/assets/javascripts/application.js
167
+ - spec/dummy/app/assets/stylesheets/application.css
168
+ - spec/dummy/app/controllers/application_controller.rb
169
+ - spec/dummy/app/controllers/concerns/.keep
170
+ - spec/dummy/app/helpers/application_helper.rb
171
+ - spec/dummy/app/mailers/.keep
172
+ - spec/dummy/app/models/.keep
173
+ - spec/dummy/app/models/concerns/.keep
174
+ - spec/dummy/app/models/dummy_model.rb
175
+ - spec/dummy/app/views/layouts/application.html.erb
176
+ - spec/dummy/bin/bundle
177
+ - spec/dummy/bin/rails
178
+ - spec/dummy/bin/rake
179
+ - spec/dummy/config.ru
180
+ - spec/dummy/config/application.rb
181
+ - spec/dummy/config/boot.rb
182
+ - spec/dummy/config/database.yml
183
+ - spec/dummy/config/environment.rb
184
+ - spec/dummy/config/environments/development.rb
185
+ - spec/dummy/config/environments/production.rb
186
+ - spec/dummy/config/environments/test.rb
187
+ - spec/dummy/config/initializers/backtrace_silencers.rb
188
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
189
+ - spec/dummy/config/initializers/inflections.rb
190
+ - spec/dummy/config/initializers/mime_types.rb
191
+ - spec/dummy/config/initializers/secret_token.rb
192
+ - spec/dummy/config/initializers/session_store.rb
193
+ - spec/dummy/config/initializers/wrap_parameters.rb
194
+ - spec/dummy/config/locales/en.yml
195
+ - spec/dummy/config/routes.rb
196
+ - spec/dummy/db/migrate/20130511080827_create_dummy_models.rb
197
+ - spec/dummy/db/schema.rb
198
+ - spec/dummy/db/seeds.rb
199
+ - spec/dummy/db/test.sqlite3
200
+ - spec/dummy/lib/assets/.keep
201
+ - spec/dummy/lib/tasks/.keep
202
+ - spec/dummy/log/.keep
203
+ - spec/dummy/public/404.html
204
+ - spec/dummy/public/422.html
205
+ - spec/dummy/public/500.html
206
+ - spec/dummy/public/favicon.ico
207
+ - spec/dummy/public/robots.txt
208
+ - spec/dummy/vendor/assets/javascripts/.keep
209
+ - spec/dummy/vendor/assets/stylesheets/.keep
210
+ - spec/spec_helper.rb
211
+ - spec/validations/uniqueness_without_deleted_spec.rb