Class: Msf::Ui::Console::TablePrint::CustomColorStyler
- Inherits:
-
Object
- Object
- Msf::Ui::Console::TablePrint::CustomColorStyler
- Defined in:
- lib/msf/ui/console/table_print/custom_color_styler.rb
Constant Summary collapse
- RESET_COLOR =
'%clr'.freeze
Instance Method Summary collapse
-
#initialize(opts = {}) ⇒ CustomColorStyler
constructor
For example: opts = { ‘abc’ => ‘%grn’ }.
- #merge!(opts) ⇒ Object
- #style(value) ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ CustomColorStyler
For example: opts = { ‘abc’ => ‘%grn’ }
11 12 13 |
# File 'lib/msf/ui/console/table_print/custom_color_styler.rb', line 11 def initialize(opts = {}) @highlight_terms = opts.clone end |
Instance Method Details
#merge!(opts) ⇒ Object
33 34 35 |
# File 'lib/msf/ui/console/table_print/custom_color_styler.rb', line 33 def merge!(opts) @highlight_terms.merge!(opts) end |
#style(value) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/msf/ui/console/table_print/custom_color_styler.rb', line 15 def style(value) if @highlight_terms.key?(value) return "#{@highlight_terms[value]}#{value}#{RESET_COLOR}" end colored_value = value # Maximal munch; consume the terms in order of length, from longest to shortest @highlight_terms.keys.sort_by { |key| -key.length }.each do |key| if value.include?(key) colored_value.gsub!(key, "#{@highlight_terms[key]}#{key}#{RESET_COLOR}") end end colored_value end |