Class: Warg::Console::SelectGraphicRendition
- Inherits:
-
Object
- Object
- Warg::Console::SelectGraphicRendition
- Defined in:
- lib/warg.rb
Defined Under Namespace
Classes: Renderer
Constant Summary collapse
- TEXT_COLORS =
{ "red" => "31", "green" => "32", "yellow" => "33", "blue" => "34", "magenta" => "35", "cyan" => "36", "white" => "37", }
- BACKGROUND_COLORS =
TEXT_COLORS.map { |name, value| [name, (value.to_i + 10).to_s] }.to_h
- EFFECTS =
{ "bold" => "1", "faint" => "2", "italic" => "3", "underline" => "4", "blink_slow" => "5", "blink_fast" => "6", "invert_colors" => "7", "hide" => "8", "strikethrough" => "9" }
- RESET =
new
Instance Method Summary collapse
- #call(text) ⇒ Object
-
#initialize(text_color: "0", background_color: "0", effect: "0") ⇒ SelectGraphicRendition
constructor
A new instance of SelectGraphicRendition.
- #modify(**attrs) ⇒ Object
- #to_h ⇒ Object
- #to_s ⇒ Object
- #to_str ⇒ Object
- #wrap(text) ⇒ Object
- #|(other) ⇒ Object
Constructor Details
#initialize(text_color: "0", background_color: "0", effect: "0") ⇒ SelectGraphicRendition
Returns a new instance of SelectGraphicRendition.
504 505 506 507 508 |
# File 'lib/warg.rb', line 504 def initialize(text_color: "0", background_color: "0", effect: "0") @text_color = TEXT_COLORS.fetch(text_color.to_s, text_color) @background_color = BACKGROUND_COLORS.fetch(background_color.to_s, background_color) @effect = EFFECTS.fetch(effect.to_s, effect) end |
Instance Method Details
#call(text) ⇒ Object
510 511 512 |
# File 'lib/warg.rb', line 510 def call(text) "#{self}#{text}#{RESET}" end |
#modify(**attrs) ⇒ Object
518 519 520 521 522 523 524 525 526 527 528 529 530 |
# File 'lib/warg.rb', line 518 def modify(**attrs) combination = to_h.merge(attrs) do |key, old_value, new_value| if old_value == "0" new_value elsif new_value == "0" old_value else new_value end end self.class.new(**combination) end |
#to_h ⇒ Object
544 545 546 547 548 549 550 |
# File 'lib/warg.rb', line 544 def to_h { text_color: @text_color, background_color: @background_color, effect: @effect } end |
#to_s ⇒ Object
540 541 542 |
# File 'lib/warg.rb', line 540 def to_s to_str end |
#to_str ⇒ Object
536 537 538 |
# File 'lib/warg.rb', line 536 def to_str "\e[#{@background_color};#{@effect};#{@text_color}m" end |
#wrap(text) ⇒ Object
514 515 516 |
# File 'lib/warg.rb', line 514 def wrap(text) call(text) end |
#|(other) ⇒ Object
532 533 534 |
# File 'lib/warg.rb', line 532 def |(other) modify(**other.to_h) end |