Module: IO::Event::Support
- Defined in:
- lib/io/event/support.rb
Class Method Summary collapse
- .buffer? ⇒ Boolean
- .fiber_scheduler_v1? ⇒ Boolean
- .fiber_scheduler_v2? ⇒ Boolean
- .fiber_scheduler_v3? ⇒ Boolean
Class Method Details
.buffer? ⇒ Boolean
9 10 11 |
# File 'lib/io/event/support.rb', line 9 def self.buffer? IO.const_defined?(:Buffer) end |
.fiber_scheduler_v1? ⇒ Boolean
13 14 15 |
# File 'lib/io/event/support.rb', line 13 def self.fiber_scheduler_v1? IO.const_defined?(:Buffer) and !Fiber.respond_to?(:blocking) end |
.fiber_scheduler_v2? ⇒ Boolean
17 18 19 |
# File 'lib/io/event/support.rb', line 17 def self.fiber_scheduler_v2? IO.const_defined?(:Buffer) and Fiber.respond_to?(:blocking) and IO::Buffer.instance_method(:read).arity == -1 end |
.fiber_scheduler_v3? ⇒ Boolean
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/io/event/support.rb', line 21 def self.fiber_scheduler_v3? if fiber_scheduler_v2? return true if RUBY_VERSION >= "3.3" # Feature detection if required: begin IO::Buffer.new.slice(0, 0).write(STDOUT) return true rescue return false end end end |