lib/rice_bubble/attributes/any.rb in rice_bubble-0.1.2 vs lib/rice_bubble/attributes/any.rb in rice_bubble-0.2.0
- old
+ new
@@ -10,24 +10,19 @@
def valid?(value)
!which(value).nil?
end
- def validate!(value, path:, **)
- member = which(value)
- return unless member.nil?
-
- expected = "one of [#{members.map(&:description).join(", ")}]"
- raise ValidationError,
- "#{path} expected #{expected} but received #{value.inspect}"
+ def call(value, path: '')
+ super(which(value)&.call(value, path:) || value, path:)
end
- def coerce(value)
- which(value)&.coerce(value) || value
- end
-
def which(value)
members.find { |member| member.valid?(value) }
+ end
+
+ def description
+ "one of [#{members.map(&:description).join(", ")}]"
end
end
end
end