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