adf_builder 1.3.0 → 1.4.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/CHANGELOG.md +10 -0
- data/Gemfile.lock +1 -1
- data/lib/adf_builder/nodes/customer.rb +2 -0
- data/lib/adf_builder/nodes/shared.rb +10 -6
- data/lib/adf_builder/nodes/vendor.rb +1 -0
- data/lib/adf_builder/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 440064d9196befba72c7a471b56db7a5b31f28b0521b7d2fbd0588e09fe9d0d9
|
|
4
|
+
data.tar.gz: fd917e6692abc141a2d1aa4e8c84c47b3ce7ce2ea3061cf6006364d8d51dbf9a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a1f11e9074f3a54daa855ac0a1ba732cc7924552ac717efda4f62d2db53aee311d960221eb226a163853a3f7aac52c05feabcdb4b6dc2af554288129123b42ab
|
|
7
|
+
data.tar.gz: 9a0f287c7182b673ce9230d01f609f0644e5e4094117a794aab5fc5f53a96b86f8115dd89357b0f07e7ccf9ff4e8e965128e2fe06aa6c9a3d6a1f6da9b906f7a
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
## [1.4.0] - 2026-01-19
|
|
2
|
+
- **Vendor & Customer Validation Improvements**:
|
|
3
|
+
- `Vendor`: Now requires `vendorname` and `contact`.
|
|
4
|
+
- `Customer`: Now requires `contact`.
|
|
5
|
+
- `Contact`: Refactored to use declarative `validates_presence_of :name` (previously manual check).
|
|
6
|
+
- Added comprehensive specs for new presence validations.
|
|
7
|
+
|
|
8
|
+
## [1.3.1] - 2026-01-19
|
|
9
|
+
- **Validation Refinement**: `Address` now strictly enforces 1 to 5 `street` lines.
|
|
10
|
+
|
|
1
11
|
## [1.3.0] - 2026-01-19
|
|
2
12
|
- **Customer & Contact Validations**:
|
|
3
13
|
- `Contact`: Requires Name and at least one Phone or Email.
|
data/Gemfile.lock
CHANGED
|
@@ -66,10 +66,16 @@ module AdfBuilder
|
|
|
66
66
|
@attributes[:type] = type if type
|
|
67
67
|
end
|
|
68
68
|
|
|
69
|
-
def
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
def validate!
|
|
70
|
+
super
|
|
71
|
+
streets = @children.select { |c| c.tag_name == :street }
|
|
72
|
+
raise AdfBuilder::Error, "Address must have at least one street line" if streets.empty?
|
|
73
|
+
return unless streets.size > 5
|
|
72
74
|
|
|
75
|
+
raise AdfBuilder::Error, "Address can have at most 5 street lines"
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def street(value, line: nil)
|
|
73
79
|
node = GenericNode.new(:street, { line: line }.compact, value)
|
|
74
80
|
add_child(node)
|
|
75
81
|
end
|
|
@@ -88,6 +94,7 @@ module AdfBuilder
|
|
|
88
94
|
|
|
89
95
|
class Contact < Node
|
|
90
96
|
validates_inclusion_of :primarycontact, in: [0, 1, "0", "1"]
|
|
97
|
+
validates_presence_of :name
|
|
91
98
|
|
|
92
99
|
def initialize(primary_contact: nil)
|
|
93
100
|
super()
|
|
@@ -97,9 +104,6 @@ module AdfBuilder
|
|
|
97
104
|
|
|
98
105
|
def validate!
|
|
99
106
|
super
|
|
100
|
-
# Custom Validation: Name is required
|
|
101
|
-
raise AdfBuilder::Error, "Contact must have a Name" unless @children.any? { |c| c.tag_name == :name }
|
|
102
|
-
|
|
103
107
|
# Custom Validation: At least one Phone OR Email
|
|
104
108
|
return if @children.any? { |c| %i[phone email].include?(c.tag_name) }
|
|
105
109
|
|
data/lib/adf_builder/version.rb
CHANGED