Class: Coltrane::Cli::Piano

Inherits:
Representation show all
Defined in:
lib/cli/piano.rb

Overview

It allows rendering notes in an ASCII piano

Constant Summary collapse

PIANO_TEMPLATE =
"\u250C\u2500\u252C\u2500\u252C\u252C\u2500\u252C\u2500\u2565\u2500\u252C\u2500\u252C\u252C\u2500\u252C\u252C\u2500\u252C\u2500\u2565\u2500\u252C\u2500\u252C\u252C\u2500\u252C\u2500\u2565\u2500\u252C\u2500\u252C\u252C\u2500\u252C\u252C\u2500\u252C\u2500\u2510\n\u2502 \u2502 \u2502\u2502 \u2502 \u2551 \u2502 \u2502\u2502 \u2502\u2502 \u2502 \u2551 \u2502 \u2502\u2502 \u2502 \u2551 \u2502 \u2502\u2502 \u2502\u2502 \u2502 \u2502\n\u2502 \u2502X\u2502\u2502X\u2502 \u2551 \u2502X\u2502\u2502X\u2502\u2502X\u2502 \u2551 \u2502X\u2502\u2502X\u2502 \u2551 \u2502X\u2502\u2502X\u2502\u2502X\u2502 \u2502\n\u2502 \u2502X\u2502\u2502X\u2502 \u2551 \u2502X\u2502\u2502X\u2502\u2502X\u2502 \u2551 \u2502X\u2502\u2502X\u2502 \u2551 \u2502X\u2502\u2502X\u2502\u2502X\u2502 \u2502\n\u2502 \u2515\u2565\u2519\u2515\u2565\u2519 \u2551 \u2515\u2565\u2519\u2515\u2565\u2519\u2515\u2565\u2519 \u2551 \u2515\u2565\u2519\u2515\u2565\u2519 \u2551 \u2515\u2565\u2519\u2515\u2565\u2519\u2515\u2565\u2519 \u2502\n\u2502  \u2551  \u2551  \u2551  \u2551  \u2551  \u2551  \u2551  \u2551  \u2551  \u2551  \u2551  \u2551  \u2551  \u2502\n\u2502XX\u2551XX\u2551XX\u2551XX\u2551XX\u2551XX\u2551XX\u2551XX\u2551XX\u2551XX\u2551XX\u2551XX\u2551XX\u2551XX\u2502\n\u2514\u2500\u2500\u2568\u2500\u2500\u2568\u2500\u2500\u2568\u2500\u2500\u2568\u2500\u2500\u2568\u2500\u2500\u2568\u2500\u2500\u2568\u2500\u2500\u2568\u2500\u2500\u2568\u2500\u2500\u2568\u2500\u2500\u2568\u2500\u2500\u2568\u2500\u2500\u2568\u2500\u2500\u2518\n"

Constants inherited from Representation

Representation::ACCEPTED_FLAVORS

Instance Method Summary collapse

Methods inherited from Representation

build, #hint, inherited, #initialize

Constructor Details

This class inherits a constructor from Coltrane::Cli::Representation

Instance Method Details

#renderObject



18
19
20
21
22
23
24
25
26
# File 'lib/cli/piano.rb', line 18

def render
  PIANO_TEMPLATE.each_line.map.each_with_index do |l, ln|
    case ln
    when 2, 3 then replace_x(l, black_notes, 1, ln - 2)
    when 6 then replace_x(l, white_notes, 2)
    else l
    end
  end.join + "\n" + hint
end