somehow_has_relation 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
data/lib/somehow_has_relation.rb
CHANGED
@@ -19,8 +19,12 @@ module SomehowHasRelation
|
|
19
19
|
|
20
20
|
# Dynamic Instance Method related_%{relation_name}
|
21
21
|
define_method(related) do
|
22
|
-
|
23
|
-
|
22
|
+
begin
|
23
|
+
somehow_got = params[:through] ? somehow_look_for(relation, params[:through]) : send_and_filter(relation, filter)
|
24
|
+
to_flatten ? somehow_got.flatten : somehow_got
|
25
|
+
rescue
|
26
|
+
[] if params[:many]
|
27
|
+
end
|
24
28
|
end
|
25
29
|
end
|
26
30
|
|
@@ -124,4 +124,18 @@ class SomehowHasRelationTest < ActiveSupport::TestCase
|
|
124
124
|
assert_equal comments1, @author.related_bio_comments
|
125
125
|
assert_equal comments2, @author.related_posts_comments
|
126
126
|
end
|
127
|
+
|
128
|
+
test "when there is no :one related, return nil" do
|
129
|
+
@post = Post.create
|
130
|
+
Post.somehow_has :one => :author
|
131
|
+
|
132
|
+
assert_nil @post.related_author
|
133
|
+
end
|
134
|
+
|
135
|
+
test "when there is no :many related, return []" do
|
136
|
+
@post = Post.create
|
137
|
+
Post.somehow_has :many => :comments
|
138
|
+
|
139
|
+
assert_equal [], @post.related_comments
|
140
|
+
end
|
127
141
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: somehow_has_relation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Matteo Latini
|