class DigiMoji::Char

Constants

A
ALPHABETS
AND
APOSTROPHE
ARROW_DOWN
ARROW_LEFT
ARROW_RIGHT
ARROW_UP
ASTERISK
AT
B
BACKQUOTE
BACK_SLASH
BLOCK

Special characters

C
CARET
CHAR_HEIGHT
CHAR_WIDTH
CLOSE_BRACE
CLOSE_BRACKET
CLOSE_PARENTHESIS
COLON
COMMA
D
DASH
DIVIDE
DOLLAR
E
EIGHT
EQUAL
EURO
EXCLAMATION
F
FIVE
FOUR
G
GREATER
H
I
J
K
L
LA
LB
LC
LD
LE
LESS
LF
LG
LH
LI
LJ
LK
LL
LM
LN
LO
LP
LQ
LR
LS
LT
LU
LV
LW
LX
LY
LZ
M
MINUS
MISC
N
NINE
O
ONE
OPEN_BRACE
OPEN_BRACKET
OPEN_PARENTHESIS
P
PERCENT
PERIOD
PIPE
PLUS
Q
QUESTION
QUOTE
R
S
SEMI_COLON
SEVEN
SHAPE
SIX
SLASH
SPACE
T
THREE
TILDE
TWO
U
UNDERSCORE
V
W
X
Y
Z
ZERO

Public Class Methods

[](char, fg: :bg_white, bg: nil, cell:" ", width:2) click to toggle source
# File lib/digi_moji/char.rb, line 850
def self.[](char, fg: :bg_white, bg: nil, cell:" ", width:2)
  cells = cell * width * CHAR_WIDTH
  build_char_map(char).map do |row|
    pattern = row.map { |col| [col ? fg : bg] * width }.flatten
    cells.colco(*pattern, regexp:/./)
  end
end
build_char_map(char) click to toggle source
# File lib/digi_moji/char.rb, line 841
def self.build_char_map(char)
  unless char_map = @special_chars[char.to_s]
    char = ALPHABETS[char.to_s] || MISC[char.to_s] || raise(NotImplementError)
    char_map = const_get(char)
  end
  char_map.map { |cell| cell == 't' }
          .each_slice(char_map.size/7).to_a
end
register(char, map) click to toggle source
# File lib/digi_moji/char.rb, line 870
def self.register(char, map)
  validate_char_form(char, map)
  @special_chars[char] = map
end
validate_char_form(char, map) click to toggle source
# File lib/digi_moji/char.rb, line 875
def self.validate_char_form(char, map)
  if @special_chars[char.to_s]
    raise InUseCharError, "'#{char}' is in use"
  end
  if map.size != (CHAR_WIDTH * CHAR_HEIGHT) ||
                    !map.all? { |c| %w(t f).include? c }
    raise InvalidCharForm, "Passed map has invalid form"
  end
  true
end