module Dry::Schema::Macros

Public Instance Methods

call(*args) click to toggle source
Calls superclass method
# File lib/dry/schema/extensions/struct.rb, line 13
def call(*args)
  if args.size >= 1 && args[0].is_a?(::Class) && args[0] <= ::Dry::Struct
    if block_given?
      raise ArgumentError, "blocks are not supported when using "\
                           "a struct class (#{name.inspect} => #{args[0]})"
    end

    super(args[0].schema, *args.drop(1))
    type(schema_dsl.types[name].constructor(args[0]))
  else
    super
  end
end