class HighLine::Simulate
Simulates Highline input for use in tests.
Public Class Methods
new(strings)
click to toggle source
Creates a simulator with an array of Strings as a script
# File lib/highline/simulate.rb, line 15 def initialize(strings) @strings = strings end
with(*strings) { || ... }
click to toggle source
A wrapper method that temporarily replaces the Highline instance in $terminal with an instance of this object for the duration of the block
# File lib/highline/simulate.rb, line 40 def self.with(*strings) @input = $terminal.instance_variable_get :@input $terminal.instance_variable_set :@input, new(strings) yield ensure $terminal.instance_variable_set :@input, @input end
Public Instance Methods
eof?()
click to toggle source
The simulator handles its own EOF
# File lib/highline/simulate.rb, line 35 def eof? false end
getbyte()
click to toggle source
Simulate StringIO#getbyte by shifting a single character off of the next line of the script
# File lib/highline/simulate.rb, line 25 def getbyte line = gets if line.length > 0 char = line.slice! 0 @strings.unshift line char end end
gets()
click to toggle source
Simulate StringIO#gets by shifting a string off of the script
# File lib/highline/simulate.rb, line 20 def gets @strings.shift end