Class: Rex::Ui::Text::Shell::HistoryManager
- Inherits:
-
Object
- Object
- Rex::Ui::Text::Shell::HistoryManager
- Defined in:
- lib/rex/ui/text/shell/history_manager.rb
Constant Summary collapse
- MAX_HISTORY =
2000
Instance Method Summary collapse
- #_contexts ⇒ Object
- #_debug=(value) ⇒ Object
-
#flush ⇒ Object
Flush the contents of the write queue to disk.
-
#initialize ⇒ HistoryManager
constructor
A new instance of HistoryManager.
- #inspect ⇒ Object
-
#with_context(history_file: nil, name: nil, &block) ⇒ nil
Create a new history command context when executing the given block.
Constructor Details
#initialize ⇒ HistoryManager
Returns a new instance of HistoryManager.
14 15 16 17 18 19 |
# File 'lib/rex/ui/text/shell/history_manager.rb', line 14 def initialize @contexts = [] @debug = false @write_queue = ::Queue.new @currently_processing = ::Queue.new end |
Instance Method Details
#_contexts ⇒ Object
52 53 54 |
# File 'lib/rex/ui/text/shell/history_manager.rb', line 52 def _contexts @contexts end |
#_debug=(value) ⇒ Object
56 57 58 |
# File 'lib/rex/ui/text/shell/history_manager.rb', line 56 def _debug=(value) @debug = value end |
#flush ⇒ Object
Flush the contents of the write queue to disk. Blocks synchronously.
40 41 42 43 44 45 46 |
# File 'lib/rex/ui/text/shell/history_manager.rb', line 40 def flush until @write_queue.empty? && @currently_processing.empty? sleep 0.1 end nil end |
#inspect ⇒ Object
48 49 50 |
# File 'lib/rex/ui/text/shell/history_manager.rb', line 48 def inspect "#<HistoryManager stack size: #{@contexts.length}>" end |
#with_context(history_file: nil, name: nil, &block) ⇒ nil
Create a new history command context when executing the given block
27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/rex/ui/text/shell/history_manager.rb', line 27 def with_context(history_file: nil, name: nil, &block) push_context(history_file: history_file, name: name) begin block.call ensure pop_context end nil end |