composite_primary_keys 7.0.6 → 7.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.rdoc +9 -1
- data/lib/composite_primary_keys/relation/finder_methods.rb +22 -1
- data/lib/composite_primary_keys/version.rb +1 -1
- data/test/test_find.rb +28 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df048b0184c228678c8e77400bc92ec63f54c008
|
4
|
+
data.tar.gz: 01f520e6e90a9216c0d76e2174703ae9a2f0edbb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db16567e55619423e804aeaed7f094d133af909875ad09ed59b8e52da55bae3e3aaeecf710cffc88423ed41dc90a4c31e43492ab8981c6088279c7b8b472a8e8
|
7
|
+
data.tar.gz: f526cdb914772be1e606fd7ec496829b29ed5682a29cbbddf19f19bd4cc6606f621726d7571a71df9ecf436a06392a148db878621576a086690e14eadbd2889c
|
data/History.rdoc
CHANGED
@@ -1,6 +1,14 @@
|
|
1
|
+
== 7.0.7 (2014-07-29)
|
2
|
+
|
3
|
+
* Add back support for calling find like this (Sammy Larbi):
|
4
|
+
|
5
|
+
Membership.find('1,1')
|
6
|
+
|
7
|
+
|
1
8
|
== 7.0.6 (2014-07-22)
|
2
9
|
|
3
|
-
* Change the way we override ActiveRecord::Persistence to call sequence of included modules
|
10
|
+
* Change the way we override ActiveRecord::Persistence to call sequence of included modules such
|
11
|
+
as callbacks (Charlie Savage)
|
4
12
|
|
5
13
|
== 7.0.5 (2014-07-21)
|
6
14
|
|
@@ -77,6 +77,8 @@ module CompositePrimaryKeys
|
|
77
77
|
end
|
78
78
|
|
79
79
|
def find_with_ids(*ids)
|
80
|
+
# CPK handle strings that come w/ calling to_param on CPK-enabled models
|
81
|
+
ids = parse_ids(ids)
|
80
82
|
raise UnknownPrimaryKey.new(@klass) if primary_key.nil?
|
81
83
|
|
82
84
|
expects_array = ids.first.kind_of?(Array)
|
@@ -84,7 +86,6 @@ module CompositePrimaryKeys
|
|
84
86
|
|
85
87
|
# CPK - don't do this, we want an array of arrays
|
86
88
|
#ids = ids.flatten.compact.uniq
|
87
|
-
|
88
89
|
case ids.size
|
89
90
|
when 0
|
90
91
|
raise RecordNotFound, "Couldn't find #{@klass.name} without an ID"
|
@@ -170,6 +171,26 @@ module CompositePrimaryKeys
|
|
170
171
|
raise_record_not_found_exception!(ids, result.size, expected_size)
|
171
172
|
end
|
172
173
|
end
|
174
|
+
|
175
|
+
private
|
176
|
+
def parse_ids(ids)
|
177
|
+
result = []
|
178
|
+
ids.each do |id|
|
179
|
+
if id.is_a?(String)
|
180
|
+
if id.index(",")
|
181
|
+
result << [id.split(",")]
|
182
|
+
else
|
183
|
+
result << [id]
|
184
|
+
end
|
185
|
+
elsif id.is_a?(Array) && id.count > 1 && id.first.to_s.index(",")
|
186
|
+
result << id.map{|subid| subid.split(",")}
|
187
|
+
else
|
188
|
+
result << [id]
|
189
|
+
end
|
190
|
+
end
|
191
|
+
result = result.flatten(1)
|
192
|
+
return result
|
193
|
+
end
|
173
194
|
end
|
174
195
|
end
|
175
196
|
end
|
data/test/test_find.rb
CHANGED
@@ -20,6 +20,10 @@ class TestFind < ActiveSupport::TestCase
|
|
20
20
|
ref_code = ReferenceCode.find([1,3])
|
21
21
|
assert_not_nil(ref_code)
|
22
22
|
assert_equal([1,3], ref_code.id)
|
23
|
+
|
24
|
+
ref_code = ReferenceCode.find(1,3)
|
25
|
+
assert_not_nil(ref_code)
|
26
|
+
assert_equal([1,3], ref_code.id)
|
23
27
|
end
|
24
28
|
|
25
29
|
def test_find_some
|
@@ -91,4 +95,28 @@ class TestFind < ActiveSupport::TestCase
|
|
91
95
|
employees = Employee.where(:department => department)
|
92
96
|
assert_equal(2, employees.count)
|
93
97
|
end
|
98
|
+
|
99
|
+
def test_find_one_with_params_id
|
100
|
+
params_id = ReferenceCode.find([1,3]).to_param
|
101
|
+
assert_equal params_id, "1,3"
|
102
|
+
|
103
|
+
ref_code = ReferenceCode.find(params_id)
|
104
|
+
assert_not_nil(ref_code)
|
105
|
+
assert_equal([1,3], ref_code.id)
|
106
|
+
end
|
107
|
+
|
108
|
+
def test_find_some_with_array_of_params_id
|
109
|
+
params_ids = ReferenceCode.find([1,3], [2,1]).map(&:to_param)
|
110
|
+
assert_equal ["1,3", "2,1"], params_ids
|
111
|
+
|
112
|
+
ref_codes = ReferenceCode.find(params_ids)
|
113
|
+
assert_kind_of(Array, ref_codes)
|
114
|
+
assert_equal(2, ref_codes.length)
|
115
|
+
|
116
|
+
ref_code = ref_codes[0]
|
117
|
+
assert_equal([1,3], ref_code.id)
|
118
|
+
|
119
|
+
ref_code = ref_codes[1]
|
120
|
+
assert_equal([2,1], ref_code.id)
|
121
|
+
end
|
94
122
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: composite_primary_keys
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.0.
|
4
|
+
version: 7.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charlie Savage
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|