riot-datamapper 0.0.3 → 0.0.4

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.
data/README.md CHANGED
@@ -59,7 +59,7 @@ class Comment
59
59
  property :body, Text
60
60
 
61
61
  belongs_to :post
62
- belongs_to :user
62
+ belongs_to :user, :required => false
63
63
  end
64
64
 
65
65
 
@@ -105,7 +105,7 @@ context "Comment Model" do
105
105
  asserts_topic.has_property :body, 'Text'
106
106
 
107
107
  asserts_topic.has_association :belongs_to, :post
108
- asserts_topic.has_association :belongs_to, :user
108
+ asserts_topic.has_association :belongs_to, :user, :required => false
109
109
  end
110
110
 
111
111
  context "Post Model" do
@@ -27,6 +27,14 @@ module Riot
27
27
  end
28
28
  end
29
29
 
30
+ if options[:required]
31
+ if relationship.instance_variable_get("@required") == options[:required]
32
+ pass_msg << options_msg unless options[:through]
33
+ else
34
+ return fail(fail_msg + options_msg)
35
+ end
36
+ end
37
+
30
38
  if relationship.class.to_s.include?(through_type || MAPPINGS[type])
31
39
  pass_msg << type_msg
32
40
  else
@@ -1,5 +1,5 @@
1
1
  module Riot
2
2
  module Datamapper
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
@@ -28,7 +28,7 @@ context "has_association macro" do
28
28
  property :id, Serial
29
29
 
30
30
  belongs_to :user
31
- belongs_to :post
31
+ belongs_to :post, :required => false
32
32
  end
33
33
  DataMapper.finalize
34
34
  end
@@ -49,10 +49,6 @@ context "has_association macro" do
49
49
  Riot::DataMapper::HasAssociation.new.evaluate(Post,:has_n, :users, :through => :bubbles).first
50
50
  end.equals :fail
51
51
 
52
- asserts "that it passes when the model belongs_to :post" do
53
- Riot::DataMapper::HasAssociation.new.evaluate(Comment, :belongs_to, :post).first
54
- end.equals :pass
55
-
56
52
  asserts "that it fails when the model does not belongs_to :foo" do
57
53
  Riot::DataMapper::HasAssociation.new.evaluate(Comment, :belongs_to, :foo).first
58
54
  end.equals :fail
@@ -69,4 +65,20 @@ context "has_association macro" do
69
65
  Riot::DataMapper::HasAssociation.new.evaluate(Comment, :belongs_to, :user).first
70
66
  end.equals :pass
71
67
 
68
+ asserts "that it passes when the model belongs_to :user" do
69
+ Riot::DataMapper::HasAssociation.new.evaluate(Comment, :belongs_to, :user).first
70
+ end.equals :pass
71
+
72
+ asserts "that it fails when the model belongs_to :wah" do
73
+ Riot::DataMapper::HasAssociation.new.evaluate(Comment, :belongs_to, :wah).first
74
+ end.equals :fail
75
+
76
+ asserts "that it passes when the model belongs_to :post, :required => false" do
77
+ Riot::DataMapper::HasAssociation.new.evaluate(Comment, :belongs_to, :post, :required => false).first
78
+ end.equals :pass
79
+
80
+ asserts "that it fails when the model belongs_to :post, :required => true" do
81
+ Riot::DataMapper::HasAssociation.new.evaluate(Comment, :belongs_to, :post, :required => true).first
82
+ end.equals :fail
83
+
72
84
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: riot-datamapper
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.3
5
+ version: 0.0.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Arthur Chiu
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-15 00:00:00 Z
13
+ date: 2011-07-18 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: riot