Module: LightIO::Module::IO
- Includes:
- Base
- Defined in:
- lib/lightio/module/io.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
-
.convert_to_io(io) ⇒ Object
helper methods.
- .get_io_watcher(io) ⇒ Object
Methods included from Base
Class Method Details
.convert_to_io(io) ⇒ Object
helper methods
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/lightio/module/io.rb', line 11 def convert_to_io(io) unless io.respond_to?(:to_io) raise TypeError, "no implicit conversion of #{io.class} into IO" end to_io = io.is_a?(LightIO::Library::IO) ? io : io.to_io unless to_io.is_a?(LightIO::Library::IO) raise TypeError, "can't convert #{io.class} to IO (#{io.class}#to_io gives #{to_io.class})" unless to_io.is_a?(::IO) # try wrap raw io instead of raise error wrapped_io = to_io.instance_variable_get(:@_lightio_wrapped_io) unless wrapped_io wrapped_io = LightIO::Library::IO._wrap(to_io) to_io.instance_variable_set(:@_lightio_wrapped_io, wrapped_io) end to_io = wrapped_io # raise TypeError, "can't process raw IO, use LightIO::IO._wrap(obj) to wrap it" end to_io end |