 dc71b7c8f6
			
		
	
	
		dc71b7c8f6
		
			
		
	
	
	
	
		
			
			- move some things out of `extend` that don't really fit there e.g. `Module`s that are included but not doing any overriding/monkeypatching - move some code into `extend/os` to fix all remaining `rubocop:todo Homebrew/MoveToExtendOS`s - remove some unneeded `bundle` skipper code that doesn't really make sense given our current bottling strategy - extract some `Pathname` extensions to `extend/pathname` for separate files - move a `ENV` `Kernel` extension into `kernel.rb` - `odeprecate` a seemingly unused backwards compatibility method - move `readline_nonblock` from a monkeypatch to a `ReadlineNonblock.read` method as its only used in one place - fix up a link in documentation
		
			
				
	
	
		
			26 lines
		
	
	
		
			435 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			435 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # typed: strict
 | |
| # frozen_string_literal: true
 | |
| 
 | |
| class ReadlineNonblock
 | |
|   sig { params(io: IO).returns(String) }
 | |
|   def self.read(io)
 | |
|     line = +""
 | |
|     buffer = +""
 | |
| 
 | |
|     begin
 | |
|       loop do
 | |
|         break if buffer == $INPUT_RECORD_SEPARATOR
 | |
| 
 | |
|         io.read_nonblock(1, buffer)
 | |
|         line.concat(buffer)
 | |
|       end
 | |
| 
 | |
|       line.freeze
 | |
|     rescue IO::WaitReadable, EOFError
 | |
|       raise if line.empty?
 | |
| 
 | |
|       line.freeze
 | |
|     end
 | |
|   end
 | |
| end
 |