Sha256: d3edd73332a6c83398ada9e9f83faeda6af733066b53e72427fed013ea9d8486
Contents?: true
Size: 1.1 KB
Versions: 15
Compression:
Stored size: 1.1 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 [Vedeu::Colours::Colour] 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(colour_attributes) else incoercible! end end private # @return [Hash] def colour_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
15 entries across 15 versions & 1 rubygems