Project

General

Profile

Feature #19094

Updated by ioquatix (Samuel Williams) about 2 years ago

``` 
 > sleep(nil) 
 (irb):1:in `sleep': can't convert NilClass into time interval (TypeError) 
 ``` 

 However, I feel that this makes implementing a compatible sleep method a little difficult. 

 ```ruby 
 def sleep(time = nil) 
   if time 
     sleep_some(time) 
   else 
     sleep_forever 
   end 
 end 
 ``` 

 Can we consider allowing `sleep(nil)` and `sleep(false)` to be the same as `sleep()` to simplify this behaviour? 

 Otherwise, it's hard to proxy (e.g. fiber scheduler, or even just a plain old variable argument). 

 e.g. 

 ```ruby 
 class Sleeper 
   def initialize(time = nil) 
     @time = time 
   end 

   def sleep 
     Kernel::sleep(@time) # Hard to get the behaviour of `sleep()` here without explicitly handling/checking. 
   end 
 end 
 ``` 

Back