Class: EvilEvents::Shared::TypeConverter::Converter

Inherits:
Object
  • Object
show all
Defined in:
lib/evil_events/shared/type_converter/converter.rb

Overview

Since:

  • 0.2.0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(coercer) ⇒ Converter

Returns a new instance of Converter.

Parameters:

  • coercer (Proc)

Raises:

Since:

  • 0.2.0



17
18
19
20
21
# File 'lib/evil_events/shared/type_converter/converter.rb', line 17

def initialize(coercer)
  raise ArgumentError unless coercer.is_a?(Proc)

  @coercer = coercer
end

Instance Attribute Details

#coercerProc (readonly)

Returns:

  • (Proc)

Since:

  • 0.2.0



11
12
13
# File 'lib/evil_events/shared/type_converter/converter.rb', line 11

def coercer
  @coercer
end

Instance Method Details

#convert(value) ⇒ Mixed

Parameters:

  • value (Mixed)

Returns:

  • (Mixed)

Since:

  • 0.2.0



28
29
30
# File 'lib/evil_events/shared/type_converter/converter.rb', line 28

def convert(value)
  coercer.call(value)
end

#transform_to_type(**options) ⇒ EvilEvents::Shared::Types::Any

Parameters:

  • :default (Hash)

    a customizable set of options

Returns:

  • (EvilEvents::Shared::Types::Any)

See Also:

Since:

  • 0.2.0



38
39
40
41
42
43
# 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