Class: Coltrane::Renderers::TextRenderer::RepresentationPianoNoteSetDrawer

Inherits:
BaseDrawer
  • Object
show all
Defined in:
lib/coltrane/renderers/text_renderer/representation_piano_note_set_drawer.rb

Constant Summary collapse

PIANO_TEMPLATE =
<<~ASCII
  ┌─┬─┬┬─┬─╥─┬─┬┬─┬┬─┬─╥─┬─┬┬─┬─╥─┬─┬┬─┬┬─┬─┐
  │ │ ││ │ ║ │ ││ ││ │ ║ │ ││ │ ║ │ ││ ││ │ │
  │ │X││X│ ║ │X││X││X│ ║ │X││X│ ║ │X││X││X│ │
  │ │X││X│ ║ │X││X││X│ ║ │X││X│ ║ │X││X││X│ │
  │ ┕╥┙┕╥┙ ║ ┕╥┙┕╥┙┕╥┙ ║ ┕╥┙┕╥┙ ║ ┕╥┙┕╥┙┕╥┙ │
  │  ║  ║  ║  ║  ║  ║  ║  ║  ║  ║  ║  ║  ║  │
  │XX║XX║XX║XX║XX║XX║XX║XX║XX║XX║XX║XX║XX║XX│
  └──╨──╨──╨──╨──╨──╨──╨──╨──╨──╨──╨──╨──╨──┘
ASCII

Instance Attribute Summary

Attributes inherited from BaseDrawer

#flavor, #layout, #model, #options, #per_row

Instance Method Summary collapse

Methods inherited from BaseDrawer

#initialize

Constructor Details

This class inherits a constructor from Coltrane::Renderers::TextRenderer::BaseDrawer

Instance Method Details

#renderObject



18
19
20
21
22
23
24
25
26
# File 'lib/coltrane/renderers/text_renderer/representation_piano_note_set_drawer.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, Representation::Piano.black_notes, 1, ln - 2)
    when 6    then replace_x(l, Representation::Piano.white_notes, 2)
    else l
    end
  end.join
end