govuk_elements_form_builder 0.0.2 → 0.0.3
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: 2fd74da74ab30234815107cffece6456ee7aa1c8
|
4
|
+
data.tar.gz: 0033ba79bac042304bd9d54d3223300c8299f550
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eefccc8724fe53d9c0d0b18c9b0fc6248510e62fafb91d2c22aae4877381a7d5d27473f04a818f47872d880fdb24e3fdd5866d71f0de619fdae2871f90c6a375
|
7
|
+
data.tar.gz: 998622aee024ff43f0777839a41ae4ceab91548acea038436733df4f60f5794d59a853b0fe0fb36dcd57e494fc95a59173af868d348eb7ce642025392863b070
|
@@ -22,10 +22,13 @@ module GovukElementsErrorsHelper
|
|
22
22
|
attributes(object).any? { |child| errors_exist?(child) }
|
23
23
|
end
|
24
24
|
|
25
|
-
def self.attributes object
|
25
|
+
def self.attributes object, parent_object=nil
|
26
|
+
return [] if object == parent_object
|
27
|
+
parent_object ||= object
|
28
|
+
|
26
29
|
child_objects = attribute_objects object
|
27
|
-
nested_child_objects = child_objects.map { |o| attributes(o) }
|
28
|
-
(child_objects + nested_child_objects).flatten
|
30
|
+
nested_child_objects = child_objects.map { |o| attributes(o, parent_object) }
|
31
|
+
(child_objects + nested_child_objects).flatten - [object]
|
29
32
|
end
|
30
33
|
|
31
34
|
def self.attribute_objects object
|
@@ -35,21 +38,47 @@ module GovukElementsErrorsHelper
|
|
35
38
|
compact
|
36
39
|
end
|
37
40
|
|
38
|
-
def self.
|
41
|
+
def self.array_to_parent list, object, child_to_parents={}, parent_object
|
42
|
+
list.each do |child|
|
43
|
+
child_to_parents[child] = object
|
44
|
+
child_to_parent child, child_to_parents, parent_object
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.child_to_parent object, child_to_parents={}, parent_object=nil
|
49
|
+
return child_to_parents if object == parent_object
|
50
|
+
parent_object ||= object
|
51
|
+
|
39
52
|
attribute_objects(object).each do |child|
|
40
|
-
|
41
|
-
|
53
|
+
if child.is_a?(Array)
|
54
|
+
array_to_parent(child, object, child_to_parents, parent_object)
|
55
|
+
else
|
56
|
+
child_to_parents[child] = object
|
57
|
+
child_to_parent child, child_to_parents, parent_object
|
58
|
+
end
|
42
59
|
end
|
43
|
-
|
60
|
+
|
61
|
+
child_to_parents
|
44
62
|
end
|
45
63
|
|
46
64
|
def self.instance_variable object, var
|
47
65
|
field = var.to_s.sub('@','').to_sym
|
48
|
-
|
66
|
+
if object.respond_to?(field)
|
67
|
+
child = object.send(field)
|
68
|
+
if respond_to_errors?(child) || child.is_a?(Array)
|
69
|
+
child
|
70
|
+
else
|
71
|
+
nil
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.respond_to_errors? object
|
77
|
+
object && object.respond_to?(:errors)
|
49
78
|
end
|
50
79
|
|
51
80
|
def self.errors_present? object
|
52
|
-
|
81
|
+
respond_to_errors?(object) && object.errors.present?
|
53
82
|
end
|
54
83
|
|
55
84
|
def self.children_with_errors object
|
@@ -128,8 +157,8 @@ module GovukElementsErrorsHelper
|
|
128
157
|
def self.parents_list object, child_to_parents
|
129
158
|
if parent = child_to_parents[object]
|
130
159
|
[].tap do |parents|
|
131
|
-
while parent
|
132
|
-
parents.unshift parent
|
160
|
+
while parent && !parents.include?(parent)
|
161
|
+
parents.unshift parent # prepends parent to front of parents
|
133
162
|
parent = child_to_parents[parent]
|
134
163
|
end
|
135
164
|
end
|
@@ -208,7 +208,9 @@ module GovukElementsFormBuilder
|
|
208
208
|
end
|
209
209
|
|
210
210
|
def error_for? attribute
|
211
|
-
|
211
|
+
object.respond_to?(:errors) &&
|
212
|
+
errors.messages.key?(attribute) &&
|
213
|
+
!errors.messages[attribute].empty?
|
212
214
|
end
|
213
215
|
|
214
216
|
private_class_method def self.object_attribute_for field, object_name
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk_elements_form_builder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alistair Laing
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-03-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|