Class: Rex::Ui::Text::Input

Inherits:
Object
  • Object
show all
Includes:
Color
Defined in:
lib/rex/ui/text/input.rb

Overview

This class acts as a base for all input mediums. It defines the interface that will be used by anything that wants to interact with a derived class.

Direct Known Subclasses

IO::BidirectionalPipe, Buffer, Stdio

Defined Under Namespace

Classes: Buffer, Stdio

Constant Summary

Constants included from Color

Color::AnsiAttributes

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Color

#ansi, #colorize, #do_colorize, #substitute_colors

Constructor Details

#initializeInput

Returns a new instance of Input.



23
24
25
26
27
28
29
# File 'lib/rex/ui/text/input.rb', line 23

def initialize
	self.eof = false
	@config = {
		:color => :auto, # true, false, :auto
	}
	super
end

Instance Attribute Details

#configObject

Returns the value of attribute config.



86
87
88
# File 'lib/rex/ui/text/input.rb', line 86

def config
  @config
end

#eofObject

Returns the value of attribute eof.



110
111
112
# File 'lib/rex/ui/text/input.rb', line 110

def eof
  @eof
end

#promptObject

Returns the value of attribute prompt.



110
111
112
# File 'lib/rex/ui/text/input.rb', line 110

def prompt
  @prompt
end

#prompt_charObject

Returns the value of attribute prompt_char.



110
111
112
# File 'lib/rex/ui/text/input.rb', line 110

def prompt_char
  @prompt_char
end

Instance Method Details

#auto_colorObject



98
99
100
101
# File 'lib/rex/ui/text/input.rb', line 98

def auto_color
	return if not @config
	@config[:color] = :auto
end

#disable_colorObject



88
89
90
91
# File 'lib/rex/ui/text/input.rb', line 88

def disable_color
	return if not @config
	@config[:color] = false
end

#enable_colorObject



93
94
95
96
# File 'lib/rex/ui/text/input.rb', line 93

def enable_color
	return if not @config
	@config[:color] = true
end

#eof?Boolean

Has the input medium reached end-of-file?

Returns:

  • (Boolean)


61
62
63
# File 'lib/rex/ui/text/input.rb', line 61

def eof?
	return eof
end

#fdObject

Returns a pollable file descriptor that is associated with this input medium.



69
70
71
# File 'lib/rex/ui/text/input.rb', line 69

def fd
	raise NotImplementedError
end

#getsObject

Gets a line of input



54
55
56
# File 'lib/rex/ui/text/input.rb', line 54

def gets
	raise NotImplementedError
end

#intrinsic_shell?Boolean

Indicates whether or not this input medium is intrinsicly a shell provider. This would indicate whether or not it already expects to have a prompt.

Returns:

  • (Boolean)


78
79
80
# File 'lib/rex/ui/text/input.rb', line 78

def intrinsic_shell?
	false
end

#reset_colorObject



107
108
# File 'lib/rex/ui/text/input.rb', line 107

def reset_color
end

#reset_tab_completionObject

Stub for tab completion reset



41
42
# File 'lib/rex/ui/text/input.rb', line 41

def reset_tab_completion
end

#supports_readlineObject

Whether or not the input medium supports readline.



34
35
36
# File 'lib/rex/ui/text/input.rb', line 34

def supports_readline
	true
end

#sysread(len) ⇒ Object

Calls the underlying system read.



47
48
49
# File 'lib/rex/ui/text/input.rb', line 47

def sysread(len)
	raise NotImplementedError
end

#update_prompt(prompt) ⇒ Object



82
83
84
# File 'lib/rex/ui/text/input.rb', line 82

def update_prompt(new_prompt = '', new_prompt_char = '')
	self.prompt = new_prompt + new_prompt_char
end