Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 39 additions & 57 deletions lib/dvla/herodotus/string.rb
Original file line number Diff line number Diff line change
@@ -1,61 +1,43 @@
class String
def black = "\e[30m#{self}\e[0m"

def red = "\e[31m#{self}\e[0m"

def green = "\e[32m#{self}\e[0m"

def brown = "\e[33m#{self}\e[0m"

def blue = "\e[34m#{self}\e[0m"

def magenta = "\e[35m#{self}\e[0m"

def cyan = "\e[36m#{self}\e[0m"

def gray = "\e[37m#{self}\e[0m"

def colourise(code, reset_code = 39)
"\e[#{code}m#{self}\e[#{reset_code}m"
end
alias colorize colourise

def black = colourise(30)
def red = colourise(31)
def green = colourise(32)
def brown = colourise(33)
alias yellow brown

def blue = colourise(34)
def magenta = colourise(35)
def cyan = colourise(36)
def gray = colourise(37)
alias grey gray

def bright_black = "\e[90m#{self}\e[0m"

def bright_red = "\e[91m#{self}\e[0m"

def bright_green = "\e[92m#{self}\e[0m"

def bright_yellow = "\e[93m#{self}\e[0m"

def bright_blue = "\e[94m#{self}\e[0m"

def bright_magenta = "\e[95m#{self}\e[0m"

def bright_cyan = "\e[96m#{self}\e[0m"

def white = "\e[97m#{self}\e[0m"

def bg_black = "\e[40m#{self}\e[0m"

def bg_red = "\e[41m#{self}\e[0m"

def bg_green = "\e[42m#{self}\e[0m"

def bg_brown = "\e[43m#{self}\e[0m"

def bg_blue = "\e[44m#{self}\e[0m"

def bg_magenta = "\e[45m#{self}\e[0m"

def bg_cyan = "\e[46m#{self}\e[0m"

def bg_gray = "\e[47m#{self}\e[0m"

def bold = "\e[1m#{self}\e[22m"

def italic = "\e[3m#{self}\e[23m"

def underline = "\e[4m#{self}\e[24m"

def blink = "\e[5m#{self}\e[25m"

def reverse_color = "\e[7m#{self}\e[27m"
def bright_black = colourise(90)
def bright_red = colourise(91)
def bright_green = colourise(92)
def bright_yellow = colourise(93)
def bright_blue = colourise(94)
def bright_magenta = colourise(95)
def bright_cyan = colourise(96)
def white = colourise(97)

def bg_black = colourise(40, 49)
def bg_red = colourise(41, 49)
def bg_green = colourise(42, 49)
def bg_brown = colourise(43, 49)
def bg_blue = colourise(44, 49)
def bg_magenta = colourise(45, 49)
def bg_cyan = colourise(46, 49)
def bg_gray = colourise(47, 49)

def bold = colourise(1, 22)
def italic = colourise(3, 23)
def underline = colourise(4, 24)
def blink = colourise(5, 25)
def reverse_color = colourise(7, 27)
alias reverse_colour reverse_color
end
2 changes: 1 addition & 1 deletion lib/dvla/herodotus/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
module DVLA
module Herodotus
VERSION = '2.1.0'.freeze
VERSION = '2.2.0'.freeze
end
end
51 changes: 26 additions & 25 deletions spec/dvla/herodotus/string_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,32 @@

RSpec.describe String do
[
{ method: :black, expected_output: "\e[30mTest String\e[0m" },
{ method: :red, expected_output: "\e[31mTest String\e[0m" },
{ method: :green, expected_output: "\e[32mTest String\e[0m" },
{ method: :brown, expected_output: "\e[33mTest String\e[0m" },
{ method: :blue, expected_output: "\e[34mTest String\e[0m" },
{ method: :magenta, expected_output: "\e[35mTest String\e[0m" },
{ method: :cyan, expected_output: "\e[36mTest String\e[0m" },
{ method: :gray, expected_output: "\e[37mTest String\e[0m" },
{ method: :grey, expected_output: "\e[37mTest String\e[0m" },
{ method: :bright_black, expected_output: "\e[90mTest String\e[0m" },
{ method: :bright_red, expected_output: "\e[91mTest String\e[0m" },
{ method: :bright_green, expected_output: "\e[92mTest String\e[0m" },
{ method: :bright_yellow, expected_output: "\e[93mTest String\e[0m" },
{ method: :bright_blue, expected_output: "\e[94mTest String\e[0m" },
{ method: :bright_magenta, expected_output: "\e[95mTest String\e[0m" },
{ method: :bright_cyan, expected_output: "\e[96mTest String\e[0m" },
{ method: :white, expected_output: "\e[97mTest String\e[0m" },
{ method: :bg_black, expected_output: "\e[40mTest String\e[0m" },
{ method: :bg_red, expected_output: "\e[41mTest String\e[0m" },
{ method: :bg_green, expected_output: "\e[42mTest String\e[0m" },
{ method: :bg_brown, expected_output: "\e[43mTest String\e[0m" },
{ method: :bg_blue, expected_output: "\e[44mTest String\e[0m" },
{ method: :bg_magenta, expected_output: "\e[45mTest String\e[0m" },
{ method: :bg_cyan, expected_output: "\e[46mTest String\e[0m" },
{ method: :bg_gray, expected_output: "\e[47mTest String\e[0m" },
{ method: :black, expected_output: "\e[30mTest String\e[39m" },
{ method: :red, expected_output: "\e[31mTest String\e[39m" },
{ method: :green, expected_output: "\e[32mTest String\e[39m" },
{ method: :brown, expected_output: "\e[33mTest String\e[39m" },
{ method: :yellow, expected_output: "\e[33mTest String\e[39m" },
{ method: :blue, expected_output: "\e[34mTest String\e[39m" },
{ method: :magenta, expected_output: "\e[35mTest String\e[39m" },
{ method: :cyan, expected_output: "\e[36mTest String\e[39m" },
{ method: :gray, expected_output: "\e[37mTest String\e[39m" },
{ method: :grey, expected_output: "\e[37mTest String\e[39m" },
{ method: :bright_black, expected_output: "\e[90mTest String\e[39m" },
{ method: :bright_red, expected_output: "\e[91mTest String\e[39m" },
{ method: :bright_green, expected_output: "\e[92mTest String\e[39m" },
{ method: :bright_yellow, expected_output: "\e[93mTest String\e[39m" },
{ method: :bright_blue, expected_output: "\e[94mTest String\e[39m" },
{ method: :bright_magenta, expected_output: "\e[95mTest String\e[39m" },
{ method: :bright_cyan, expected_output: "\e[96mTest String\e[39m" },
{ method: :white, expected_output: "\e[97mTest String\e[39m" },
{ method: :bg_black, expected_output: "\e[40mTest String\e[49m" },
{ method: :bg_red, expected_output: "\e[41mTest String\e[49m" },
{ method: :bg_green, expected_output: "\e[42mTest String\e[49m" },
{ method: :bg_brown, expected_output: "\e[43mTest String\e[49m" },
{ method: :bg_blue, expected_output: "\e[44mTest String\e[49m" },
{ method: :bg_magenta, expected_output: "\e[45mTest String\e[49m" },
{ method: :bg_cyan, expected_output: "\e[46mTest String\e[49m" },
{ method: :bg_gray, expected_output: "\e[47mTest String\e[49m" },
{ method: :bold, expected_output: "\e[1mTest String\e[22m" },
{ method: :italic, expected_output: "\e[3mTest String\e[23m" },
{ method: :underline, expected_output: "\e[4mTest String\e[24m" },
Expand Down