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) (opts[:pretty_message])
def self.default_checked_level=(default_checked_level)
-
default_checked_level
(:never, :tests, :always
) --
def self.default_checked_level=(default_checked_level) T::Private::RuntimeLevels.default_checked_level = default_checked_level end
def self.enable_checking_for_sigs_marked_checked_tests
method MUST be called before any code calls `sig`. This method raises if
Note: Due to the way sigs are evaluated and methods are wrapped, this
back the original method.
checked. In fact, such methods won't even be wrapped--the runtime will put
If this method is not called, sigs marked `.checked(:tests)` will not be
just a normal sig.
should treat any sigs which are marked `.checked(:tests)` as if they were
Announces to Sorbet that we are currently in a test environment, so it
def self.enable_checking_for_sigs_marked_checked_tests T::Private::RuntimeLevels.enable_checking_in_tests end
def self.enable_final_checks_on_hooks
end
def foo; end
include M
class C
end
def foo; end
sig(:final) {void}
extend T::Sig
module M
```ruby
example will not raise an error.
including and extending modules. Iff this is not called, then the following
Announce to Sorbet that we would like the final checks to be enabled when
def self.enable_final_checks_on_hooks T::Private::Methods.set_final_checks_on_hooks(true) end
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.reset_final_checks_on_hooks
Undo the effects of a previous call to
def self.reset_final_checks_on_hooks T::Private::Methods.set_final_checks_on_hooks(false) end
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)
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")
def self.without_ruby_warnings
- Yield: -
def self.without_ruby_warnings if $VERBOSE begin original_verbose = $VERBOSE $VERBOSE = false yield ensure $VERBOSE = original_verbose end else yield end end