Module: Termclock::ParseCharacters

Defined in:
lib/termclock/parse_characters.rb

Constant Summary collapse

CHARACTERS =
"# 0\n````````\n``    ``\n``    ``\n``    ``\n````````\n\n# 1\n   ``\n`````\n   ``\n   ``\n````````\n\n# 2\n````````\n      ``\n````````\n``\n````````\n\n# 3\n````````\n      ``\n````````\n      ``\n````````\n\n# 4\n``    ``\n``    ``\n````````\n      ``\n      ``\n\n# 5\n````````\n``\n````````\n      ``\n````````\n\n# 6\n````````\n``\n````````\n``    ``\n````````\n\n# 7\n````````\n      ``\n      ``\n      ``\n      ``\n\n# 8\n````````\n``    ``\n````````\n``    ``\n````````\n\n# 9\n````````\n``    ``\n````````\n      ``\n````````\n\n# :\n\\u2B29\\u2B29\n\\u2B29\\u2B29\n\n\\u2B29\\u2B29\n\\u2B29\\u2B29\n\n# $\n\\s\\s\n\\s\\s\n\n\\s\\s\n\\s\\s\n# A\n````````\n``    ``\n````````\n``    ``\n``    ``\n\n# B\n````````\n``     ``\n````````\n``     ``\n````````\n\n# C\n````````\n``\n``\n``\n````````\n\n# D\n````````\n``     ``\n``      ``\n``     ``\n````````\n\n# E\n````````\n``\n````````\n``\n````````\n\n# F\n````````\n``\n````````\n``\n``\n\n# G\n````````\n``\n``\n``  ````\n````````\n\n# H\n``    ``\n``    ``\n````````\n``    ``\n``    ``\n\n# I\n````````\n   `\n   `\n   `\n````````\n\n# J\n````````\n      ``\n      ``\n ``   ``\n ```````\n\n# K\n``    ``\n``  ``\n`````\n``  ``\n``    ``\n\n# L\n``\n``\n``\n``\n````````\n\n# M\n```  ```\n`` `` ``\n``    ``\n``    ``\n``    ``\n\n# N\n````  ``\n`` `` ``\n`` `` ``\n`` `` ``\n``  ````\n\n# O\n````````\n``    ``\n``    ``\n``    ``\n````````\n\n# P\n````````\n``    ``\n````````\n``\n``\n\n# Q\n````````\n``    ``\n````````\n      ``\n      ``\n\n# R\n````````\n``    ``\n````````\n`````\n``   ``\n\n# S\n````````\n``\n````````\n      ``\n````````\n\n# T\n````````\n   ``\n   ``\n   ``\n   ``\n\n# U\n``    ``\n``    ``\n``    ``\n``    ``\n````````\n\n# V\n``    ``\n``    ``\n``    ``\n `` ``\n   `\n\n# W\n``    ``\n``    ``\n``    ``\n`` `  ``\n````````\n\n# X\n`      `\n  `  `\n    `\n  `   `\n`       `\n\n# Y\n``    ``\n``    ``\n````````\n   ``\n   ``\n\n# Z\n````````\n     ``\n   ``\n ``\n````````\n".freeze

Class Method Summary collapse

Class Method Details

.display(c) ⇒ Object



305
306
307
308
309
310
311
312
313
314
315
316
317
# File 'lib/termclock/parse_characters.rb', line 305

def display(c)
  j = []

  c.upcase.each_char { |x|
    @@characters.fetch(x, x).split(NEWLINE)
    .each_with_index { |z, i|
      _j = j[i]
      _j && _j << z || j[i] = z
    }
  }

  j.join(NEWLINE)
end

.transform_characters!(arg) ⇒ Object



284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
# File 'lib/termclock/parse_characters.rb', line 284

def transform_characters!(arg)
  @@transformed ||= nil
  fail RuntimeError, 'Characters already transformed!' if @@transformed
  @@transformed ||= true

  @@characters.values.each { |x|
    stripped = x.strip[0]
    chars = arg.chars.rotate(-1)

    if stripped
      replace_with = x.chars.map { |y|
        chars = arg.chars.rotate(-1) if y == NEWLINE
        next(y) if y != stripped
        chars.rotate!(1)[0]
      }.join

      x.replace(replace_with)
    end
  }
end