lib/belajar/views/menu.rb in belajar-0.1.1 vs lib/belajar/views/menu.rb in belajar-1.0.0
- old
+ new
@@ -1,21 +1,22 @@
require 'wisper'
module Belajar
module Views
-
class Menu
include Views
include Wisper::Publisher
TOP_BAR_TEXT = [
- 'Use *UP KEY* and *DOWN KEY* for menu navigation',
- 'Enter menu with *RETURN*',
- 'Go back with *BACKSPACE*',
- 'Exit with *ESC*'
- ].join(' | ')
+ 'Use * ← * and * → * for menu navigation',
+ 'Enter menu with * ⏎ *',
+ 'Go back with * ⟵ *',
+ 'Exit with *Esc*'
+ ].join(' | ').freeze
+ attr_writer :items_info
+
def initialize
@position = 0
end
def enter(*args)
@@ -44,46 +45,41 @@
end
def draw(window, active_index = 0)
window.attrset(A_NORMAL)
window.setpos(0, 1)
- window.print_markdown header_text
+ window.print_markdown(header_text)
items.each_with_index do |item, index|
window.setpos(index + 2, 1)
window.print_indicator(models[index])
window.attrset(index == active_index ? A_STANDOUT : A_NORMAL)
- window.write " #{item.to_s} "
+ window.write " #{item} "
window.attrset(A_NORMAL)
- window.write " #{items_info[index].try(:join, ' ')}"
+ window.write " #{items_info[index] && items_info[index].join(' ')}"
end
window.refresh
end
def interact_with(window)
- raise "Please implement the method #interact_with!"
+ raise 'Please implement the method #interact_with!'
end
def models
- raise "Please implement the method #models!"
+ raise 'Please implement the method #models!'
end
def items
- raise "Please implement the method #items!"
+ raise 'Please implement the method #items!'
end
def header_text
- raise "Please implement the method #header_text!"
+ raise 'Please implement the method #header_text!'
end
def items_info
@items_info || []
end
-
- def items_info=(items_info)
- @items_info = items_info
- end
end
-
end
end