class EvilEvents::Shared::TypeConverter::Converter

@api public @since 0.2.0

Attributes

coercer[R]

@return [Proc]

@api public @since 0.2.0

Public Class Methods

new(coercer) click to toggle source

@param coercer [Proc]

@api public @since 0.2.0

# File lib/evil_events/shared/type_converter/converter.rb, line 17
def initialize(coercer)
  raise ArgumentError unless coercer.is_a?(Proc)

  @coercer = coercer
end

Public Instance Methods

convert(value) click to toggle source

@param value [Mixed] @return [Mixed]

@api public @since 0.2.0

# File lib/evil_events/shared/type_converter/converter.rb, line 28
def convert(value)
  coercer.call(value)
end
transform_to_type(**options) click to toggle source

@option :default [Mixed] @return [EvilEvents::Shared::Types::Any]

@see EvilEvents::Shared::TypeConverter::TypeBuilder

@since 0.2.0

# File lib/evil_events/shared/type_converter/converter.rb, line 38
def transform_to_type(**options)
  TypeBuilder.new.tap do |builder|
    builder.append(:constructor, coercer)
    builder.append(:default, options[:default]) if options.key?(:default)
  end.result
end