Sha256: 0a335526a89ffc69171cd25b8d7a19b86e032264ee09c06e2e8967fc167d1892

Contents?: true

Size: 481 Bytes

Versions: 4

Compression:

Stored size: 481 Bytes

Contents

# frozen_string_literal: true

require 'dry-struct'
require_relative 'types'

module WeShipClient
  module Entities
    class Base < Dry::Struct
      transform_keys(&:to_sym)

      # This sets dry types to use the default value when nil is passed
      transform_types do |type|
        if type.default?
          type.constructor do |value|
            value.nil? ? Dry::Types::Undefined : value
          end
        else
          type
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
we_ship_client-1.2.0 lib/we_ship_client/entities/base.rb
we_ship_client-1.1.1 lib/we_ship_client/entities/base.rb
we_ship_client-1.1.0 lib/we_ship_client/entities/base.rb
we_ship_client-1.0.0 lib/we_ship_client/entities/base.rb