Sha256: 480f2b1c5ca877a2cc84b24ebbfc29873530068f1e75c11de5c633ad66e7a336
Contents?: true
Size: 1.49 KB
Versions: 15
Compression:
Stored size: 1.49 KB
Contents
# frozen_string_literal: true module Vedeu module Coercers # Provides the mechanism to convert a value into another value. # # @api private # class Coercer include Vedeu::Common # @param (see #initialize) # @return (see #coerce) def self.coerce(value, attributes = {}) new(value, attributes).coerce end # Returns a new instance of the Vedeu::Coercers::Coercer # subclass. # # @param value [void] # @param attributes [Hash<Symbol => void>] # @return [Vedeu::Coercers::Coercer] def initialize(value, attributes = {}) @value = value @attributes = attributes end # @macro raise_not_implemented def coerce raise Vedeu::Error::NotImplemented end protected # @!attribute [r] attributes # @return [void] attr_reader :attributes # @!attribute [r] value # @return [void] attr_reader :value private # @macro raise_not_implemented def child_klass raise Vedeu::Error::NotImplemented end # @return [Boolean] def coerced? value.is_a?(klass) end # @macro raise_fatal def incoercible! raise Vedeu::Error::Fatal, "Vedeu cannot coerce a '#{value.class.name}' into a '#{klass}'." end # @macro raise_not_implemented def klass raise Vedeu::Error::NotImplemented end end # Coercer end # Coercers end # Vedeu
Version data entries
15 entries across 15 versions & 1 rubygems