Sha256: 8e2775920837968d47810e969691c0de32656f3c54790f5c78d6ea2566440c2e
Contents?: true
Size: 1.07 KB
Versions: 5
Compression:
Stored size: 1.07 KB
Contents
# frozen_string_literal: true module Vedeu module Coercers # Converts a given value into a {Vedeu::Colours::Colour} if # possible. # # @api private # class Colour < Vedeu::Coercers::Coercer # @macro raise_fatal # @return [void] def coerce if coerced? value elsif absent?(value) klass.new elsif background? klass.new(background: value) elsif foreground? klass.new(foreground: value) elsif hash?(value) klass.new(attributes) else incoercible! end end private # @return [Hash] def attributes Vedeu::Coercers::ColourAttributes.coerce(value) end # @return [Boolean] def background? value.is_a?(Vedeu::Colours::Background) end # @return [Boolean] def foreground? value.is_a?(Vedeu::Colours::Foreground) end # @return [Class] def klass Vedeu::Colours::Colour end end # Colour end # Coercers end # Vedeu
Version data entries
5 entries across 5 versions & 1 rubygems