Sha256: 56ebfa26208a288cf20e5d4cbbe210628bea045f80e53c74e435db84da5cdd96

Contents?: true

Size: 422 Bytes

Versions: 2

Compression:

Stored size: 422 Bytes

Contents

module Datacaster
  class Transformer < Base
    def initialize(name, &block)
      raise "Expected block" unless block_given?

      @name = name
      @transform = block
    end

    def cast(object)
      intermediary_result = super(object)
      object = intermediary_result.value

      Datacaster.ValidResult(@transform.(object))
    end

    def inspect
      "#<Datacaster::#{@name}Transformer>"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
datacaster-2.0.2 lib/datacaster/transformer.rb
datacaster-2.0.1 lib/datacaster/transformer.rb