Sha256: 5797bf2ebb20dd6fd3a3fd617898dcfd2fa47eae05fb935e39037fbedb0013d2
Contents?: true
Size: 1.11 KB
Versions: 1
Compression:
Stored size: 1.11 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 include Vedeu::Common # @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) attributes = Vedeu::Coercers::ColourAttributes.coerce(value) klass.new(attributes) else fail Vedeu::Error::Fatal, 'Vedeu cannot coerce this colour.' end end private # @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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.8.9 | lib/vedeu/coercers/colour.rb |