Sha256: 8ea942239e8847731d46f0bfeae4e00ecc299d018b3ee5398038993edeb0cfe4
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 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(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
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
vedeu-0.8.17 | lib/vedeu/coercers/colour.rb |
vedeu-0.8.16 | lib/vedeu/coercers/colour.rb |