Module: T::Private::RuntimeLevels
- Defined in:
- lib/types/private/runtime_levels.rb
Overview
Used in ‘sig.checked(level)` to determine when runtime type checking is enabled on a method.
Constant Summary collapse
- LEVELS =
[ # Validate every call in every environment :always, # Validate in tests, but not in production :tests, # Don't even validate in tests, b/c too expensive, # or b/c we fully trust the static typing :never, ].freeze
Class Method Summary collapse
- ._toggle_checking_tests(checked) ⇒ Object
- .check_tests? ⇒ Boolean
- .default_checked_level ⇒ Object
- .default_checked_level=(default_checked_level) ⇒ Object
- .enable_checking_in_tests ⇒ Object
Class Method Details
._toggle_checking_tests(checked) ⇒ Object
53 54 55 |
# File 'lib/types/private/runtime_levels.rb', line 53 def self._toggle_checking_tests(checked) @check_tests = checked end |
.check_tests? ⇒ Boolean
23 24 25 26 27 28 29 30 |
# File 'lib/types/private/runtime_levels.rb', line 23 def self.check_tests? # Assume that this code path means that some `sig.checked(:tests)` # has been wrapped (or not wrapped) already, which is a trapdoor # for toggling `@check_tests`. @wrapped_tests_with_validation = true @check_tests end |
.default_checked_level ⇒ Object
41 42 43 44 |
# File 'lib/types/private/runtime_levels.rb', line 41 def self.default_checked_level @has_read_default_checked_level = true @default_checked_level end |
.default_checked_level=(default_checked_level) ⇒ Object
46 47 48 49 50 51 |
# File 'lib/types/private/runtime_levels.rb', line 46 def self.default_checked_level=(default_checked_level) if @has_read_default_checked_level raise "Set the default checked level earlier. There are already some methods whose sig blocks have evaluated which would not be affected by the new default." end @default_checked_level = default_checked_level end |
.enable_checking_in_tests ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'lib/types/private/runtime_levels.rb', line 32 def self.enable_checking_in_tests if !@check_tests && @wrapped_tests_with_validation raise "Toggle `:tests`-level runtime type checking earlier. " \ "There are already some methods wrapped with `sig.checked(:tests)`." \ end _toggle_checking_tests(true) end |