Class: Orb::Internal::Type::FileInput Abstract Private
- Inherits:
-
Object
- Object
- Orb::Internal::Type::FileInput
- Extended by:
- Converter
- Defined in:
- lib/orb/internal/type/file_input.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Either ‘Pathname` or `StringIO`, or `IO`, or `Orb::Internal::Type::FileInput`.
Note: when ‘IO` is used, all retries are disabled, since many IO` streams are not rewindable.
Class Method Summary collapse
- .==(other) ⇒ Boolean
- .===(other) ⇒ Boolean
- .coerce(value, state:) ⇒ StringIO, Object private
- .dump(value, state:) ⇒ Pathname, ... private
- .to_sorbet_type ⇒ Object private
Methods included from Converter
coerce, dump, inspect, inspect, meta_info, new_coerce_state, type_info
Methods included from Util::SorbetRuntimeSupport
#const_missing, #define_sorbet_constant!, #sorbet_constant_defined?, #to_sorbet_type
Class Method Details
.==(other) ⇒ Boolean
38 |
# File 'lib/orb/internal/type/file_input.rb', line 38 def self.==(other) = other.is_a?(Class) && other <= Orb::Internal::Type::FileInput |
.===(other) ⇒ Boolean
24 25 26 27 28 29 30 31 |
# File 'lib/orb/internal/type/file_input.rb', line 24 def self.===(other) case other in Pathname | StringIO | IO | String | Orb::FilePart true else false end end |
.coerce(value, state:) ⇒ StringIO, Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/orb/internal/type/file_input.rb', line 58 def coerce(value, state:) exactness = state.fetch(:exactness) case value in String exactness[:yes] += 1 StringIO.new(value) in StringIO exactness[:yes] += 1 value else state[:error] = TypeError.new("#{value.class} can't be coerced into #{StringIO}") exactness[:no] += 1 value end end |
.dump(value, state:) ⇒ Pathname, ...
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/orb/internal/type/file_input.rb', line 83 def dump(value, state:) # rubocop:disable Lint/DuplicateBranch case value in IO state[:can_retry] = false in Orb::FilePart if value.content.is_a?(IO) state[:can_retry] = false else end # rubocop:enable Lint/DuplicateBranch value end |
.to_sorbet_type ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
100 101 102 |
# File 'lib/orb/internal/type/file_input.rb', line 100 def to_sorbet_type T.any(Pathname, StringIO, IO, String, Orb::FilePart) end |