Module: T::Private::Casts
- Defined in:
- lib/types/private/casts.rb
Class Method Summary collapse
Class Method Details
.cast(value, type, cast_method:) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/types/private/casts.rb', line 6 def self.cast(value, type, cast_method:) begin error = T::Utils.coerce(type).(value) return value unless error caller_loc = T.must(caller_locations(2..2)).first suffix = "Caller: #{T.must(caller_loc).path}:#{T.must(caller_loc).lineno}" raise TypeError.new("#{cast_method}: #{error}\n#{suffix}") rescue TypeError => e # raise into rescue to ensure e.backtrace is populated T::Configuration.inline_type_error_handler(e) value end end |