module T::Configuration
def self.call_validation_error_handler(signature, opts)
def self.call_validation_error_handler(signature, opts) if @call_validation_error_handler @call_validation_error_handler.call(signature, opts) else call_validation_error_handler_default(signature, opts) end end
def self.call_validation_error_handler=(value)
(**opts)
-
:location
(Thread::Backtrace::Location
) -- Location of the -
:value
(Object
) -- Actual param/return value -
:type
(Object
) -- Expected param/return value type -
:name
(Symbol
) -- Param or block param name (nil for return -
:kind
(String
) -- One of: -
:message
(String
) -- Error message
Parameters:
-
opts
(Hash
) -- A hash containing contextual information on the error: -
signature
(T::Private::Methods::Signature
) -- Signature that failed -
value
(Lambda, Proc, Object, nil
) -- Proc that handles the error
def self.call_validation_error_handler=(value) validate_lambda_given!(value) @call_validation_error_handler = value end
def self.call_validation_error_handler_default(signature, opts)
def self.call_validation_error_handler_default(signature, opts) _line = signature.method.source_location cation] {location.path}:#{location.lineno}\n" \ thod_file}:#{method_line}" opts[:kind]}#{opts[:name] ? " '#{opts[:name]}'" : ''}: #{opts[:message]}\n#{suffix}" ted ].class :Enumerable[T.untyped]).describe_obj(opts[:value]) if got < Enumerable log_info_handler( ED", location.path, location.lineno, le: method_file, ne: method_line, ind], ame], s[:type].name, t_notify soft_assert_handler( rror_message}", ure.soft_notify} .new(error_message) => e # raise into rescue to ensure e.backtrace is populated orHandler.handle_inline_type_error(e)
def self.hard_assert_handler(str, extra)
def self.hard_assert_handler(str, extra) if @hard_assert_handler @hard_assert_handler.call(str, extra) else hard_assert_handler_default(str, extra) end end
def self.hard_assert_handler=(value)
-
extra
(Hash
) -- A hash containing additional parameters to be passed along to the handler. -
str
(String
) -- Assertion message -
value
(Lambda, Proc, Object, nil
) -- Proc that handles the error
def self.hard_assert_handler=(value) validate_lambda_given!(value) @hard_assert_handler = value end
def self.hard_assert_handler_default(str, _)
def self.hard_assert_handler_default(str, _)
def self.inline_type_error_handler(error)
def self.inline_type_error_handler(error) if @inline_type_error_handler @inline_type_error_handler.call(error) else inline_type_error_handler_default(error) end end
def self.inline_type_error_handler=(value)
-
error
(TypeError
) -- TypeError that was raised -
value
(Lambda, Proc, Object, nil
) -- Proc that handles the error (pass
def self.inline_type_error_handler=(value) validate_lambda_given!(value) @inline_type_error_handler = value end
def self.inline_type_error_handler_default(error)
def self.inline_type_error_handler_default(error)
def self.log_info_handler(str, extra)
def self.log_info_handler(str, extra) if @log_info_handler @log_info_handler.call(str, extra) else log_info_handler_default(str, extra) end end
def self.log_info_handler=(value)
-
extra
(Hash
) -- A hash containing additional parameters to be passed along to the logger. -
str
(String
) -- Message to be logged -
value
(Lambda, Proc, Object, nil
) -- Proc that handles the error
def self.log_info_handler=(value) validate_lambda_given!(value) @log_info_handler = value end
def self.log_info_handler_default(str, extra)
def self.log_info_handler_default(str, extra) : #{extra}" # rubocop:disable PrisonGuard/NoBarePuts
def self.scalar_types
def self.scalar_types @scalar_types || @default_scalar_types end
def self.scalar_types=(values)
-
value
(String
) -- Class name.
def self.scalar_types=(values) if values.nil? @scalar_tyeps = values else bad_values = values.select {|v| v.class != String} unless bad_values.empty? raise ArgumentError.new("Provided values must all be class name strings.") end @scalar_types = Set.new(values).freeze end end
def self.sig_builder_error_handler(error, location)
def self.sig_builder_error_handler(error, location) if @sig_builder_error_handler @sig_builder_error_handler.call(error, location) else sig_builder_error_handler_default(error, location) end end
def self.sig_builder_error_handler=(value)
-
location
(Thread::Backtrace::Location
) -- Location of the error -
error
(StandardError
) -- The error that was raised -
value
(Lambda, Proc, Object, nil
) -- Proc that handles the error (pass
def self.sig_builder_error_handler=(value) validate_lambda_given!(value) @sig_builder_error_handler = value end
def self.sig_builder_error_handler_default(error, location)
def self.sig_builder_error_handler_default(error, location) .sig_error(location, error.message)
def self.sig_validation_error_handler(error, opts)
def self.sig_validation_error_handler(error, opts) if @sig_validation_error_handler @sig_validation_error_handler.call(error, opts) else sig_validation_error_handler_default(error, opts) end end
def self.sig_validation_error_handler=(value)
(**opts)
-
:super_signature
(T::Private::Methods::Signature, nil
) -- Super -
:signature
(T::Private::Methods::Signature, nil
) -- Signature -
:declaration
(T::Private::Methods::Declaration
) -- Method -
:method
(Method, UnboundMethod
) -- Method on which the signature build failed
Parameters:
-
opts
(Hash
) -- A hash containing contextual information on the error: -
error
(StandardError
) -- The error that was raised -
value
(Lambda, Proc, Object, nil
) -- Proc that handles the error (pass
def self.sig_validation_error_handler=(value) validate_lambda_given!(value) @sig_validation_error_handler = value end
def self.sig_validation_error_handler_default(error, opts)
def self.sig_validation_error_handler_default(error, opts) errides a generated signature, report that one instead method] on].generated opts[:super_signature] uper_signature&.generated r_signature.method _line = bad_method.source_location g_info_handler( ED", : method_file, : method_line, message,
def self.soft_assert_handler(str, extra)
def self.soft_assert_handler(str, extra) if @soft_assert_handler @soft_assert_handler.call(str, extra) else soft_assert_handler_default(str, extra) end end
def self.soft_assert_handler=(value)
-
extra
(Hash
) -- A hash containing additional parameters to be passed along to the handler. -
str
(String
) -- Assertion message -
value
(Lambda, Proc, Object, nil
) -- Proc that handles the error
def self.soft_assert_handler=(value) validate_lambda_given!(value) @soft_assert_handler = value end
def self.soft_assert_handler_default(str, extra)
def self.soft_assert_handler_default(str, extra) : #{extra}" # rubocop:disable PrisonGuard/NoBarePuts
def self.validate_lambda_given!(value)
def self.validate_lambda_given!(value) value.respond_to?(:call) or.new("Provided value must respond to :call")