Sha256: a06bc9050c23fab94758b76353c8ef6d82fd0617b6099a5fe1449e6e17ffee87
Contents?: true
Size: 551 Bytes
Versions: 2
Compression:
Stored size: 551 Bytes
Contents
module RiceBubble class Attributes class Any < Base attr_reader :members def initialize(*members, &) super(&) @members = members.flatten end def valid?(value) !which(value).nil? end def call(value, path: '') super(which(value)&.call(value, path:) || value, path:) end def which(value) members.find { |member| member.valid?(value) } end def description "one of [#{members.map(&:description).join(", ")}]" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rice_bubble-0.2.1 | lib/rice_bubble/attributes/any.rb |
rice_bubble-0.2.0 | lib/rice_bubble/attributes/any.rb |