common_repository_model 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/Rakefile
CHANGED
@@ -21,7 +21,16 @@ module CommonRepositoryModel
|
|
21
21
|
find({name_s: name}).first
|
22
22
|
end
|
23
23
|
|
24
|
+
def self.find_by_name!(name)
|
25
|
+
find({name_s: name.to_s}).first ||
|
26
|
+
raise(
|
27
|
+
CommonRepositoryModel::ObjectNotFoundError.new(
|
28
|
+
"#{self.class} with name: #{name.to_s} not found"
|
29
|
+
)
|
30
|
+
)
|
31
|
+
end
|
32
|
+
|
24
33
|
# We shouldn't be calling these
|
25
34
|
protected :save, :save!
|
26
35
|
end
|
27
|
-
end
|
36
|
+
end
|
@@ -3,10 +3,6 @@ require 'common_repository_model/area'
|
|
3
3
|
require 'common_repository_model/collection'
|
4
4
|
|
5
5
|
describe CommonRepositoryModel::Area do
|
6
|
-
after(:each) do
|
7
|
-
subject.delete if subject.persisted?
|
8
|
-
end
|
9
|
-
|
10
6
|
describe 'without persisting' do
|
11
7
|
subject { FactoryGirl.build(:area, name: name) }
|
12
8
|
let(:name) { 'My Area Name'}
|
@@ -34,21 +30,28 @@ describe CommonRepositoryModel::Area do
|
|
34
30
|
end
|
35
31
|
|
36
32
|
describe 'integration (with persistence)' do
|
37
|
-
subject { FactoryGirl.create(:area) }
|
38
33
|
let(:collection) { FactoryGirl.build(:collection, area: nil) }
|
39
|
-
it 'should
|
40
|
-
|
41
|
-
|
42
|
-
|
34
|
+
it 'should .find_by_name and .find_by_name!' do
|
35
|
+
with_persisted_area do |area|
|
36
|
+
CommonRepositoryModel::Area.find_by_name(area.name).must_equal area
|
37
|
+
CommonRepositoryModel::Area.
|
38
|
+
find_by_name("#{area.name}-tmp").must_equal nil
|
39
|
+
|
40
|
+
CommonRepositoryModel::Area.find_by_name!(area.name).must_equal area
|
41
|
+
lambda {
|
42
|
+
CommonRepositoryModel::Area.find_by_name!("#{area.name}-tmp")
|
43
|
+
}.must_raise(CommonRepositoryModel::ObjectNotFoundError)
|
44
|
+
end
|
43
45
|
end
|
44
46
|
it 'should save' do
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
47
|
+
with_persisted_area do |area|
|
48
|
+
# Before we can add a collection, the containing object
|
49
|
+
# must be saved
|
50
|
+
area.collections << collection
|
51
|
+
area.send(:save).must_equal true
|
52
|
+
new_area = area.class.find(area.pid)
|
53
|
+
new_area.collections.size.must_equal 1
|
54
|
+
end
|
52
55
|
end
|
53
56
|
end
|
54
57
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: common_repository_model
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|