datamapa 1.0.1 → 1.1.0
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 +4 -4
- data/lib/datamapa/version.rb +1 -1
- data/lib/datamapa.rb +9 -0
- data/spec/datamapa/datamapa_spec.rb +21 -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: 8e917084badaf650175757ecdd386e8aeab8fb2f
|
4
|
+
data.tar.gz: 18ad105bd4dac4a470cfb40ea4f1e4d4fb9118d3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e44fc689ecd1e0850381efb77d604976b5f780b5d1dab641e79139536f69b693a241643aa21df2f19b54d7462b75d41e2500e3de912f4b05b99b30d2e582435f
|
7
|
+
data.tar.gz: c4ed826adc1a9ee45b318dec04270b17fff740b444dad88a7bdf2a998428626e5248194f8cbc1f37a574383fdc9dd344d7dca41dafa493c79dd9f140ebf99344
|
data/lib/datamapa/version.rb
CHANGED
data/lib/datamapa.rb
CHANGED
@@ -53,6 +53,15 @@ module DataMapa
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
+
def exists?(model)
|
57
|
+
if model.id.nil?
|
58
|
+
load_id_with_semantic_key(model) unless @semantic_key.nil?
|
59
|
+
!model.id.nil?
|
60
|
+
else
|
61
|
+
@ar_class.exists?(model.id)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
56
65
|
def where(clause)
|
57
66
|
records = @ar_class.where(clause)
|
58
67
|
records.map do |ar|
|
@@ -322,6 +322,27 @@ describe DataMapa do
|
|
322
322
|
model.id.must_equal id
|
323
323
|
end
|
324
324
|
|
325
|
+
it "checks existence with technical key" do
|
326
|
+
model = model_class.new
|
327
|
+
model.id = 1
|
328
|
+
|
329
|
+
ar_class.stubs(:exists?).with(model.id).returns(true)
|
330
|
+
|
331
|
+
mapper.exists?(model).must_equal true
|
332
|
+
end
|
333
|
+
|
334
|
+
it "checks existence with semantic key" do
|
335
|
+
model = model_class.new
|
336
|
+
model.key1 = 10
|
337
|
+
model.key2 = 20
|
338
|
+
|
339
|
+
tech_key = 100
|
340
|
+
|
341
|
+
ar_class.stubs(:find_by).with(key1: 10, key2: 20).returns(ar_class.new(tech_key))
|
342
|
+
|
343
|
+
mapper.exists?(model).must_equal true
|
344
|
+
model.id.must_equal tech_key
|
345
|
+
end
|
325
346
|
end
|
326
347
|
|
327
348
|
describe "composition" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datamapa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yosuke Doi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|