mongoid-included 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/example/controllers/invoices/items_controller.rb +5 -0
- data/example/controllers/invoices/user_controller.rb +5 -0
- data/example/controllers/invoices_controller.rb +3 -0
- data/example/models/invoice/item.rb +8 -0
- data/example/models/invoice/user.rb +8 -0
- data/example/models/invoice.rb +8 -0
- data/example/readme.txt +8 -0
- data/example/routes.rb +5 -0
- data/example/views/application/index.html.erb +0 -0
- data/example/views/invoices/index.html.erb +0 -0
- data/example/views/invoices/items/_item.html.erb +0 -0
- data/example/views/layouts/application.html.erb +0 -0
- data/lib/mongoid-included/document_inclusion.rb +5 -5
- data/lib/mongoid-included/version.rb +1 -1
- data/mongoid-included.gemspec +1 -1
- data/spec/unit/included_spec.rb +13 -11
- metadata +22 -10
data/example/readme.txt
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
this folder contains an exemple of
|
2
|
+
the directory structure you can create with
|
3
|
+
namespaced models organized inside
|
4
|
+
the parent's document folder
|
5
|
+
|
6
|
+
This conventions respects url generation,
|
7
|
+
correct parameter names in form building
|
8
|
+
and template locations, incluing partials
|
data/example/routes.rb
ADDED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -12,9 +12,9 @@ module Mongoid
|
|
12
12
|
|
13
13
|
module ClassMethods
|
14
14
|
def included_in(_model, args = {})
|
15
|
-
raise NotMongoidDocument, "
|
16
|
-
raise NotMongoidDocument, "Parent document must
|
17
|
-
raise DocumentAlreadyIncluded, "
|
15
|
+
raise NotMongoidDocument, "Child document must include Mongoid::Document" unless mongoid_document? self
|
16
|
+
raise NotMongoidDocument, "Parent document must include Mongoid::Document" unless mongoid_document? self.parent
|
17
|
+
raise DocumentAlreadyIncluded, "Child document already included" if inclusion_model
|
18
18
|
embedded_in _model, args
|
19
19
|
self.inclusion_model = true
|
20
20
|
end
|
@@ -60,8 +60,8 @@ module Mongoid
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def verify_dependencies(_model)
|
63
|
-
raise NotMongoidDocument, "
|
64
|
-
raise NotMongoidDocument, "
|
63
|
+
raise NotMongoidDocument, "Parent document must include Mongoid::Document" unless mongoid_document? self
|
64
|
+
raise NotMongoidDocument, "Child document must include Mongoid::Document" unless mongoid_document? model_klass(included_klass(_model))
|
65
65
|
end
|
66
66
|
|
67
67
|
end
|
data/mongoid-included.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
|
22
22
|
s.add_runtime_dependency("activemodel", ["~> 3.1.0.beta1"])
|
23
23
|
s.add_runtime_dependency(%q<mongoid>, ["~> 2.0"])
|
24
|
-
s.add_development_dependency("rspec", ["~> 2.6"])
|
24
|
+
s.add_development_dependency("rspec", ["~> 2.6.0"])
|
25
25
|
s.add_development_dependency("bson_ext", ["~> 1.3"])
|
26
26
|
|
27
27
|
end
|
data/spec/unit/included_spec.rb
CHANGED
@@ -21,7 +21,7 @@ describe "Mongoid::Included" do
|
|
21
21
|
Invoice.relations["items"].class_name.should == "Invoice::Item"
|
22
22
|
end
|
23
23
|
|
24
|
-
it "issues an error if not mongoid document" do
|
24
|
+
it "issues an error if parent is not mongoid document" do
|
25
25
|
Object.const_set "NonMongoidDocument", Class.new
|
26
26
|
NonMongoidDocument.send(:include, Mongoid::DocumentInclusion)
|
27
27
|
NonMongoidDocument.const_set "NonMongoidEmbed", Class.new
|
@@ -29,7 +29,7 @@ describe "Mongoid::Included" do
|
|
29
29
|
NonMongoidDocument.includes_many :non_mongoid_embeds
|
30
30
|
rescue => e
|
31
31
|
e.class.should == Mongoid::DocumentInclusion::NotMongoidDocument
|
32
|
-
e.message.should =~ /
|
32
|
+
e.message.should =~ /Parent document must include Mongoid::Document/
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
@@ -42,7 +42,7 @@ describe "Mongoid::Included" do
|
|
42
42
|
NonMongoidDocument.includes_many :non_mongoid_embeds
|
43
43
|
rescue => e
|
44
44
|
e.class.should == Mongoid::DocumentInclusion::NotMongoidDocument
|
45
|
-
e.message.should =~ /
|
45
|
+
e.message.should =~ /Child document must include Mongoid::Document/
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
@@ -59,28 +59,30 @@ describe "Mongoid::Included" do
|
|
59
59
|
Invoice::Item.relations["invoice"].macro.should == :embedded_in
|
60
60
|
end
|
61
61
|
|
62
|
-
it "issues an error if
|
62
|
+
it "issues an error if child is not mongoid document" do
|
63
63
|
Object.const_set "NonMongoidDocument", Class.new
|
64
|
-
NonMongoidDocument.const_set "
|
64
|
+
NonMongoidDocument.const_set "NonMongoidChild", Class.new
|
65
65
|
NonMongoidDocument.send(:include, Mongoid::Document)
|
66
66
|
NonMongoidDocument.send(:include, Mongoid::DocumentInclusion)
|
67
|
+
NonMongoidDocument::NonMongoidChild.send(:include, Mongoid::DocumentInclusion)
|
67
68
|
begin
|
68
|
-
NonMongoidDocument.included_in :invoice
|
69
|
+
NonMongoidDocument::NonMongoidChild.included_in :invoice
|
69
70
|
rescue => e
|
70
71
|
e.class.should == Mongoid::DocumentInclusion::NotMongoidDocument
|
71
|
-
e.message.should =~ /
|
72
|
+
e.message.should =~ /Child document must include Mongoid::Document/
|
72
73
|
end
|
73
74
|
end
|
74
75
|
|
75
76
|
it "issues an error if parent is not mongoid document" do
|
76
77
|
Object.const_set "NonMongoidDocument", Class.new
|
77
|
-
NonMongoidDocument.const_set "
|
78
|
-
NonMongoidDocument.send(:include, Mongoid::
|
78
|
+
NonMongoidDocument.const_set "NonMongoidChild", Class.new
|
79
|
+
NonMongoidDocument::NonMongoidChild.send(:include, Mongoid::Document)
|
80
|
+
NonMongoidDocument::NonMongoidChild.send(:include, Mongoid::DocumentInclusion)
|
79
81
|
begin
|
80
|
-
NonMongoidDocument.included_in :invoice
|
82
|
+
NonMongoidDocument::NonMongoidChild.included_in :invoice
|
81
83
|
rescue => e
|
82
84
|
e.class.should == Mongoid::DocumentInclusion::NotMongoidDocument
|
83
|
-
e.message.should =~ /
|
85
|
+
e.message.should =~ /Parent document must include Mongoid::Document/
|
84
86
|
end
|
85
87
|
end
|
86
88
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid-included
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ default_executable:
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activemodel
|
17
|
-
requirement: &
|
17
|
+
requirement: &2156553760 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 3.1.0.beta1
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2156553760
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: mongoid
|
28
|
-
requirement: &
|
28
|
+
requirement: &2156553220 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,21 +33,21 @@ dependencies:
|
|
33
33
|
version: '2.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2156553220
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: rspec
|
39
|
-
requirement: &
|
39
|
+
requirement: &2156552720 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version:
|
44
|
+
version: 2.6.0
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *2156552720
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: bson_ext
|
50
|
-
requirement: &
|
50
|
+
requirement: &2156552240 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ~>
|
@@ -55,7 +55,7 @@ dependencies:
|
|
55
55
|
version: '1.3'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2156552240
|
59
59
|
description: Helper to facilitate inclusion of namespaced documents in another Mongoid
|
60
60
|
Document
|
61
61
|
email: angelim@angelim.com.br
|
@@ -71,6 +71,18 @@ files:
|
|
71
71
|
- LICENSE
|
72
72
|
- README.md
|
73
73
|
- Rakefile
|
74
|
+
- example/controllers/invoices/items_controller.rb
|
75
|
+
- example/controllers/invoices/user_controller.rb
|
76
|
+
- example/controllers/invoices_controller.rb
|
77
|
+
- example/models/invoice.rb
|
78
|
+
- example/models/invoice/item.rb
|
79
|
+
- example/models/invoice/user.rb
|
80
|
+
- example/readme.txt
|
81
|
+
- example/routes.rb
|
82
|
+
- example/views/application/index.html.erb
|
83
|
+
- example/views/invoices/index.html.erb
|
84
|
+
- example/views/invoices/items/_item.html.erb
|
85
|
+
- example/views/layouts/application.html.erb
|
74
86
|
- lib/mongoid-included.rb
|
75
87
|
- lib/mongoid-included/document_inclusion.rb
|
76
88
|
- lib/mongoid-included/embedded_name.rb
|