active_mocker 2.3.0 → 2.3.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b786f26685352ec1315bf5b715c7b2ffdcd37df6
|
4
|
+
data.tar.gz: f70eee54d0a03d5f4fe13a1a5aa077dd11de19da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1566d93d8b03eb55856f62e03275da366218a40929d04be9c95140ea7791c6f71fe2bc83fd8bfbed2bfdbf6e19d34f96898c5e9be7567d965c3739b7265ef9f
|
7
|
+
data.tar.gz: ca35c36eed333a2f64777241a968bfd19c937b6914154ee8d6743f1640c40344992afdcaa2dbea67bb26a165ceee976b41400a679773fcfc96288ad6a925949d
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
|
4
|
+
## 2.3.1 - 2016-09-26
|
5
|
+
### Fix
|
6
|
+
- `create_<association>` failed to set the foreign key.
|
7
|
+
|
8
|
+
### Enhancement
|
9
|
+
- Specific ActiveMocker exceptions now all inherit from `ActiveMocker::BaseError`
|
10
|
+
|
4
11
|
## 2.3.0 - 2016-08-29
|
5
12
|
### Feature
|
6
13
|
- Added `#first_or_create`, `#first_or_create!`, and `#first_or_initialize`
|
@@ -105,8 +105,11 @@ module ActiveMocker
|
|
105
105
|
@@built_types[type] ||= Virtus::Attribute.build(type)
|
106
106
|
end
|
107
107
|
|
108
|
-
def classes(klass)
|
109
|
-
ActiveMocker::LoadedMocks.find(klass)
|
108
|
+
def classes(klass, fail_hard=false)
|
109
|
+
ActiveMocker::LoadedMocks.find(klass).tap do |found_class|
|
110
|
+
raise MockNotLoaded, "The ActiveMocker version of #{klass} is not required." if fail_hard && !found_class
|
111
|
+
found_class
|
112
|
+
end
|
110
113
|
end
|
111
114
|
|
112
115
|
# @param [Array<ActiveMocker::Base>] collection, an array of mock instances
|
@@ -152,8 +155,8 @@ module ActiveMocker
|
|
152
155
|
|
153
156
|
private :call_mock_method
|
154
157
|
|
155
|
-
def classes(klass)
|
156
|
-
self.class.send(:classes, klass)
|
158
|
+
def classes(klass, fail_hard = false)
|
159
|
+
self.class.send(:classes, klass, fail_hard)
|
157
160
|
end
|
158
161
|
|
159
162
|
private :classes
|
@@ -1,6 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
module ActiveMocker
|
3
|
-
class
|
3
|
+
class BaseError < StandardError
|
4
|
+
end
|
5
|
+
class RecordNotFound < BaseError
|
4
6
|
end
|
5
7
|
|
6
8
|
module Mock
|
@@ -8,7 +10,7 @@ module ActiveMocker
|
|
8
10
|
RecordNotFound = ActiveMocker::RecordNotFound
|
9
11
|
end
|
10
12
|
|
11
|
-
class IdError <
|
13
|
+
class IdError < BaseError
|
12
14
|
end
|
13
15
|
|
14
16
|
# Raised when unknown attributes are supplied via mass assignment.
|
@@ -22,15 +24,18 @@ module ActiveMocker
|
|
22
24
|
end
|
23
25
|
end
|
24
26
|
|
25
|
-
class UpdateMocksError <
|
27
|
+
class UpdateMocksError < BaseError
|
26
28
|
def initialize(name, mock_version, gem_version)
|
27
29
|
super("#{name} was built with #{mock_version} but the gem version is #{gem_version}. Run `rake active_mocker:build` to update.")
|
28
30
|
end
|
29
31
|
end
|
30
32
|
|
31
|
-
class NotImplementedError <
|
33
|
+
class NotImplementedError < BaseError
|
34
|
+
end
|
35
|
+
|
36
|
+
class Error < BaseError
|
32
37
|
end
|
33
38
|
|
34
|
-
class
|
39
|
+
class MockNotLoaded < BaseError
|
35
40
|
end
|
36
41
|
end
|
@@ -15,16 +15,14 @@ read_association(:<%= meth.name %>) || write_association(:<%= meth.name %>, clas
|
|
15
15
|
def build_<%= meth.name %>(attributes={}, &block)
|
16
16
|
<% association = relation_find(:name, meth.name).first -%>
|
17
17
|
<% if association -%>
|
18
|
-
|
19
|
-
write_association(:<%= meth.name %>, association) unless association.nil?
|
18
|
+
self.<%= meth.name %> = classes('<%= association.class_name %>', true).new(attributes, &block)
|
20
19
|
<% end -%>
|
21
20
|
end
|
22
21
|
|
23
22
|
def create_<%= meth.name %>(attributes={}, &block)
|
24
23
|
<% association = relation_find(:name, meth.name).first -%>
|
25
24
|
<% if association -%>
|
26
|
-
|
27
|
-
write_association(:<%= meth.name %>, association) unless association.nil?
|
25
|
+
self.<%= meth.name %> = classes('<%= association.class_name %>', true).create(attributes, &block)
|
28
26
|
<% end -%>
|
29
27
|
end
|
30
28
|
alias_method :create_<%= meth.name %>!, :create_<%= meth.name %>
|
@@ -45,14 +43,14 @@ end
|
|
45
43
|
def build_<%= meth.name %>(attributes={}, &block)
|
46
44
|
<% association = relation_find(:name, meth.name).first -%>
|
47
45
|
<% if association -%>
|
48
|
-
|
46
|
+
self.<%= meth.name %>= classes('<%= association.class_name %>', true).new(attributes, &block)
|
49
47
|
<% end -%>
|
50
48
|
end
|
51
49
|
|
52
50
|
def create_<%= meth.name %>(attributes={}, &block)
|
53
51
|
<% association = relation_find(:name, meth.name).first -%>
|
54
52
|
<% if association -%>
|
55
|
-
|
53
|
+
self.<%= meth.name %>= classes('<%= association.class_name %>', true).new(attributes, &block)
|
56
54
|
<% end -%>
|
57
55
|
end
|
58
56
|
alias_method :create_<%= meth.name %>!, :create_<%= meth.name %>
|
@@ -79,4 +77,4 @@ end
|
|
79
77
|
def <%= meth.name %>=(val)
|
80
78
|
write_association(:<%= meth.name %>, ActiveMocker::HasAndBelongsToMany.new(val))
|
81
79
|
end
|
82
|
-
<% end -%>
|
80
|
+
<% end -%>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_mocker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dustin Zeisler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|