mongoid-embedded-errors 2.0.0 → 2.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/Gemfile.lock +12 -12
- data/README.md +4 -3
- data/lib/mongoid-embedded-errors/version.rb +1 -1
- data/lib/mongoid-embedded-errors.rb +2 -2
- data/spec/embedded_errors_spec.rb +4 -1
- data/spec/support/models.rb +12 -0
- metadata +10 -13
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 96ef455929fe07047621a0d5a2e33c576ee05926
|
4
|
+
data.tar.gz: dff154361af3fac2c963cd4ba7652902b8190441
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: b70add5efeb3f66dd603edd5104537cbead19775fe643afa265b7fc1aef6ff2f308dcba412f0aafb5ae67256bdf86318917bb5a2632f910b254f4f4cd39054a0
|
7
|
+
data.tar.gz: fd0881ccee8b5243333a6f8e3219c5002d9c2772267db2f438f66c7975c495896edaa66f7da8c2491ba5f67a6fe7c77c0bf16c8fc05ebc47e14336e76f3d450c
|
data/Gemfile.lock
CHANGED
@@ -1,30 +1,30 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
mongoid-embedded-errors (2.0.
|
4
|
+
mongoid-embedded-errors (2.0.1)
|
5
5
|
mongoid (>= 3.0.0)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
activemodel (3.2.
|
11
|
-
activesupport (= 3.2.
|
10
|
+
activemodel (3.2.13)
|
11
|
+
activesupport (= 3.2.13)
|
12
12
|
builder (~> 3.0.0)
|
13
|
-
activesupport (3.2.
|
14
|
-
i18n (
|
13
|
+
activesupport (3.2.13)
|
14
|
+
i18n (= 0.6.1)
|
15
15
|
multi_json (~> 1.0)
|
16
16
|
builder (3.0.4)
|
17
17
|
database_cleaner (0.9.1)
|
18
18
|
diff-lcs (1.1.3)
|
19
19
|
i18n (0.6.1)
|
20
|
-
mongoid (3.
|
21
|
-
activemodel (~> 3.
|
22
|
-
moped (~> 1.
|
20
|
+
mongoid (3.1.2)
|
21
|
+
activemodel (~> 3.2)
|
22
|
+
moped (~> 1.4.2)
|
23
23
|
origin (~> 1.0)
|
24
24
|
tzinfo (~> 0.3.22)
|
25
|
-
moped (1.4.
|
26
|
-
multi_json (1.
|
27
|
-
origin (1.0
|
25
|
+
moped (1.4.5)
|
26
|
+
multi_json (1.7.7)
|
27
|
+
origin (1.1.0)
|
28
28
|
rspec (2.11.0)
|
29
29
|
rspec-core (~> 2.11.0)
|
30
30
|
rspec-expectations (~> 2.11.0)
|
@@ -33,7 +33,7 @@ GEM
|
|
33
33
|
rspec-expectations (2.11.3)
|
34
34
|
diff-lcs (~> 1.1.3)
|
35
35
|
rspec-mocks (2.11.3)
|
36
|
-
tzinfo (0.3.
|
36
|
+
tzinfo (0.3.37)
|
37
37
|
|
38
38
|
PLATFORMS
|
39
39
|
ruby
|
data/README.md
CHANGED
@@ -85,9 +85,9 @@ article.valid? # => false
|
|
85
85
|
|
86
86
|
article.error.messages
|
87
87
|
{
|
88
|
-
:name => ["can't be blank"],
|
89
|
-
:summary => ["can't be blank"],
|
90
|
-
:"pages[0].title" => ["can't be blank"],
|
88
|
+
:name => ["can't be blank"],
|
89
|
+
:summary => ["can't be blank"],
|
90
|
+
:"pages[0].title" => ["can't be blank"],
|
91
91
|
:"pages[0].sections[0].header" => ["can't be blank"]
|
92
92
|
}
|
93
93
|
```
|
@@ -105,4 +105,5 @@ Now, isn't that much nicer? Yeah, I think so to.
|
|
105
105
|
## Contributers
|
106
106
|
|
107
107
|
* Mark Bates
|
108
|
+
* Evgeniy Denisov
|
108
109
|
* Nick Plante
|
@@ -21,11 +21,11 @@ module Mongoid
|
|
21
21
|
# first delete the unless 'is invalid' error for the relation
|
22
22
|
errs.delete(name.to_sym)
|
23
23
|
# next, loop through each of the relations (pages, sections, etc...)
|
24
|
-
self.send(name).each_with_index do |rel, i|
|
24
|
+
[self.send(name)].flatten.reject(&:nil?).each_with_index do |rel, i|
|
25
25
|
# get each of their individual message and add them to the parent's errors:
|
26
26
|
if rel.errors.any?
|
27
27
|
rel.errors.messages.each do |k, v|
|
28
|
-
key = "#{name}[#{i}].#{k}".to_sym
|
28
|
+
key = (rel.metadata.relation == Mongoid::Relations::Embedded::Many ? "#{name}[#{i}].#{k}" : "#{name}.#{k}").to_sym
|
29
29
|
errs.delete(key)
|
30
30
|
errs[key] = v
|
31
31
|
errs[key].flatten!
|
@@ -6,6 +6,7 @@ describe Mongoid::EmbeddedErrors do
|
|
6
6
|
let(:invalid_page) { Page.new }
|
7
7
|
let(:invalid_section) { Section.new }
|
8
8
|
let(:valid_section) { Section.new(header: "My Header") }
|
9
|
+
let(:invalid_annotation){ Annotation.new }
|
9
10
|
|
10
11
|
describe "errors" do
|
11
12
|
|
@@ -13,12 +14,14 @@ describe Mongoid::EmbeddedErrors do
|
|
13
14
|
invalid_page.sections << valid_section
|
14
15
|
invalid_page.sections << invalid_section
|
15
16
|
article.pages << invalid_page
|
17
|
+
article.annotation = invalid_annotation
|
16
18
|
article.should_not be_valid
|
17
19
|
article.errors.messages.should eql({
|
18
20
|
name: ["can't be blank"],
|
19
21
|
summary: ["can't be blank"],
|
20
22
|
:"pages[0].title" => ["can't be blank"],
|
21
|
-
:"pages[0].sections[1].header" => ["can't be blank"]
|
23
|
+
:"pages[0].sections[1].header" => ["can't be blank"],
|
24
|
+
:"annotation.text" => ["can't be blank"]
|
22
25
|
})
|
23
26
|
end
|
24
27
|
|
data/spec/support/models.rb
CHANGED
@@ -10,6 +10,7 @@ class Article
|
|
10
10
|
validates :summary, presence: true
|
11
11
|
|
12
12
|
embeds_many :pages
|
13
|
+
embeds_one :annotation
|
13
14
|
end
|
14
15
|
|
15
16
|
class Page
|
@@ -34,4 +35,15 @@ class Section
|
|
34
35
|
validates :header, presence: true
|
35
36
|
|
36
37
|
embedded_in :page, inverse_of: :sections
|
38
|
+
end
|
39
|
+
|
40
|
+
class Annotation
|
41
|
+
include Mongoid::Document
|
42
|
+
|
43
|
+
embedded_in :article, inverse_of: :annotation
|
44
|
+
|
45
|
+
field :text, type: String
|
46
|
+
|
47
|
+
validates :text, presence: true
|
48
|
+
|
37
49
|
end
|
metadata
CHANGED
@@ -1,30 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid-embedded-errors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
5
|
-
prerelease:
|
4
|
+
version: 2.0.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mark Bates
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-07-18 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: mongoid
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: 3.0.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
26
|
version: 3.0.0
|
30
27
|
description: Easily bubble up errors from embedded documents in Mongoid.
|
@@ -50,30 +47,30 @@ files:
|
|
50
47
|
- spec/support/models.rb
|
51
48
|
homepage: ''
|
52
49
|
licenses: []
|
50
|
+
metadata: {}
|
53
51
|
post_install_message:
|
54
52
|
rdoc_options: []
|
55
53
|
require_paths:
|
56
54
|
- lib
|
57
55
|
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
56
|
requirements:
|
60
|
-
- -
|
57
|
+
- - '>='
|
61
58
|
- !ruby/object:Gem::Version
|
62
59
|
version: '0'
|
63
60
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
64
|
-
none: false
|
65
61
|
requirements:
|
66
|
-
- -
|
62
|
+
- - '>='
|
67
63
|
- !ruby/object:Gem::Version
|
68
64
|
version: '0'
|
69
65
|
requirements: []
|
70
66
|
rubyforge_project:
|
71
|
-
rubygems_version:
|
67
|
+
rubygems_version: 2.0.3
|
72
68
|
signing_key:
|
73
|
-
specification_version:
|
69
|
+
specification_version: 4
|
74
70
|
summary: Easily bubble up errors from embedded documents in Mongoid.
|
75
71
|
test_files:
|
76
72
|
- spec/config.yml
|
77
73
|
- spec/embedded_errors_spec.rb
|
78
74
|
- spec/spec_helper.rb
|
79
75
|
- spec/support/models.rb
|
76
|
+
has_rdoc:
|