client_side_validations-mongoid 3.1.0 → 4.0.1
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 +7 -0
- data/README.md +71 -0
- data/lib/client_side_validations/mongoid.rb +2 -3
- data/lib/client_side_validations/mongoid/middleware.rb +17 -17
- data/lib/client_side_validations/mongoid/presence.rb +7 -6
- data/lib/client_side_validations/mongoid/uniqueness.rb +22 -21
- data/lib/client_side_validations/mongoid/version.rb +2 -1
- metadata +115 -59
- data/client_side_validations-mongoid.gemspec +0 -23
- data/lib/client_side_validations-mongoid.rb +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 55df45e645f548fda4ea18c4beacf253c8649acf
|
4
|
+
data.tar.gz: c7893a1a2d782b13521a90b15f711ec01f1833d2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7aeb53ed7e59c2c55cde6e43c63fb9fc44c160f01356681aa8720c5e6b59e76e325ec62dd07d2c55ff493fb8a4eef5db0877938aa7b4653b816446ec20a71eb5
|
7
|
+
data.tar.gz: d9b51618e1378b76ed2012cabed9333e59c5d4d39b975b7d40fe1f6e0c7d6702343ec3789d24da68ad4366da864c17e790e865043a836b75d3ba2270e5451f1c
|
data/README.md
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
# ClientSideValidations-Mongoid #
|
2
|
+
|
3
|
+
[](http://badge.fury.io/rb/client_side_validations-mongoid)
|
4
|
+
[](https://travis-ci.org/DavyJonesLocker/client_side_validations-mongoid)
|
5
|
+
[](https://gemnasium.com/DavyJonesLocker/client_side_validations-mongoid)
|
6
|
+
[](https://codeclimate.com/github/DavyJonesLocker/client_side_validations-mongoid)
|
7
|
+
[](https://coveralls.io/r/DavyJonesLocker/client_side_validations-mongoid?branch=master)
|
8
|
+
|
9
|
+
[Mongoid](https://github.com/plataformatec/mongoid) plugin for [ClientSideValidations](https://github.com/DavyJonesLocker/client_side_validations)
|
10
|
+
|
11
|
+
## Installation ##
|
12
|
+
|
13
|
+
In your Gemfile add the following:
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
gem 'mongoid'
|
17
|
+
gem 'client_side_validations'
|
18
|
+
gem 'client_side_validations-mongoid'
|
19
|
+
```
|
20
|
+
|
21
|
+
Order matters here. `Mongoid` and `ClientSideValidations` need to be
|
22
|
+
required **before** `ClientSideValidations-Mongoid`.
|
23
|
+
|
24
|
+
[Follow the remaining installation instructions for ClientSideValidations](https://github.com/DavyJonesLocker/client_side_validations/blob/master/README.md)
|
25
|
+
|
26
|
+
## Usage ##
|
27
|
+
|
28
|
+
The usage is the same as `ClientSideValidations`, just pass `validate: true` to the form builder
|
29
|
+
|
30
|
+
```ruby
|
31
|
+
<%= form_for @book, validate: true do |book| %>
|
32
|
+
<%= book.input :name %>
|
33
|
+
<% end %>
|
34
|
+
```
|
35
|
+
|
36
|
+
Per-input options are done with `:validate`
|
37
|
+
|
38
|
+
```ruby
|
39
|
+
<%= book.input :name, validate: { presence: true, uniqueness: false }
|
40
|
+
```
|
41
|
+
|
42
|
+
## Authors ##
|
43
|
+
|
44
|
+
[Brian Cardarella](http://twitter.com/bcardarella)
|
45
|
+
|
46
|
+
[Geremia Taglialatela](http://twitter.com/gtagliala)
|
47
|
+
|
48
|
+
[We are very thankful for the many contributors](https://github.com/DavyJonesLocker/client_side_validations-mongoid/graphs/contributors)
|
49
|
+
|
50
|
+
## Versioning ##
|
51
|
+
|
52
|
+
This gem follows [Semantic Versioning](http://semver.org)
|
53
|
+
|
54
|
+
Major and minor version numbers will follow `mongoid`'s major and
|
55
|
+
minor version numbers. For example,
|
56
|
+
`client_side_validations-mongoid-4.0.0` will be compatible up to
|
57
|
+
`~> mongoid-4.0.0`
|
58
|
+
|
59
|
+
## Want to help? ##
|
60
|
+
|
61
|
+
Please do! We are always looking to improve this gem. Please see our
|
62
|
+
[Contribution Guidelines](https://github.com/DavyJonesLocker/client_side_validations-mongoid/blob/master/CONTRIBUTING.md)
|
63
|
+
on how to properly submit issues and pull requests.
|
64
|
+
|
65
|
+
## Legal ##
|
66
|
+
|
67
|
+
[DockYard](http://dockyard.com), LLC © 2012-2015
|
68
|
+
|
69
|
+
[@dockyard](http://twitter.com/dockyard)
|
70
|
+
|
71
|
+
[Licensed under the MIT license](http://www.opensource.org/licenses/mit-license.php)
|
@@ -4,11 +4,10 @@ require 'client_side_validations/active_model'
|
|
4
4
|
require 'client_side_validations/middleware'
|
5
5
|
require 'client_side_validations/mongoid/middleware'
|
6
6
|
|
7
|
-
%w
|
7
|
+
%w(presence uniqueness).each do |validator|
|
8
8
|
require "client_side_validations/mongoid/#{validator}"
|
9
9
|
validator.capitalize!
|
10
|
-
|
10
|
+
Mongoid::Validatable.const_get("#{validator}Validator").send :include, ClientSideValidations::Mongoid.const_get(validator)
|
11
11
|
end
|
12
12
|
|
13
13
|
ClientSideValidations::Middleware::Uniqueness.register_orm(ClientSideValidations::Mongoid::Middleware)
|
14
|
-
|
@@ -1,25 +1,25 @@
|
|
1
|
-
module ClientSideValidations
|
2
|
-
|
1
|
+
module ClientSideValidations
|
2
|
+
module Mongoid
|
3
|
+
class Middleware
|
4
|
+
def self.class?(klass)
|
5
|
+
klass < ::Mongoid::Document
|
6
|
+
end
|
3
7
|
|
4
|
-
|
5
|
-
klass
|
6
|
-
|
8
|
+
# Still need to handle embedded documents
|
9
|
+
def self.unique?(klass, attribute, value, params)
|
10
|
+
if params[:case_sensitive] == 'false'
|
11
|
+
value = Regexp.new("^#{Regexp.escape(value.to_s)}$", Regexp::IGNORECASE)
|
12
|
+
end
|
7
13
|
|
8
|
-
|
9
|
-
|
10
|
-
if params[:case_sensitive] == 'false'
|
11
|
-
value = Regexp.new("^#{Regexp.escape(value.to_s)}$", Regexp::IGNORECASE)
|
12
|
-
end
|
14
|
+
criteria = klass.where(attribute => value)
|
15
|
+
criteria = criteria.where(_id: { '$ne' => params[:id] }) if params[:id]
|
13
16
|
|
14
|
-
|
15
|
-
|
17
|
+
(params[:scope] || {}).each do |scope_key, scope_value|
|
18
|
+
criteria = criteria.where(scope_key => scope_value)
|
19
|
+
end
|
16
20
|
|
17
|
-
|
18
|
-
criteria = criteria.where(key => value)
|
21
|
+
!criteria.exists?
|
19
22
|
end
|
20
|
-
|
21
|
-
!criteria.exists?
|
22
23
|
end
|
23
24
|
end
|
24
25
|
end
|
25
|
-
|
@@ -1,29 +1,30 @@
|
|
1
|
-
module ClientSideValidations
|
2
|
-
module
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
1
|
+
module ClientSideValidations
|
2
|
+
module Mongoid
|
3
|
+
module Uniqueness
|
4
|
+
def client_side_hash(model, attribute, _force = nil)
|
5
|
+
hash = {}
|
6
|
+
hash[:message] = model.errors.generate_message(attribute, message_type, options.except(:scope))
|
7
|
+
hash[:case_sensitive] = options[:case_sensitive] if options.key?(:case_sensitive)
|
8
|
+
hash[:allow_blank] = true if options[:allow_blank]
|
9
|
+
hash[:id] = model.id unless model.new_record?
|
10
|
+
if options.key?(:scope) && options[:scope].present?
|
11
|
+
hash[:scope] = Array.wrap(options[:scope]).inject({}) do |scope_hash, scope_item|
|
12
|
+
scope_hash.merge!(scope_item => model.send(scope_item))
|
13
|
+
end
|
12
14
|
end
|
13
|
-
end
|
14
15
|
|
15
|
-
|
16
|
-
|
17
|
-
|
16
|
+
unless model.class.name.demodulize == model.class.name
|
17
|
+
hash[:class] = model.class.name.underscore
|
18
|
+
end
|
18
19
|
|
19
|
-
|
20
|
-
|
20
|
+
hash
|
21
|
+
end
|
21
22
|
|
22
|
-
|
23
|
+
private
|
23
24
|
|
24
|
-
|
25
|
-
|
25
|
+
def message_type
|
26
|
+
:taken
|
27
|
+
end
|
26
28
|
end
|
27
29
|
end
|
28
30
|
end
|
29
|
-
|
metadata
CHANGED
@@ -1,154 +1,210 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: client_side_validations-mongoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 4.0.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Brian Cardarella
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2016-01-15 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: client_side_validations
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: 4.2.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
26
|
+
version: 4.2.0
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: mongoid
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- - ~>
|
31
|
+
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
33
|
+
version: '4.0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- - ~>
|
38
|
+
- - "~>"
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
40
|
+
version: '4.0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
42
|
+
name: appraisal
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
47
|
+
version: '2.1'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - "~>"
|
60
53
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
54
|
+
version: '2.1'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
56
|
+
name: coveralls
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- - ~>
|
59
|
+
- - "~>"
|
68
60
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
61
|
+
version: 0.8.10
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- - ~>
|
66
|
+
- - "~>"
|
76
67
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
68
|
+
version: 0.8.10
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
70
|
+
name: database_cleaner
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - "~>"
|
84
74
|
- !ruby/object:Gem::Version
|
85
|
-
version: '
|
75
|
+
version: '1.5'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - "~>"
|
92
81
|
- !ruby/object:Gem::Version
|
93
|
-
version: '
|
82
|
+
version: '1.5'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: m
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.4'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.4'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: minitest
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 4.7.5
|
104
|
+
- - "<"
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: 6.0.0
|
107
|
+
type: :development
|
108
|
+
prerelease: false
|
109
|
+
version_requirements: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: 4.7.5
|
114
|
+
- - "<"
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 6.0.0
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: mocha
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - "~>"
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '1.1'
|
124
|
+
type: :development
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - "~>"
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '1.1'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: rubocop
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - "~>"
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: 0.36.0
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: 0.36.0
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: simplecov
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - "~>"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: 0.11.1
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - "~>"
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: 0.11.1
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: byebug
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - "~>"
|
100
164
|
- !ruby/object:Gem::Version
|
101
|
-
version: '
|
165
|
+
version: '8.2'
|
102
166
|
type: :development
|
103
167
|
prerelease: false
|
104
168
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
169
|
requirements:
|
107
|
-
- -
|
170
|
+
- - "~>"
|
108
171
|
- !ruby/object:Gem::Version
|
109
|
-
version: '
|
110
|
-
description: Mongoid Plugin for
|
172
|
+
version: '8.2'
|
173
|
+
description: Mongoid Plugin for ClientSideValidations
|
111
174
|
email:
|
112
175
|
- bcardarella@gmail.com
|
113
176
|
executables: []
|
114
177
|
extensions: []
|
115
178
|
extra_rdoc_files: []
|
116
179
|
files:
|
117
|
-
-
|
118
|
-
- lib/client_side_validations-mongoid.rb
|
180
|
+
- README.md
|
119
181
|
- lib/client_side_validations/mongoid.rb
|
120
182
|
- lib/client_side_validations/mongoid/middleware.rb
|
121
183
|
- lib/client_side_validations/mongoid/presence.rb
|
122
184
|
- lib/client_side_validations/mongoid/uniqueness.rb
|
123
185
|
- lib/client_side_validations/mongoid/version.rb
|
124
|
-
homepage: https://github.com/
|
125
|
-
licenses:
|
186
|
+
homepage: https://github.com/DavyJonesLocker/client_side_validations-mongoid
|
187
|
+
licenses:
|
188
|
+
- MIT
|
189
|
+
metadata: {}
|
126
190
|
post_install_message:
|
127
191
|
rdoc_options: []
|
128
192
|
require_paths:
|
129
193
|
- lib
|
130
194
|
required_ruby_version: !ruby/object:Gem::Requirement
|
131
|
-
none: false
|
132
195
|
requirements:
|
133
|
-
- -
|
196
|
+
- - ">="
|
134
197
|
- !ruby/object:Gem::Version
|
135
198
|
version: '0'
|
136
|
-
segments:
|
137
|
-
- 0
|
138
|
-
hash: 1576829546801755098
|
139
199
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
|
-
none: false
|
141
200
|
requirements:
|
142
|
-
- -
|
201
|
+
- - ">="
|
143
202
|
- !ruby/object:Gem::Version
|
144
203
|
version: '0'
|
145
|
-
segments:
|
146
|
-
- 0
|
147
|
-
hash: 1576829546801755098
|
148
204
|
requirements: []
|
149
205
|
rubyforge_project:
|
150
|
-
rubygems_version:
|
206
|
+
rubygems_version: 2.5.1
|
151
207
|
signing_key:
|
152
|
-
specification_version:
|
208
|
+
specification_version: 4
|
153
209
|
summary: Mongoid Plugin for ClientSideValidations
|
154
210
|
test_files: []
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
require File.expand_path('../lib/client_side_validations/mongoid/version', __FILE__)
|
3
|
-
|
4
|
-
Gem::Specification.new do |gem|
|
5
|
-
gem.authors = ["Brian Cardarella"]
|
6
|
-
gem.email = ["bcardarella@gmail.com"]
|
7
|
-
gem.description = %q{Mongoid Plugin for ClientSideValidaitons}
|
8
|
-
gem.summary = %q{Mongoid Plugin for ClientSideValidations}
|
9
|
-
gem.homepage = 'https://github.com/dockyard/client_side_validations-mongoid'
|
10
|
-
|
11
|
-
gem.files = `git ls-files -- {lib/*,vendor/*,*.gemspec}`.split("\n")
|
12
|
-
gem.name = 'client_side_validations-mongoid'
|
13
|
-
gem.require_paths = ['lib']
|
14
|
-
gem.version = ClientSideValidations::Mongoid::VERSION
|
15
|
-
|
16
|
-
gem.add_dependency 'client_side_validations', '~> 3.2.0'
|
17
|
-
gem.add_dependency 'mongoid', '~> 3.1.0'
|
18
|
-
|
19
|
-
gem.add_development_dependency 'bson_ext'
|
20
|
-
gem.add_development_dependency 'rails', '~> 3.2.0'
|
21
|
-
gem.add_development_dependency 'mocha'
|
22
|
-
gem.add_development_dependency 'm'
|
23
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
require 'client_side_validations/mongoid'
|